Juste un petit pb de débutant [Résolu]

Signaler
Messages postés
3
Date d'inscription
vendredi 27 octobre 2006
Statut
Membre
Dernière intervention
28 mai 2007
-
Messages postés
32
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
20 mai 2007
-
Bonjour à tous.
Je commence tout juste le php et je voudrais savoir pourquoi ce morceau de code ne marche pas :

$sql='SELECT titulo, decripcion, formato, duracion, tipo, comentarios FROM imagen WHERE tema="'.$tema.'" AND tipo="'.$tipo.'";';
$requete=mysql_query($sql);

while ($ligne = mysql_fetch_array($requete)){
   print "<tr>
   <td>".$ligne["titulo"]."</td>
   <td>".$ligne["descripcion"]."</td>
   <td>".$ligne["formato"]."</td>
   <td>".$ligne["duracion"]."</td>
   <td>".$ligne["tipo"]."</td>
   <td>".$ligne["comentarios"]."</td>
   <td></td>
   </tr>"; 
}

L'erreur est la suivante :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\resultadoct.php on line 20

Merci de me répondre

7 réponses

Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
7
Bonjour,

Le message d'erreur te dis que $requete n'est pas une resource MySQL... Que cela peut-il bien être ?

Le site www.php.net nous dit :
"
Pour les requêtes du type <var>SELECT</var>, <var>SHOW</var>,
<var>DESCRIBE</var> ou <var>EXPLAIN</var>,
mysql_query() retournera une ressource<tt></tt> en cas de succès,
ou <tt>FALSE</tt> en cas d'erreur."
Et aussi :
"mysql_query() échouera et retournera <tt>FALSE</tt>
si l'utilisateur n'a pas les autorisations nécessaire pour accéder à la (aux) table(s)
référencée(s) par la requête."

Je suppose donc que $requete vaut FALSE à cause d'une des deux raisons ici présentées... Comment le savoir ?

Toujours sur la même page du site, première exemple :
Exemple 1527. Requête invalide


La requête suivante est syntaxiquement invalide, donc
mysql_query() va échouer et retourner <tt>FALSE</tt>.


<?php

$result = mysql_query('SELECT * WHERE 1=1');

if (!$result) {

    die('Requête invalide : ' . mysql_error());

}

?>


Intègre donc ce bout de code à ton script.... tu verras très vite quelle est l'erreur coté MySQL.

Bonne chance,
Messages postés
32
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
20 mai 2007

while ($ligne = mysql_fetch_assoc($requete)){
à la place de while ($ligne = mysql_fetch_array($requete)){
Messages postés
32
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
20 mai 2007

et ici : tipo="'.$tipo.'"'; au lieu de tipo="'.$tipo.'";';
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
7
slaxswf :

* fetch_assoc ou fetch_array.... Tu chipottes, :
Performance:
Une chose importante à noter est que l'utilisation de
mysql_fetch_array() n'est pas
significativement plus lent que l'utilisation de
mysql_fetch_row(), alors qu'il fournit
des valeurs significatives ajoutées. (http://www.php.net/manual/fr/function.mysql-fetch-array.php)
* Effectivement, l'erreur de syntaxe SQL est ici... Mais c'est en le laissant trouver que tu l'aurais plus aider... ("You have an error in your SQL syntax near...")
Messages postés
3
Date d'inscription
vendredi 27 octobre 2006
Statut
Membre
Dernière intervention
28 mai 2007

Merci beaucoup !
Messages postés
32
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
20 mai 2007

oki excuse moi ,)
Messages postés
32
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
20 mai 2007

oki excuse moi ,)