erreur PHP Warning: mysql_fetch_array(): supplied argument

WRInaute discret
Bonjour,

j'ai un petit problème avec mon script de filmographie en php

-http://spencerhill.free.fr/filmographie_bud.php

lorsque je veux avoir le détail du film j'obtient
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /mnt/112/sdc/7/c/spencerhill/detail-film.php on line 154

Voici la section de code qui pose problème
Code:
 <?php
include ("config.php");
mysql_connect($host,$login,$password)  or die(mysql_error()); 
mysql_select_db($base);                 
$result = mysql_query("SELECT id_film, titre, annee,realisateur,url_amazon, resume, casting FROM filmographie WHERE id_film='$id_film' ORDER BY annee");
?>
<?php while ($donnes = mysql_fetch_array ($result)) { 
echo '<h3>';
echo $donnes['titre'];
echo '&nbsp;';
echo '(';
echo $donnes['annee'];
echo ')';
echo '</h3>';
?>
 
WRInaute passionné
et si tu rajoutes un
Code:
echo "SELECT id_film, titre, annee,realisateur,url_amazon, resume, casting FROM filmographie WHERE id_film='$id_film' ORDER BY annee";
1-et que la ligne affichée dans ta page tu l'executes dans ton phpmyadmin ca marche ?
2-la variable $id_film s'affiche bien dans ton echo ?
3-ya pas un dernier } qui manque ?
4- arretons les -http
5- et pas besoin de selectionner id_film dans ta requete vu que tu l'as connais deja
 
WRInaute accro
ta requete est fausse, met ca :

$requete="SELECT id_film, titre, annee, realisateur, url_amazon, resume, casting FROM filmographie WHERE id_film='$id_film' ORDER BY annee";
echo $requete;

tu verra desuite le problème (je dirai un $id_film qui vaut NULL)
 
WRInaute passionné
e-kiwi a dit:
ta requete est fausse
pkoi elle est fausse ?
à cause des espaces dans le select ? car si c'est ca que t'en mette ou pas ca changera rien

et question con, pkoi ORDER BY annee au fait ? t'en a pas besoin vu que tu as un id_film ... donc tu n'es censé avoir qu'un film de toute facon
 
WRInaute accro
>>pkoi elle est fausse ?
parceque ça :)
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL
je lui dit que si il a ce mesasge d'erreur, il faut qu'il se concentres sur la requete
 
WRInaute passionné
ah ok, j'vais pensé que tu disais que c'etait sa syntaxe qui était fausse donc je comprenais pas :D

bah avec tout ce qui a été dit, ca devrait etre résolu...

ps: sur sa page on voit que l'id_film passe (il a fait un echo de sa requete) donc a tous les coups, ses champs dans son select ne doivent pas correspondre a sa table
 
WRInaute discret
Merci pour toute vos réponses !

ayant tout essayé avec vos astuces, sans aucun résultat... j'ai repris quelques cours de PHP, et j'ai refait entierement mon "bazar" !

maintenant cela fonctionne mais j'aurai encore quelques précisions à avoir :

voilà mon code actuel
Code:
 <?php
include ("config.php");
mysql_connect($host,$login,$password)  or die(mysql_error()); 
mysql_select_db($base);                 
$result = mysql_query("SELECT titre, annee,realisateur, resume, casting FROM filmographie WHERE titre='$titre'");
?>
<?php while ($donnes = mysql_fetch_array ($result) )
{
echo '<h3>';
echo $donnes['titre'];
echo '&nbsp;';
echo '(';
echo $donnes['annee'];
echo ')';
echo '</h3>';
?>
<strong>Casting: </strong><?php echo $donnes['casting']; ?> <br />
<strong>Réalisateur: </strong><?php echo $donnes['realisateur']; ?>
<hr />
<p>
<strong>Synopsis: </strong><?php echo $donnes['resume'];
?></p>

<?php
}

mysql_close(); // Déconnexion de MySQL
?>

J'ai supprimé le id_film et j'ai fait passer la variable (d'une page à l'autre) par ['annee']

Mais j'ai toujours un petit souci d'affichage de données triées: Je voudrais afficher une requete qui ne selectionne que les champs où se trouvent 2 termes "hill" et "Spencer" (j'y arrive uniquement avec 1 terme).

j'ai donc testé ça mais ça ne marche pas
Code:
//==== Requete de selection bdd ====================
$strSQL = "SELECT titre FROM filmographie";
$result = mysql_query("SELECT * FROM filmographie WHERE casting LIKE '%Bud Spencer%' AND '%Terence Hill%' ORDER BY annee DESC");
while ($row = mysql_fetch_array ($result)) {
 echo "<a href=\"detail-film.php?titre=".$row["titre"]."\">".$row['annee']." ".$row['titre']."</a><br/>";
}
c'est là qu'il y a problème : '%Bud Spencer%' AND '%Terence Hill%'



Je voudrais SVP savoir comment augmenter la sécurité du script
 
Nouveau WRInaute
Bonjour,

j'ai exactement le même problème, cependant la requête s'affiche bien dans l'echo, et s'execute également dans phpmyadmin :

etape1zg8.jpg
etape2rz7.jpg


mon script correspond à afficher les emails qu'on a coché dans la liste pour pouvoir les modifier...

mon code :

<form name="delete" method="post" action="admin/admin.php?page=admin&amp;type=newsletter&amp;do=<? echo strtolower($_POST['action']) ; ?>&amp;lang=<? echo $_GET['lang'] ; ?>">
<table>
<tr>
<td><input type="checkbox" name="checkall" onclick="checkUncheckAll(this);" /></td>
<td><b><? echo ucfirst(TXT_ID) ; ?></b></td>
<td><b><? echo ucfirst(TXT_EMAIL) ; ?></b></td>
<td><b><? echo ucfirst(TXT_LASTNAME) ; ?></b></td>
<td><b><? echo ucfirst(TXT_FIRSTNAME) ; ?></b></td>
</tr>
<?
// Modifier les entrées de la liste
if($_GET['do'] == TXT_MODIF) {
if (isset($action)) {
foreach ($id as $modif_id) {
if (isset($modif_id) AND ($modif_id != '')) {
$requete = "SELECT * FROM opt_newsletter_table WHERE id=$modif_id" ;
} else {
$requete = "SELECT * FROM opt_newsletter_table ORDER BY $sort $order" ;
}
$modif_result = $requete ;
echo $modif_result ;
$modif_row = mysql_fetch_array($requete) ;

echo '<tr>' ;
echo '<td><input type="checkbox" name="id[]" value="'.$checkbox_id.'" /></td>' ;
echo '<td style="text-align: right;">'.$modif_row['id'].'</td>' ;
echo '<td>modif '.$modif_row['email'].'</td>' ;
echo '<td>modif '.$modif_row['nom'].'</td>' ;
echo '<td>modif '.$modif_row['prenom'].'</td>' ;
echo '</tr>' ;
}
}
}

// Maintenir l'affiche de la liste en cas d'erreur dans le panneau admin
elseif((strpos($_POST['add_email'],"@") == '') OR (strpos($_POST['add_email'],".") == '') OR $add_check) {
$result = mysql_query("SELECT * FROM opt_newsletter_table ORDER BY $sort $order");
while($row = mysql_fetch_array($result)) {
echo '<tr>' ;
echo '<td><input type="checkbox" name="id[]" value="'.$row['id'].'" /></td>' ;
echo '<td style="text-align: right;">'.$row['id'].'</td>' ;
echo '<td>'.mailto($row['email'],$row['email']).'</td>' ;
echo '<td>'.$row['nom'].'</td>' ;
echo '<td>'.$row['prenom'].'</td>' ;
echo '</tr>' ;
}
}
// Affichage du message temporaire pendant la mise à jour de la base de données
elseif(isset($_GET['do']) AND $_GET['do'] == "add" AND $_POST['add_email'] != "") {
echo MSG_DB_UPDATE.' ' ;
echo lien_txt(TXT_REFRESH,'../admin/admin.php?page=admin&amp;type=newsletter&amp;lang='.$_GET['lang'].'&amp;sort='.$sort.'&amp;order='.$order,'') ;
} else {
echo '' ;
}
?>
</table>
</form>

autre problème... je suis obliger de cliquer 2fois sur la touche modifier avant d'atteindre l'image 2... :?: :?: :?:
 
Discussions similaires
Haut