Erreur en sql php
Hacker#1
Messages postés
88
Statut
Membre
-
le père -
le père -
Bonjour,
Quand je met mes variable et je clique sur rechercher jai le message suivant
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\wamp\www\compte\avancee.php on line 44
aider moi a resoudre ce probleme
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form name="form1" method="post" action="avancee.php">
<label>
<input type="text" name="name" id="textfield" />
</label>
<label>
<input type="checkbox" name="nom" id="checkbox3">
</label>
<p>
<label>
<input type="text" name="home" id="textfield2" />
</label>
<label>
<input type="checkbox" name="maison" id="checkbox" />
</label>
</p>
<p>
<label>
<input type="text" name="writer" id="textfield3" />
</label>
<label>
<input type="checkbox" name="auteur" id="checkbox2" />
<br>
</label>
<input type="submit" name="search" value="rechercher" id="submit" />
</p>
</form>
<?php
if(isset($_POST["search"]))
{$a=$_POST["name"];
$b=$_POST["home"];
$c=$_POST["writer"];
if(isset($_POST["maison"])&&isset($_POST["auteur"])&&isset($_POST["nom"]))
{mysql_connect('localhost','root','');
mysql_select_db('compte');
$req=mysql_query("SELECT * FROM livre where nom='$a'and maison d edition='$b' and auteur='$c'");
echo "<table border>";
while($data=mysql_fetch_row($req))
{
echo "<tr>
<td> <span class='style1'> nom ".$data['nom']."<br>auteur ".$data['auteur']."<br>maison d edition ".$data['maison d edition']
."<br>nbre d exemplaire ".$data['nbre d exemplaire']."</span></td>
<td></td>
</tr>";
}
echo"</table>";
mysql_close();}
}
?>
</body>
</html>
Quand je met mes variable et je clique sur rechercher jai le message suivant
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\wamp\www\compte\avancee.php on line 44
aider moi a resoudre ce probleme
A voir également:
- Erreur en sql php
- Expert php pinterest - Télécharger - Langages
- Iptv erreur de lecture - Forum TV & Vidéo
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
6 réponses
Cela signifie que ta requête n'est pas correcte :
Deuxième point : éviter de mettre des espaces dans les noms des tables (maison d edition).
"SELECT * FROM livre where nom='$a'and maison d edition='$b' and auteur='$c'a remplacer par
"SELECT * FROM livre where nom='".$a."'and maison d edition='".$b."' and auteur='".$c.'"
Deuxième point : éviter de mettre des espaces dans les noms des tables (maison d edition).
Bonjour
Tu as (au moins...) deux problèmes dans ta requête :
1 - les espaces dans le nom de ton champ. Cela t'oblige à entourer le nom de ce champ avec des accents graves
2 - il manque un espace entre '$a' et and
"SELECT * FROM livre where nom='$a' and `maison d edition`='$b' and auteur='$c'"
Sinon, il est totalement inutile de couper la chaîne en 36 morceaux pour les concaténer.
Tu as (au moins...) deux problèmes dans ta requête :
1 - les espaces dans le nom de ton champ. Cela t'oblige à entourer le nom de ce champ avec des accents graves
2 - il manque un espace entre '$a' et and
"SELECT * FROM livre where nom='$a' and `maison d edition`='$b' and auteur='$c'"
Sinon, il est totalement inutile de couper la chaîne en 36 morceaux pour les concaténer.
j ai ajoute les accents graves et l espace entre and et $a
mais des nouveaux messages d'erreur appraissent?!
voila ce qui donne a l affichage
j n ai pas compris votre deuxieme proposition expliquer de plus
mais des nouveaux messages d'erreur appraissent?!
voila ce qui donne a l affichage
Notice: Undefined index: nom in C:\wamp\www\compte\avancee.php on line 47 Notice: Undefined index: auteur in C:\wamp\www\compte\avancee.php on line 47 Notice: Undefined index: maison d edition in C:\wamp\www\compte\avancee.php on line 47 Notice: Undefined index: nbre d exemplaire in C:\wamp\www\compte\avancee.php on line 48 nom auteur maison d edition nbre d exemplaire
j n ai pas compris votre deuxieme proposition expliquer de plus
Sinon, il est totalement inutile de couper la chaîne en 36 morceaux pour les concaténer.
"Sinon, il est totalement inutile de couper la chaîne en 36 morceaux pour les concaténer." Je te dirais bien faux pour ça , essaie de placer une variable sessions dans une requête sans concaténer tes variables.Et de plus essaie d'utiliser de vrai de variable : a b c, ça veut rien dire.
Et place ceci après ta requête pour afficher l'erreur dans tes requêtes:
or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
Ceux qui donne :
De plus , essai de creer des chazmps sans espace dans tes bdd pour simpliier l'utilisation.
Et place ceci après ta requête pour afficher l'erreur dans tes requêtes:
or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
Ceux qui donne :
$req=mysql_query("SELECT * FROM livre where nom='".$a."'and maison d edition='".$b."' and auteur='".$c.'") or die('Erreur SQL !'.$req.'<br/>'.mysql_error());
De plus , essai de creer des chazmps sans espace dans tes bdd pour simpliier l'utilisation.
Sinon, il est totalement inutile de couper la chaîne en 36 morceaux pour les concaténer Je maintiens.
Je n'ai aucun problème pour mettre des variables de session dans une requête, et d'ailleurs il n'est pas question ici de variables de session.
Je maintiens aussi qu'on peut très bien utiliser des espaces dans un nom de table ou de champ (même si ça n'est pas une bonne idée, je suis d'accord) à la condition de l'entourer d'accents graves comme dans la requête que j'ai donnée
A ceux qui ne savent pas utiliser une variable de session (ou n'importe quel élément de tableau) dans une chaîne, je rappelle qu'il ne FAUT PAS mettre d'apostrophes autour de l'indice quand la variable est utilisée à l'intérieur d'une chaîne. Il faut écrire
"SELECT * FROM `matable` WHERE `nom`=$_SESSION[login]"
et non pas
"SELECT * FROM `matable` WHERE `nom`=$_SESSION['login']"
Je n'ai aucun problème pour mettre des variables de session dans une requête, et d'ailleurs il n'est pas question ici de variables de session.
Je maintiens aussi qu'on peut très bien utiliser des espaces dans un nom de table ou de champ (même si ça n'est pas une bonne idée, je suis d'accord) à la condition de l'entourer d'accents graves comme dans la requête que j'ai donnée
A ceux qui ne savent pas utiliser une variable de session (ou n'importe quel élément de tableau) dans une chaîne, je rappelle qu'il ne FAUT PAS mettre d'apostrophes autour de l'indice quand la variable est utilisée à l'intérieur d'une chaîne. Il faut écrire
"SELECT * FROM `matable` WHERE `nom`=$_SESSION[login]"
et non pas
"SELECT * FROM `matable` WHERE `nom`=$_SESSION['login']"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Y'a plusieurs manière d'écrire ces requêtes sql. Ce qui compte c'est surtout d'en utiliser une qui marche. Chacun fait comme il veux ensuite. Faut je pense surtout être à l'aise avec la manière qu'on utilise.