Ip dispo, non dispo

Résolu
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008 - 23 mai 2006 à 11:33
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008 - 23 mai 2006 à 16:12
slt,
j'ai une table avec un champ ip qui comporte un nombre qui restera compris entre 001 et 250
et dans ma base j'ai 4 données enregistré dont le champ ip a respectivement 004, 082, 211, 012
et je voudrais faire la liste de ce qui est enregistré dans la base d'une part donc non dispo (facile) et d'autre part de ce qui n'est pas enregistré dans la base donc dispo (et le je bloque) enfin de voir les ip dispo pour installer un nouveau poste et sur un ip libre  
j'ai fait un 
<select name="dispo_ip">
<option value='1'>Disponible</option>
<option value='2'>Indisponible</option>
</select>
et j'ai mis ma page en chargement instantané sur le mm page cad que c'est le mm principe que 2 combobox dépendantes sauf que c'est un combobox et une liste dépendante

voici ma requete pour la premiere :
if (isset($dispo_ip) && $dispo == 2)
   {
   $sql = "SELECT * FROM ma_table "; 
   $req= mysql_query($sql) or die (mysql_error()); 
   echo'';
   while ($data = mysql_fetch_array($req))
    {
    echo'----
'.$data20['ip'].', ';
    }
echo '
';
   }

pour la deuxieme requete
je pense faire un for  $i de 001 a 250 faire requete des ip qui ne figure pas dans la base de donnée (sachant que ip comporte 3 chiffres obligatoires)
lais seulement je ne vois pas comment faire

6 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
23 mai 2006 à 14:16
<?php
for ($i = 1; $i < 251; $i ++) {
 $aIpAll[] = str_pad ($i, 3, '0', STR_PAD_LEFT);
}


 $sQuery = "SELECT ip FROM ma_table ";
 $rReq= mysql_query($sQuery) or die (mysql_error());
while ($aRes = mysql_fetch_row($rReq)) {
 $aIpNonDispo[] = $aRes[0];
}


$aIpDispo = array_diff ($aIpAll, $aIpNonDispo);
?>
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
23 mai 2006 à 13:26
Hello,

tu crées un tableau qui va de 001 à 250 (c'est pas difficile ça, en une ligne).
Mettons que tu le nommes $aIpAll.
Tu fais ta requête qui va chercher les IP présentes en base (donc non dispo). Tu les fous dans un tableau $aIpNonDispo.

Puis :
$aIpDispo = array_diff ($aIpAll, $aIpNonDispo);

Et tu auras tes ip dans le nouveau tableau.
0
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008
23 mai 2006 à 13:59
désolé mais je maitrise pas bien les tableaux en PHP encore
donc a part une boucle comme
for ($i=001;$i<=250;$i++)
{
$ipall=array($i);
}

je ne vois pas bien comment générer le tableau à moins de taper l'intégralité nous meme ce qu ferai plus d'une ligne donc cest pas ça
de même pour la requête
je vois seulement comme ça :

   $sql = "SELECT * FROM ma_table "; 
   $req= mysql_query($sql) or die (mysql_error()); 
   echo'<table border="0">';
   while ($data = mysql_fetch_array($req))
    {
$ipnondispo =  array($data20['ip']);
    }

je suis désolé mais je n'est quasiment jamais fait des tableaux, donc si tu pouvait m'aider un peu plus sa serait cool
0
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008
23 mai 2006 à 15:23
ok super
je te remercie
comme cela je saurai faire la prochaine fois lol
ensuite pour pouvoir visionner en html
j'ai fait sa

    $i=1;
    if (count($aIpDispo)!=0)//si il y a au moins une ligne alors ...
     {echo'';
     while($i!=count($aIpDispo))//tant que $i est different du nb de ligne dans la tableau
     {echo'----
'.$aIpDispo[$i].', ';//afficher
     $i++;}//puis incrémenter
     echo'
';
     }else{echo'Aucune adresse IP n\'est dispo';}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
23 mai 2006 à 16:05
tu remplaces ton while par :
foreach ($aIpDispo as $ip)
et tu fais ton echo sur $ip et pas sur $aIpDispo[$i].
0
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008
23 mai 2006 à 16:12
ok merci
parce que justement il me mettait l'erreur suivant

Notice: Undefined offset: 1 in c:\documents and settings\bleach\bureau\nouveau porte-documents (2)\apa\cci\administrateur\liste_ip.php on line 124

mais c'est bon maintenant ça fonctionne nickel
0
Rejoignez-nous