Les Allergies
Alimentaires
Posez votre question Signaler

[PHP / SQL] Tri des adresses IP [Résolu]

LeHigh 96Messages postés 12 mai 2009Date d'inscription 7 juillet 2011Dernière intervention - Dernière réponse le 7 juil. 2009 à 10:47
Bonjour les gens,
Mon problème est que je dois afficher des informations sur des adresses ip dans un tableau, que je peux trier par ordre croissant ou decroissant j'y arrive sauf pour les adresses IP justement ou ca ne tri pas correctement.
Je vous donne le code:
echo '<table width="99%" border=1 cellspacing=0>';
echo '<tr align="center">';
echo '<td class="fondjaunepale_txtbleu12g" width="10%">Adresse IP<br><a href="ip.php?t=ip&o=asc"><img src="../images/flecheu.gif" border=0></a>  <a href="ip.php?t=ip&o=desc"><img src="../images/fleched.gif" border=0></a></td>';
echo '<td class="fondjaunepale_txtbleu12g" width="10%">Masque<br><a href="ip.php?t=masque&o=asc"><img src="../images/flecheu.gif" border=0></a>  <a href="ip.php?t=masque&o=desc"><img src="../images/fleched.gif" border=0></a></td>';
echo '<td class="fondjaunepale_txtbleu12g" width="10%">Passerelle<br><a href="ip.php?t=passerelle&o=asc"><img src="../images/flecheu.gif" border=0></a>  <a href="ip.php?t=passerelle&o=desc"><img src="../images/fleched.gif" border=0></a></td>';
echo '</table>';
echo '</td></tr>';
echo '<td>';
?>
<div class="tab">
<?
if (isset ($_REQUEST['t']) && isset ($_REQUEST['o'])) {
if (isset ($_REQUEST['vue']) && $_REQUEST['vue'] == 'del') {
$req = "SELECT * FROM ip WHERE affect_ip = 'd' ORDER BY".$_REQUEST['t']." ".$_REQUEST['o'];
} else {
$req = "SELECT * FROM ip WHERE affect_ip != 'd' ORDER BY".$_REQUEST['t']." ".$_REQUEST['o'];
}
} else {
if (isset ($_REQUEST['vue']) && $_REQUEST['vue'] == 'del') {
$req = "SELECT * FROM ip WHERE affect_ip = 'd' ORDER BY ref_ip ASC";
} else {
$req = "SELECT * FROM ip WHERE affect_ip != 'd' ORDER BY ref_ip ASC";
}
}
$res = mysql_query ($req);
$nt = mysql_num_rows($res);
echo '<table width="100%" border=1 cellspacing=0>';
while ($ligne = mysql_fetch_array ($res))
{
$ref = $ligne[0];
$ip = $ligne[1];
$msk = $ligne[2];
$psrl = $ligne[3];
echo '<tr align="center" class="fondblanc_txtbleu12">';
echo '<td width="10%">'.empti($ip).'</td>';
echo '<td width="10%">'.empti($msk).'</td>';
echo '<td width="10%">'.empti($psrl).'</td>';
}
Donc si quelqu'un peut m'aider à trouver mon problème ca serait sympa =)
merci
Lire la suite 

[PHP / SQL] Tri des adresses IP »

5 réponses
Réponse
+1
moins plus
Bonjour

Je ne sais pas ce que fait exactement ton tri et en quoi il ne te plaît pas, mais pour trier les adresses IP il est souvent judicieux d'utiliser la fonction INET_ATON qui transforme une adresse IP en nombre
... ORDER BY INET_ATON(ref_ip)
Ajouter un commentaire
Réponse
+0
moins plus
Le tri dans les adresses IP e me convenait pas dans le sens ou ca se trie pas dans l'ordre.
par exemple mes adresses se trie comme ca

172.27.152....
172.27.153....
172.27.154....
172.27.52....
172.27.34....
Et d'autres bétises du genre en ordre decroissant


Mais j'ai déjà essayé avec INET_ATON, ca à pas marché :/
Ajouter un commentaire
Réponse
+0
moins plus
Si, pour ça ça marche. Qu'as-tu fait ?
Ajouter un commentaire
Réponse
+0
moins plus
Non bah si désolé ca marche j'ai l'impression; j'ai mis

echo '<td class="fondjaunepale_txtbleu12g" width="10%">Adresse IP<br><a href="ip.php?t=INET_ATON(ip)&o=asc"><img src="../images/flecheu.gif" border=0></a> <a href="ip.php?t=INET_ATON(ip)&o=desc"><img src="../images/fleched.gif" border=0></a></td>';

au lieu de

echo '<td class="fondjaunepale_txtbleu12g" width="10%">Adresse IP<br><a href="ip.php?t=ip&o=asc"><img src="../images/flecheu.gif" border=0></a> <a href="ip.php?t=ip&o=desc"><img src="../images/fleched.gif" border=0></a></td>';

Je pensais l'avoir fait mais comme j'ai touché à tout dans le code, j'ai du modifier les requêtes ou j'ai mis ca, bref,
merci beaucoup le père =)
Ajouter un commentaire
Réponse
+0
moins plus
Merci cela m'a aidé aussi dans ma requete :

$query = "SELECT `premiere_adresse`,`derniere_adresse`,`id_plage` as id,`entite_has_tb_rezo_reseauIP_entite_eid` as nom_ent FROM plages where entite_has_tb_rezo_reseauIP_tb_rezo_reseauIP_id_reseauIP='".$vlan."' UNION SELECT `premiere_adresse`,`derniere_adresse`,`id_dhcp_dynamique` as id,'null' as nom_ent FROM dhcp_dynamique where tb_rezo_reseauIP_id_reseauIP='".$vlan."' ORDER BY INET_ATON(`premiere_adresse`)";
Ajouter un commentaire
Ce document intitulé « [PHP / SQL] Tri des adresses IP » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?