Page 1 sur 1

problème de requère SQL avec mysql_fetch_array

Posté : 02 mars 2006, 21:14
par wish*
Bonjour,

J'ai un soucis,surement petit avec la fonction "mysql_fetch_array" où j'ai cette erreur:"Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in..line.."
Je souhaite stocker ma requete sql(qui prend des données que l'utilisateur saisis dans un formulaire) avec mysql_query dans la variable que j'ai nommé "$affresultat".

J'ai verifié, le nom de mes attributs dans la requète SQL sont correct par rapport à ma BD.

Ensuite je souhaite inserer dans chaque colonne d'un tableau indicé les valeurs renvoyée par $affresultat donc ma requète SQL.J'utilise alors "mysql_fetch_array".

C'est surement une erreur dans ma requète mais la je suis perdu.

Voila j'espère avoir été clair à vos yeux :wink: et de ne pas parler d'un problème déja résolu
merci d'avance.
if ($idconnexion) {  
                                                                            //ma requète SQL
$requete='SELECT n_dvd,titre,duree,jaquette,lib_genre 
	        FROM DVD,genre 
                WHERE DVD.n_genre=genre.n_genre                         
	        AND titre LIKE="'.$_POST['titres'].'"' ;

$affresultat = mysql_query($requete); 


    echo'<table width="95%" border="1">';                            
    echo'<tr>';                                                       
    echo'<td align="center">TITRE</td>';
    echo'<td align="center">DUREE</td>';
    echo'<td align="center">GENRE</td>';
    echo'<td align="center">JACQUETTE</td>';
    echo'<td align="center">ACTEURS</td>';
    echo'</tr>';
  
    while ( $ligne = mysql_fetch_array($affresultat , MYSQL_BOTH)) {  //mon erreur signalé

    	echo'<tr>';
    echo'<td>'.$ligne[0].'</td>';                                        //insert dans chaque colonne les données de la requete $requete
    echo'<td>'.$ligne[1].'</td>';
    echo'<td>'.$ligne[2].'</td>';
    echo'<td><img src="/DVDTHEQUE/images'.$ligne[3].'.jpg"</td>';
    echo'<td>'.$ligne[4].'</td>';
    echo'</tr>';
      
	   }
     echo '</table>';                                                      //Pour chaque   ligne de AffichResultat on affiche la requete
 
  }

Posté : 02 mars 2006, 21:29
par charabia
Essaies ce code :
<?php
if ($idconnexion)
{
//ma requète SQL
$requete='SELECT n_dvd,titre,duree,jaquette,lib_genre
	FROM DVD,genre
	WHERE DVD.n_genre=genre.n_genre
	AND titre LIKE="'.$_POST['titres'].'"' ;
$affresultat = mysql_query($requete);
?>
<table width="95%" border="1">
<tr>                                
	<td align="center">TITRE</td>
	<td align="center">DUREE</td>
	<td align="center">GENRE</td>
	<td align="center">JACQUETTE</td>
	<td align="center">ACTEURS</td>
</tr>
<?php
while ($ligne = mysql_fetch_array($affresultat))
{
	echo'<tr>'; 
	echo'<td>'.$ligne[0].'</td>'; //insert dans chaque colonne les données de la requete $requete 
	echo'<td>'.$ligne[1].'</td>'; 
	echo'<td>'.$ligne[2].'</td>'; 
	echo'<td><img src="/DVDTHEQUE/images'.$ligne[3].'.jpg"></td>'; 
	echo'<td>'.$ligne[4].'</td>';
	echo'</tr>'; 
}
}
?>
</table>

Posté : 02 mars 2006, 22:01
par wish*
J'obtient toujours la meme erreur malgrès ton aide Charabia:"Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in .. on line .."

Est ce que cela pourrais provenir d'une erreur dans ma Base de Données?

Posté : 02 mars 2006, 22:06
par charabia
Que donne la requête si tu la fait directement dans phpMyAdmin, tu pourrais mieux voir le problème.

Posté : 02 mars 2006, 22:25
par wish*
J'ai rentré ma requère dans PhpMyAdmin et j'ai un message d'erreur de syntaxe à la ligne 1,je sais pas d'ou elle peut sortir,j'ai verifié et j'en vois aucunne.
'SELECT n_dvd,titre,duree,jaquette,lib_genre,
	     FROM DVD,genre,
             WHERE DVD.n_genre=genre.n_genre,                         
             AND titre LIKE="'.$_POST['titres'].'"';

Posté : 02 mars 2006, 22:28
par charabia
'SELECT n_dvd,titre,duree,jaquette,lib_genre
         FROM DVD,genre
             WHERE DVD.n_genre=genre.n_genre
             AND titre LIKE="'.$_POST['titres'].'"';
Tu as une virgule en trop après lib_genre, idem après genre et n_genre.

Posté : 02 mars 2006, 22:43
par wish*
Je suis perdu la,après les erreurs modifiées voici la nouvelle :#1064 - Erreur de syntaxe pr�s de '="'.$_POST['titres']." LIMIT 0, 30' � la ligne 4

le nom de mon formulaire se trouvant dans une autre page se nomme bien "titres",et j'utilise bien la méthode POST pourtant, est ce que ma requète en soit est bonne?

merci :wink:

Posté : 02 mars 2006, 22:56
par charabia
Heu...ce n'est pas le nom du formulaire qu'il faut utiliser mais le nom de tes champs.

Et pourquoi tu as des tits carrés dans ta requête ? Mais l'erreur que tu as ne provient pas du problème de nom.

Le LIKE ne s'utilise pas comme ça. Va voir la doc dessus.

Posté : 02 mars 2006, 23:02
par wish*
:oops: Oui pardon erreur de ma part,
Au niveau de mon erreur que signifie LIMIT 0,30 ?
L'erreur de syntaxe est imaginaire :?: :D Vois-tu une erreur flagrante dans mon formulaire qui n'as rien de plus simple?
<p class="Style1"><form name="formsaisis-titre_dvdthèque" action="affichrésultat_dvdthèque.php" method="post">
<input type="text" size="30" name="titres">

<input type="submit" value="envoyer">




</form>
Oui je crois avoir executer la requete directement,enfin si c'est bien dans
Phpmyadmin=>SQL=>executer la requete


merci :wink:

Posté : 02 mars 2006, 23:05
par charabia
C'est le LIKE qui ne s'utilise pas comme ça. Va voir la doc :)
LIKE "'.$_POST['titres'].'"';
En passant, il faut vraiment éviter les nom à ralonge...et avec des accents en plus.

Posté : 02 mars 2006, 23:16
par wish*
merci pour tout ,l'opérateur LIKE à été supprimé, car en faite je voulais que l'utilisateur puissent taper par exemple que le debut d'un mot et que cela lui renvoie tout les mots commencant par ce qu'il avait tapé,mais je vais men tenir au minimum.

Encore merci Charabia,le tout marche nikel.

Continue d'aider les newbies :wink:
@ plus

Posté : 02 mars 2006, 23:22
par charabia
De rien :)

N'oublies pas de mettre le résolu ;)