Que veut dire ce message d'erreur ? - PHP - Programmation
Marsh Posté le 02-03-2004 à 01:40:27
Il dit que tu as une erreur dans l'éxecution de la requête. Fait
Code :
|
pour avoir une idée plus précise de l'erreur
Marsh Posté le 02-03-2004 à 03:11:39
Ca veut dire que la requête ne t'as retourné aucun résultat.
Teste le retour à l'aide d'un if ($result = mysql_query($query))
Au fait, a quoi ca sert de commener chaque ligne par "<?php" et de les finir par "?>" ?
Si tu fait ça, le jour où tu voudra utiliser les entêtes ou les sessions, tu auras des messages d'erreur.
Marsh Posté le 02-03-2004 à 03:58:37
omega2 a écrit : Ca veut dire que la requête ne t'as retourné aucun résultat. |
1. Surement pas, mysql_query retourne toujours un résultat, le recordset ou false s'il y a une erreur. De plus, si le recordset est vide, mysql_fetch_array retournera false, pas une erreur.
2. Parce qu'il y a de l'html entre les lignes et qu'il a estimé a raison qu'il pouvait nous en faire grâce ?
Marsh Posté le 02-03-2004 à 08:36:14
naceroth a écrit : |
Toi t'es optimiste
Marsh Posté le 02-03-2004 à 13:55:29
naceroth a écrit : |
Et oui, mais "mysql_fetch_array(false)" sort le message d'erreur qu'il a obtenu.
S'il avait fait un "if ($result = mysql_query($query))", son code n'aurait pas tenté de faire mysql_fetch_array sur une variable dont la valeur est "false" et donc ne lui aurait pas retourné de message d'erreur.
Marsh Posté le 02-03-2004 à 17:13:14
Oui, mysql_fetch_array(false) sort le message d'erreur, j'ai jamais dit le contraire.
Mais tu disais que mysql_query n'avait pas retourné de résultat, ce qui est faux, elle a retourné une erreur, pas un recordset vide
Marsh Posté le 04-03-2004 à 17:43:36
Je ferai plutot ça ...
while($val = mysql_fetch_row($result))
{
}
Marsh Posté le 04-03-2004 à 18:28:18
ingeni_killer a écrit : Je ferai plutot ça ... |
c'est kif-kif comparé à son code
Marsh Posté le 07-03-2004 à 10:56:52
Hello,
moi je pense que ça provient en effet d'une erreur mais du à la nature de ta requete car tu te sert de la variable $cadre ds ta requete mais déjà elle n'est pas définie plus haut. Donc c clair que t'aura pa de retour. Cela dit tu aurai pas forcément d'erreur pour ça mais juste un résultat vide....
De plus je vois pas de trace de ta connexion.... tu déclare la page connexion.php mais ou est ta fonction pr te connecter à ta base ? sinon c CLAIR que ça vient de là....
En espérant que ça t'aura aidé....
Marsh Posté le 09-03-2004 à 00:41:02
voici mon fichier "conexion"
<?php
$host="localhost";
$user="root";
$pass="";
$bdd="apmusic";
@mysql_connect($host,$user,$pass) or die("Impossible de se connecter" );
@mysql_select_db("$bdd" ) or die("Impossible de se connecter" );
?>
de plus je pense avoir un problème comme tu le dis sur le "$cadre",car dans mon Formulaire html dont le code est le suivant :
<html>
<head>
<title>Document sans nom</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<body class="image">
<form name="form3" method="post" action="traitement.php">
<input type="text" name="[g]cadre">
<input type="submit" name="Submit" value="ok">
</form>
</body>
</html>
Lorsque je tape un mot qui dans ma base de donnée nomé: "apmusic",le résulat ne s'affiche pas, j'ai ce message :
Notice: Undefined variable: cadre in c:\program files\easyphp1-7\www\traitement.php on line 3
donc j'ai un problème avec la ligne 3 du fichier traitement et le problème vient de la variable "cadre" et je ne comprend pas ce problème car je l'ai bien d"fini pourtant ( je pense ).
de plus, quand je suppriùe le "$" devant "cadre", j'ai une page blanche ... et plus de message d'erreur
Je perd la tête
Marsh Posté le 09-03-2004 à 01:34:56
remplace ton $cadre par $_POST['cadre']
ou fait un $cadre = $_POST['cadre']; avant d'effectuer ta requête, comme tu veux
Marsh Posté le 09-03-2004 à 01:45:10
dans le formulaire html ? ou dans le programme PHP
ou dans les 2 ?
Marsh Posté le 09-03-2004 à 01:48:49
j'ai rajouter :
$cadre = $_POST['cadre'];
dans les variables
et j'obtient tjs ma meme erreur.
Marsh Posté le 09-03-2004 à 02:30:31
marcooo a écrit : dans le formulaire html ? ou dans le programme PHP |
C'est du php, la bonne réponse est bien sûr dans le programme php, au début, avant la requête :
Code :
|
ey si ça marche toujours pas, donne nous la requête que le code ci-dessus t'affiche
Marsh Posté le 09-03-2004 à 16:34:27
OK pr ton fichier connexion alors,
cela dit il te manque une variable pour obtenir une connexion persistante a ta base et ainsi la placer en argument dans la requete...
du style
$connexion = connexion($user,$password,$serveur,$db);
$requete = "SELECT * FROM db";
$resultat = mysql_query($requete,$connexion);
si tu met pas la connexion en argument c normal que ça marche pas..
après c peu etre que tu la mi mais que nous la pas mi sur le fichier...ça se peu aussi.
enfin vérifie...
ciao
Marsh Posté le 09-03-2004 à 17:03:10
BOssGTS a écrit : |
euh, non, le deuxième arguments d'un mysql_query est facultatif. S'il est absent, c'est la dernière connexion ouverte qui est utilisée ou à défaut une connexion est créée avec les arguments par défaut...
(Ah et j'oubliais, connexion n'est pas non plus une fonction, donc pas de retour )
Marsh Posté le 02-03-2004 à 01:21:57
J'obtient ce message lorsque je tape un mot dans un formulaire
qui est connecté a une base SQL.Ensuite j'appui sur "ok" et je devrai faire apparaitre mon résulat, et c'est ceci qui s'affiche:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp\www\traitement.php on line 6
voila mon prog
<?php include("connexion.php" ); ?>
<?php
$query = "SELECT * FROM apmusic WHERE Nom = '$cadre'";
$result = mysql_query($query);
?>
<?php while($val = mysql_fetch_array($result)){ ?> -->> (Ligne 6)
<?php echo "Résultats pour le nom $cadre"; ?><br><br>
<?php echo " "; ?>
<?php echo $val["nom"]; ?>
<?php echo " "; ?>
<?php echo $val["année"]; ?>
<?php echo " "; ?>
<?php echo $val["nationalite"]; ?><br>
<?php } ?>
<?php mysql_close(); ?>