[PHP / SQL] Tri des adresses IP
Résolu
LeHigh
Messages postés
109
Date d'inscription
Statut
Membre
Dernière intervention
-
Tom -
Tom -
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
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
A voir également:
- [PHP / SQL] Tri des adresses IP
- Ethernet n'a pas de configuration ip valide - Guide
- Comment connaître son adresse ip - Guide
- Télévision ip - Guide
- Comment faire un tri personnalisé sur excel - Guide
- Comment savoir si quelqu'un utilise mon adresse ip - Guide
5 réponses
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)
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)
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é :/
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é :/
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 =)
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 =)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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`)";
$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`)";