Si la selection retourne quelquechose alors...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Si la selection retourne quelquechose alors...

par Cyrano » 15 juin 2005, 09:32

Moi j'aurais offert un jus de carottes pour daoud, les carottes, c'est excellent pour la vue, d'ailleurs on a jamais vu de lapin avec des lunettes :langue:

par BFH » 15 juin 2005, 09:30

Merci @ tous
:boire9: je vous paie un jus d'orange pour certains?

par daoud » 15 juin 2005, 09:18

Tiens, j'ai encore répondu à côté de la plaque.... :oops:
Je crois que je vais arrêter moi, je sais pas lire.

daoud

par ouckileou » 15 juin 2005, 09:18

j'avais pas fais attention à ça

par Cyrano » 15 juin 2005, 09:16

Désolé ouckileou, ta solution a un défaut majeur: en modifiant la requête par un COUNT(*), mysql_fetch_assoc ne fonctionnera pas; il faudrait créer une seconde requête.

Donc il faudrait garder la requête originale, ensuite tester le nombre de résultats avec mysql_num_rows() et là, s'il n'y a pas de résultats on le saura.

Donc il faudrait modifier de cette manière:
<?php
$temp="SELECT * FROM report WHERE RHost LIKE '".addslashes($row1['lieu'])."%'"; //choisit tous les rapports dont le nom est similaire à $row1
$result2= mysql_query($temp)or die(mysql_error());
$nb = mysql_num_rows($result2);
if($nb < 1)    //cette boucle if bug !

{
    echo"Pas de rapports";
}
else
{
    while($row3= mysql_fetch_assoc($result2))
    {
        ...// ici le code fonctionne correctement
    }
?>

par BFH » 15 juin 2005, 09:15

Merci

par daoud » 15 juin 2005, 09:11

Je pense aussi qu'il faut que tu testes plutôt si "result2" est faux car :
Pour les requêtes du type SELECT, SHOW, DESCRIBE ou EXPLAIN, mysql_query() retournera une ressource en cas de succès, et FALSE en cas d'erreur.
a+
daoud

par ouckileou » 15 juin 2005, 09:10

si tu veux juste tester le nombre d'enregistrements le Count() est mieux
$temp="SELECT COUNT(*) AS nb_lignes FROM report WHERE RHost LIKE '".addslashes($row1['lieu'])."%'"; //choisit tous les rapports dont le nom est similaire à $row1
$result2= mysql_query($temp)or die(mysql_error());
$resultat = mysql_fetch_array($result2);
$nbLignes = $resultat["nb_lignes"];
if($nbLignes < 1)
{
echo"Pas de rapports";
}
else
{
while($row3== mysql_fetch_assoc($result2))
{
...// ici le code fonctionne correctement
}

par ouckileou » 15 juin 2005, 09:07

tu devrais utiliser soit mysql_num_rows avec ta requête actuelle

soit faire un select count(*) et tester la valeur retournée de façon classique

mais pour tester une égalité c'est un double égal (==) et tu n'en as mis qu'un

Si la selection retourne quelquechose alors...

par BFH » 15 juin 2005, 09:03

Bonjour,
je fais une sélection dans ma base mais je n'arrive a exploiter correctement le résultat :
$temp="SELECT * FROM report WHERE RHost LIKE '".addslashes($row1['lieu'])."%'"; //choisit tous les rapports dont le nom est similaire à $row1
$result2= mysql_query($temp)or die(mysql_error());
if($result2="")    //cette boucle if bug !
{
echo"Pas de rapports";
}
else
{
while($row3= mysql_fetch_assoc($result2))
{
...// ici le code fonctionne correctement
}

J'arrive pas a faire afficher "pas de rapports" si il n'y en a aucun!
Quelqu'un sait il pourquoi?