Erreur: mysql_num_rows()

refkaben Messages postés 151 Date d'inscription vendredi 19 août 2005 Statut Membre Dernière intervention 21 février 2006 - 19 nov. 2005 à 10:02
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 - 22 nov. 2005 à 11:30
Bonjour à tous!
J'ai une erreur qui ma prend la tete depuis hier!
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp\www\businesstun\rechsimple.php on line 24
<TR>voici mon code:

<? include "connb.php" ?>


<?$maxenreg = "4";
$rech= $HTTP_POST_VARS['rech'];
$critere= $HTTP_POST_VARS['critere'];
if($rech!="")
{if($critere=="societe")
{ $maquery=("select * from entreprise where nom like '%$rech%' And valide='oui' order by dateDerMaj") or die("selection impossible");}

else if($critere=="dirigeant"){
$maquery= ("select * from entreprise where dirigeant like '%$rech%' And valide='oui' order by dateDerMaj" ) or die("selection impossible");} }

$query1 = "$maquery";
$result = mysql_query($query1);
$monnbr = mysql_num_rows($result);
if ($debut)
{
$nb = $debut + $maxenreg - 1;
$mondebut=$debut - 1;
$query2 = "$maquery LIMIT $mondebut,$nb";
$result2 = mysql_query($query2);
}
else
{
$nb=$maxenreg;
$query2 = "$maquery LIMIT 0,$nb";
$result2 = mysql_query($query2);
} ?>
<tr><td>[accueil.php Business Center]&gt;&gt;Resultat de recherche</td></tr>
<?php
$nb = mysql_num_rows($result2);
$i=0;
if($nb!=0)
{ $echec="";
while (($i < $nb) &&($resultat=mysql_fetch_array($result2))){ ?>


// j'affiche le résultat ici
//puis la pagination:

<?
$nbrpage1 = number_format($monnbr / $maxenreg);
$nbrpage = $nbrpage1 + 1;


for ( $i = 1; $i <= $nbrpage; $i++ )
{
$debut = ((($i - 1) * 4) + 1);
echo (": $i :");
}?>

<TD>Je vérifie les champs de ma base, les noms des variables...
J'ai fait des recherches et je ne vois pas l'erreur.
Aidez moi SVP

13 réponses

J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
19 nov. 2005 à 10:52
salut ... il suffit de lire en anglais ! Tu ne lui donne pas un resultat de MySQL. Alors comment veux-tu qu'elle compte ?



Il y'a une chose à savoir : tout ce qui sotr de mysql_result n'est pas forcément un enregistrement.







$result = mysql_query($query);

if ( ! $result ) exit( ' ERREUR SQL
'.mysql_error() );

$nb = mysql_num_rows($result);
0
refkaben Messages postés 151 Date d'inscription vendredi 19 août 2005 Statut Membre Dernière intervention 21 février 2006
19 nov. 2005 à 11:01
Merci pour ta réponse J_G!
Mais tu peux etre plus explicite? je ne vois pas l'erreur!
J'utilise le meme code dans une autre page et ça ne me pose aucun problème!
Tu peux m'aider à corriger ce code(je suis débutante)!
Merci
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
19 nov. 2005 à 11:06
$result = mysql_query($query1);

$monnbr = mysql_num_rows($result);



NON







$result = mysql_query($query1) or exit( 'ERREUR SQL
'.mysql_error() );

$monnbr = mysql_num_rows($result);



OUI
0
refkaben Messages postés 151 Date d'inscription vendredi 19 août 2005 Statut Membre Dernière intervention 21 février 2006
19 nov. 2005 à 11:20
oui! en fait j'ai essayé ta solution et j'ai le message d'erreur suivant:


ERREUR SQL
Something is wrong in your syntax près de 'LIMIT 4,8' à la ligne 1
qui est ça $query2 = "$maquery LIMIT $mondebut,$nb";(je suppose)!
Donc je vois maintenant ou ça bloque mais je n'arrive pas à corriger.
as tu une idée?
Merci!
0

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

Posez votre question
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
19 nov. 2005 à 11:48
$result = mysql_query($query1) or exit( 'ERREUR SQL
'.mysql_error().'
REQUETE :
'.$query1 );
0
refkaben Messages postés 151 Date d'inscription vendredi 19 août 2005 Statut Membre Dernière intervention 21 février 2006
19 nov. 2005 à 12:04
Maintenant ça m'affiche un seul enregistrement à la première page(alors qu'il faut 4) et puis lorsque je passe à la deuxième page j'ai l'erreur suivante:
ERREUR SQL
Query est vide
REQUETE :
0
refkaben Messages postés 151 Date d'inscription vendredi 19 août 2005 Statut Membre Dernière intervention 21 février 2006
19 nov. 2005 à 12:08
Voila le code complet:
<? $maxenreg = "4"; ?>
<? include "connb.php" ?>


<?
$rech= $HTTP_POST_VARS['rech'];


$critere= $HTTP_POST_VARS['critere'];
if($rech!="")
{if($critere=="societe")
{ $maquery=("select * from entreprise where nom like '%$rech%' And valide='oui' order by dateDerMaj ") or die("selection impossible");}

else if($critere=="dirigeant"){
$maquery= ("select * from entreprise where dirigeant like '%$rech%' And valide='oui' order by dateDerMaj" ) or die("selection impossible");} }

$query1 = "$maquery"; $result $result mysql_query($query1) or exit( ' ERREUR SQL
'.mysql_error().'
REQUETE :
'.$query1 );
$monnbr = mysql_num_rows($result);
if ($debut)
{
$nb = $debut + $maxenreg - 1;
$mondebut=$debut - 1;
$query2 = "$maquery LIMIT $mondebut,$nb";
$result2 = mysql_query($query2);
}
else
{
$nb=$maxenreg;
$query2 = "$maquery LIMIT 0,$nb";
$result2 = mysql_query($query2);
} ?>
<tr><td>[accueil.php Business Center]&gt;&gt;Resultat de recherche</td></tr>
<?php
$result2 = mysql_query($query2) or exit( ' ERREUR SQL
'.mysql_error().'
REQUETE :
'.$query2 );
$nb = mysql_num_rows($result2);
$i=0;
if($nb!=0)
{ $echec="";
while (($i < $nb) &&($resultat=mysql_fetch_array($result2))){ ?>


"><? echo $resultat['nom'];

?> ,
">Fiche,
">Carte visite,
<?php if(!empty($resultat['pagevitrine']))
{ ?>
" target="_blank">page vitrine, <? } ?>
<?php if(!empty($resultat['web']))
{ ?>
http://<?php echo $resultat["web"] ; ?>" target="_blank">Site web, <? } ?>

<?php
$requete=mysql_query(\"SELECT DISTINCT logo, nentreprise FROM entreprise where valide='oui' ORDER BY RAND() LIMIT 6\");

while($resultat=mysql_fetch_row($requete))
{
echo ', ';

}
?>


<?
$nbrpage1 = number_format($monnbr / $maxenreg);
$nbrpage = $nbrpage1 + 1;


for ( $i = 1; $i <= $nbrpage; $i++ )
{
$debut = ((($i - 1) * 4) + 1);
echo (": $i :");
}


?>

<?php }}
else
{$echec ="Aucune entreprise correspondante à votre critère de recherche";
echo $echec;} ?>



<?php $echec; ?>,

----
Autre recherche, Recherche Avancée

<? mysql_close(); ?>



</html>
merci
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
19 nov. 2005 à 12:16
Oui oui, je comprend ton problème...





J'ai même vu l'erreur dans ton code. Mais, dans un but "didactique" je
ne souhaite pas te dire où est cette erreur. Car cela ne t'aiderai en
rien. Tu reviendrais toutes les deux heures avec une nouvelle
erreur du même tonneau.



Il faut :

* que tu lises de bon tutotiaux sur PHP (tape PHP tuto dans moteur de recherche préféré)

* que tu apprenne à débugger (ex : comme je viends de faire avec des
sorties d'erreurs affichant les variables mises en causes, puis tu
remonte à la source... ici : qui rempli $query 2 ?)

* que tu lises toujours la documentation d'une fonction PHP avant de l'utiliser (fr.php.net ou nexen.net)
0
refkaben Messages postés 151 Date d'inscription vendredi 19 août 2005 Statut Membre Dernière intervention 21 février 2006
19 nov. 2005 à 12:40
Bon, Merci pour le fait tu t'interresse à ma question et tu me mène à la solution pas à pas!
Maintenant j'arrive à se débarrasser de :ERREUR SQL
Query est vide
REQUETE :
c'etait plutot une erreur logique: c'etait l'accolade fermante de mon premier if(if($rech!="")
Maintenant dès que je passe à la deuxième page ça ne m'affiche rien; en plus il génère un nombre de page double et qui ne contiennent mon message "echec"
je travaille la dessus mais STP si tu vois l'erreur dis moi!
Mais j'ai beaucoup apprécié ta méthode de répondre à ma question,
merci
0
refkaben Messages postés 151 Date d'inscription vendredi 19 août 2005 Statut Membre Dernière intervention 21 février 2006
21 nov. 2005 à 09:49
Bonjour,
Je suis encore bloquée, je vous prie de voir avec moi ou se pose le problème; le code me semble correcte, il m'affiche la première page avec tous les enregistrement voulus, mais dès que je passe au pages suivantes il m'affiche "aucune entreprise.....".
Je veux savoir s'il ya un problème entre $rech= $HTTP_POST_VARS['rech'];


$critere= $HTTP_POST_VARS['critere'];
et le passage d'une page à l'autre?
Merci de m'aider!
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
22 nov. 2005 à 01:15
Pour faire un passage de variable dans l'URL, il faut faire :

xxx.php?variable=valeur

Pour récupérer le contenu d'une variable transmise par URL :
$_GET['variable'] = valeur.

A toi de voir la suite :)
0
refkaben Messages postés 151 Date d'inscription vendredi 19 août 2005 Statut Membre Dernière intervention 21 février 2006
22 nov. 2005 à 11:15
Merci pour votre réponse,
Mais je récupère bien mes variables, et ça reste le meme pb.
Dès que je passe à la deuxième page ça ne m'affiche rien!
Merci de m'aider
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
22 nov. 2005 à 11:30
Vérifie tes données avant, puis tes données après (via des echo() ).

Essaye avec les sessions également :/
0
Rejoignez-nous