Php, problème avec mysql_fetch_array

Résolu/Fermé
perduquepart Messages postés 49 Date d'inscription vendredi 11 janvier 2008 Statut Membre Dernière intervention 1 novembre 2009 - 26 sept. 2008 à 21:02
perduquepart Messages postés 49 Date d'inscription vendredi 11 janvier 2008 Statut Membre Dernière intervention 1 novembre 2009 - 26 sept. 2008 à 22:35
Bonjour, j'ai un petit problème!

J'essaie de faire afficher des données contenues dans une db, le tout dans un tableau grace a des commande mysql.
Le problème c'est que j'ai cette erreur:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in M:\xampp\htdocs\Programmation\Atelier9\magasin.php on line 52
Et je cherche pourquoi, et je ne trouve pas! Alors si qqq pouvait me donner un coup de main, voici mon code:


************************************************************************************
$connexion = mysql_connect ("localhost","root","");

//IF vérification connexion

if ($connexion == "")
{
//Si aucune connexion, traiter ceci:
echo "<script>alert ('Erreur de connexion avec le serveur de données')</script>";
}


else
{
//REQUÊTE affichage tblProduits
$queryallproduits = "SELECT * FROM tblproduits";

//Sélectionnez la base de données
$db_selected = mysql_select_db ('dbatelier', $connexion);

//Envoi de la REQUÊTE $queryallProduits au serveur de données
$requeteallproduits = mysql_query ($queryallproduits);

//Assignation variable affichage REQUÊTE $queryallProduits
$numrowallproduits = mysql_num_rows ($requeteallproduits);

//Si le nombre rangées = 1+, traite ceci:
if ($numrowallproduits !=0)
{
//Affichage entête du $tableallProduits
//Ouverture $tableallProduits
$tableallproduits = "<table border=\"20\" align=\"center\" bordercolor=\"#000000\">
<tr id=\"entete\">
<td>Titre Francophone</td>
<td>Titre Anglophone</td>
<td>Genre</td>
<td>Durée</td>
<td>Images</td>
<td>Prix</td>
<td>Sélection</td></b>
</tr>\n";

//Boucle FOR pour affichage données de $tableallProduits
for ($cells =0; $cells<= $numrowallproduits; $cells++)
{
//Assignation variable 1 colonne pour $tableallProduits
$colloneallproduits = mysql_fetch_array($numrowallproduits);

//Affichage colonnes avec les données

//Colonne Titre Francophone
$tableallproduits .= "<tr><td valign=\"middle\" align=\"center\"><b>".$colloneallproduits['Titre Francophone']."</b></td>";

//Colonne Titre Anglophone
$tableallproduits .= "<td BGCOLOR=\"#969696\" valign=\"middle\" align=\"center\">".$colloneallproduits['Titre Anglophone']."</td>";

//Colonne Genre
$tableallproduits .= "<td valign=\"middle\" align=\"center\"><b>".$colloneallproduits['Genre']."</b></td>";

//Colonne Durée
$tableallproduits .= "<td BGCOLOR=\"#969696\" valign=\"middle\" align=\"center\">".$colloneallproduits['Durée']."</td>";

//Colonne Images
$tableallproduits .= "<td valign=\"middle\" align=\"center\"><img src=\"./images/PicturesMovies/".$colloneallproduits['Images']."\"></td>";

//Colonne Prix
$tableallproduits .= "<td BGCOLOR=\"#969696\" valign=\"middle\" align=\"center\">".$colloneallproduits['Prix']."</td>";

//Colonne Sélection
//$tableallproduits .= "<td valign=\"middle\" align=\"center\"><input type=\"checbox\" name=\"selection\" .$colloneallproduits['ID'] value=\"".$colloneallproduits['ID']."\"></td></tr>\n";
}

//Fermeture $tableallProduits
$tableallproduits .= "</table>\n";

***************************************************************************************
Merci pour votre aide!! Moi je suis dépassé!!
A voir également:

9 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
26 sept. 2008 à 21:11
Bonsoir,

$connexion = mysql_connect ("localhost","root","");

//IF vérification connexion

if ($connexion == "")
{
//Si aucune connexion, traiter ceci:
echo "<script>alert ('Erreur de connexion avec le serveur de données')</script>";
}


c'est pas bon $connexion est soit le numéro de ressource soit false

fais plutot:

$connexion = mysql_connect ("localhost","root","") or die ("Pb connexion au serveur ".mysql_error());

//IF vérification connexion

if ($connexion){

$base=mysql_select_db("nom_de_ta_base") or die ("Pb connexion a la base ".mysql_error());

et ensuite tes requettes  car ton erreur veut dire que c'est l'instruction precedente qui n'a pas renvoye qq chose d'exploitable par mysql_fetch_array

et pour le test nombre resultats fais plutot:

if ($numrowallproduits >0)

0
donuts08 Messages postés 519 Date d'inscription dimanche 13 novembre 2005 Statut Membre Dernière intervention 15 octobre 2008 39
26 sept. 2008 à 21:14
bonjour,

c'est le résultat d'une requête qu'il attend pas un entier ;)

$colloneallproduits = mysql_fetch_array($requeteallproduits );
0
perduquepart Messages postés 49 Date d'inscription vendredi 11 janvier 2008 Statut Membre Dernière intervention 1 novembre 2009 5
26 sept. 2008 à 21:35
Merci, donuts avait raison, maintenant j'ai plus d'erreurs, mais j'ai un autre problème! J'ai rien qui s'affiche! J'ai complètement une page blanche et si je veux voir le code source, j'ai aussi une page blanche! Pouvez-vous me donner encore un coup de main??
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
26 sept. 2008 à 21:40
après $numrowallproduits = mysql_num_rows ($requeteallproduits);

mets echo "Nombre d'enr trouves: ".$numrowallproduits;

pour voir ce que tu as
0
perduquepart Messages postés 49 Date d'inscription vendredi 11 janvier 2008 Statut Membre Dernière intervention 1 novembre 2009 5
26 sept. 2008 à 21:53
Alain_42, sa me donne 10, exactement le nombre d'enregistrements que j'ai dans ma table
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
26 sept. 2008 à 21:57
C'est normal tu rempli une variable $tabeauproduit et après ?

il faut faire echo $tableallproduits;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
donuts08 Messages postés 519 Date d'inscription dimanche 13 novembre 2005 Statut Membre Dernière intervention 15 octobre 2008 39
26 sept. 2008 à 21:55
oui mais ce qu'il voulait savoir c'est si ce message s'affiche ou pas ^^

essai de mettre des echo un peu partout pour voir là où ça coince...
0
perduquepart Messages postés 49 Date d'inscription vendredi 11 janvier 2008 Statut Membre Dernière intervention 1 novembre 2009 5
26 sept. 2008 à 22:04
Dsl, j'ai pas poste tout mon code tout a l'heure vu que le probleme ne concernait pas laffichage voici le reste:

********************************************************************************

//Si le nombre rangées = 0, traite ceci:
else
{
$tableallproduits = "<h1>Aucun produit n'est actuellement disponible.</h1>";
}

//Assignation variable $magasin, Affichage TOP $tableallProduits
//Ouverture !frmtablemovies!
$magasin = "<h1><div style=\"color:#808080\">Ma Sélections Cinématographiques</div></h1><hr>
<b>Faites votre sélection pour les ajouter à votre <i><span style=\"color:#0099FF\">panier.</span></i></b>
<br>
<br>
<form name=\"frmtablemovies\" method=\"post\" action=\"".$_SERVER["PHP_SELF"] ."\">\n";

//Assignation variable $magasin, Insertion $tableallProduits
$magasin .= $tableallproduits ."<br><br>";

//Assignation variable $magasin, Affichage Bottom $tableallProduits (Button)
//Fermeture !frmtablemovies!
$magasin .= "<input type=\"button\" name=\"cmdcheckall\" value=\"Check all\" onclick=\"chkall()\">\n
<input type=\"button\" name=\"cmdchecknothing\" value=\"Check nothing\" onclick=\"chknothing()\">\n
<input type=\"submit\" name=\"cmdaddtobasket\" value=\"Add movies\">\n
<input type=\"hidden\" name=\"selItem\" value=\"".$_POST['selItem'] ."\">\n
</form>";

//Ignore si nécessaire
$magasin .= "<form name=\"frmRappelpage\" action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n
<input type=\"hidden\" name=\"selItem\" value=\"".$_POST['selItem'] ."\">\n
</form>";

//Fermeture de la connexion au serveur de données SQL
mysql_close ($connexion);

******************************************************************************************
Merci pour votre aide et votre patience!!
0
perduquepart Messages postés 49 Date d'inscription vendredi 11 janvier 2008 Statut Membre Dernière intervention 1 novembre 2009 5
26 sept. 2008 à 22:24
kk, j'ai trouvé pourquoi sa affichait pas. J'avais déterminé les valeurs de ma variables et tout et tout, mais j'ai oublie de l'affiche grace à un echo. Merci tout de même pour votre aide. Mais j'ai un autre problème!!

*****
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in M:\xampp\htdocs\Programmation\Atelier9\magasin.php on line 75

J'ai cette erreur à cette ligne:

//Colonne Sélection
$tableallproduits .= "<td valign=\"middle\" align=\"center\"><input type=\"checkbox\" name=\"selection".$colloneallproduits['ID']"\" value=\"".$colloneallproduits['ID']."\"></td></tr>\n";


*****
Si vous pouviez encore me donner un petit coup de main!!
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
26 sept. 2008 à 22:32
comme ça:

$tableallproduits .= "<td valign=\"middle\" align=\"center\"><input type=\"checkbox\" name=\"selection\"".$colloneallproduits['ID']." value=\"".$colloneallproduits['ID']."\"></td></tr>\n";
0
perduquepart Messages postés 49 Date d'inscription vendredi 11 janvier 2008 Statut Membre Dernière intervention 1 novembre 2009 5
26 sept. 2008 à 22:34
J'ai encore trouvé la solution à mon problème, au lieu de

name=\"selection".$colloneallproduits['ID']"\" = on devrait lire

name=\"selection".$colloneallproduits.['ID']"\"= il me manquait un point pour la concatenation!!

Ponctuation de ***** sa ma fait perdre mon après-midi!!! Merci pour votre aide!!!
0
perduquepart Messages postés 49 Date d'inscription vendredi 11 janvier 2008 Statut Membre Dernière intervention 1 novembre 2009 5
26 sept. 2008 à 22:35
merci Alain... dsl j'avais pas remarquer ton message!!
0