Faire une requete sql qui affiche les noms des domains actifs
Gghizlane
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Gghizlane Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Gghizlane Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
bonjour, j'ai besoin de votre aide.
j'ai une table domain dont je stock des adresses ip et des noms de domains, ce que je veux faire c'est que lors de l'affichage le programme ping sur chaque domain ou ip et n'affiche que ceux qui sont actifs, mais la requete ne marche pas, voilà mon code:
merci d'avance.
j'ai une table domain dont je stock des adresses ip et des noms de domains, ce que je veux faire c'est que lors de l'affichage le programme ping sur chaque domain ou ip et n'affiche que ceux qui sont actifs, mais la requete ne marche pas, voilà mon code:
<?php include("connexion.php"); ini_set ('max_execution_time', 0); $sql="select * from domain limit 4"; $rep1=mysql_query($sql,$base); while ($data = mysql_fetch_array($rep1)){ $a=$data['nom_domain']; exec ("ping -n 1 $a", $output, $result) ; if($result==0){ $x='actif'; }else { $x='down'; } } $rep="select nom_domain from domain where $x='actif'"; $rep=mysql_query($sql,$base); while ($data = mysql_fetch_array($rep)){ echo $data['nom_domain']; } ?>
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI Merci d'y penser dans tes prochains messages. |
merci d'avance.
A voir également:
- Faire une requete sql qui affiche les noms des domains actifs
- Les noms des animaux - Télécharger - Études & Formations
- Le clavier de mon telephone ne s'affiche plus - Guide
- Freebox n'affiche plus l'heure mais fonctionne - Forum Freebox
- Dans le diaporama à télécharger, les diapositives s’enchaînent automatiquement. combien de temps la diapositive crayon met-elle à s’afficher ? combien de temps reste-t-elle affichée à l’écran ? ✓ - Forum Powerpoint
- Trouver un nom avec une adresse ✓ - Forum Loisirs / Divertissements
3 réponses
Bonjour,
1 - Attention ... tu utilises l'ancienne extension Mysql (considérée comme obsolète ! )
Je t'invite fortement à passer à mysqli ou ( perso je préfère...) la PDO.
Je t'invite à lire ceci :
- https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete
- https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli
2 - Ton if
Peut s'écrire beaucoup plus simplement comme ceci (via l'écriture TERNAIRE)
3 - Je pense que la boucle de ton premier WHILE se termine trop top...
Tu devrais ta seconde requête....
4 - J'ai l'impression que cette requête n'est pas bonne :
$x ???
As tu testé ta requête DIRECTEMENT dans ta BDD au moins ???
1 - Attention ... tu utilises l'ancienne extension Mysql (considérée comme obsolète ! )
Je t'invite fortement à passer à mysqli ou ( perso je préfère...) la PDO.
Je t'invite à lire ceci :
- https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete
- https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli
2 - Ton if
if($result==0){ $x='actif'; }else { $x='down'; }
Peut s'écrire beaucoup plus simplement comme ceci (via l'écriture TERNAIRE)
$x = $result==0 ? 'actif' : 'down';
3 - Je pense que la boucle de ton premier WHILE se termine trop top...
Tu devrais ta seconde requête....
4 - J'ai l'impression que cette requête n'est pas bonne :
$rep="select nom_domain from domain where $x='actif'";
$x ???
As tu testé ta requête DIRECTEMENT dans ta BDD au moins ???
Gghizlane
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
merci pour la réponse, oui j'ai testé la requete à l'execution je n'ai aucune erreur mais il m'affiche tous les domaines, alors que mon but c'est de n'afficher que ceux qui sont actifs
Normal car tu recherche un champ $x ou ici un champ nommé actif ou down, vu qu'avec des double quote les variables sont directement utilisées, et donc la base SQL ne connait pas les champs. Après ici même si la requête fonctionne, ça ne serait que pour le dernier domaine vu que tu l'as fait après la boucle.
Enfin tu as déjà le nom_domain dans la requête pour la boucle pas besoin d'en relancer une pour le récupérer:
Ton code peut être optimisé comme ceci, ensuite il est préférable d'utiliser PDO et non la fonction mysql_query pour tout ce qui est BDD.
Enfin tu as déjà le nom_domain dans la requête pour la boucle pas besoin d'en relancer une pour le récupérer:
include("connexion.php"); ini_set('max_execution_time', 0); $sql = "SELECT * FROM domain LIMIT 4"; $rep1 = mysql_query($sql,$base); while($data = mysql_fetch_array($rep1)){ exec("ping -n 1 $a", $output, $result); if($result == 0) echo $data['nom_domain']."<br>"; }
Ton code peut être optimisé comme ceci, ensuite il est préférable d'utiliser PDO et non la fonction mysql_query pour tout ce qui est BDD.