Auteur |
Message |
oceane751
Forumeur fréquent
Sexe:
Messages: 93
|
Posté le:
Mer 28 Déc 2005 - 23:01 |
|
bonjour!
voilà j'ai un petit problème que je n'arrive pas à élucider
le voici :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c
je ne vois pas trop où j'ai peu fauté...
voici mon code :
Code: |
if ($tab_com = mysql_query ($add_com,$base))
{
$res_com = mysql_fetch_array($tab_com); ==> ERREUR DONC ICI
$num_com = $res_com[0];
$quantite = $_SESSION['panier']['quantite'];
echo "<h3><B><b><center><font face = papyrus>Votre commande a bien été prise en compte</B><br><br>Le paiement s'effectuera au moment de la livraison<br>
le delais est de 48h
</center>";
}
else
{
echo "Erreur dans l'éxecution de la requete derniere_comm<br>";
echo "Erreur".mysql_error().":".mysql_error()."<br>";
}
|
merci pour votre aide! |
|
|
|
|
N'oubliez pas de vous inscrire à la communauté pour participer. Si vous êtes déjà membre, connectez-vous pour faire disparaître ce bandeau publicitaire. |
mrmabo
Accro à Web-IG
Sexe:
Messages: 226
Localisation: Amiens
|
Posté le:
Jeu 29 Déc 2005 - 11:44 |
|
vérifie ta requete directement sous phpmyadmin deja
hum j'ai l'impression que tu fais une insertion dans ta BDD et que tu veux récuperer l'auto increment ?
dans ce cas il faut que tu utilises mysql_insert_id()
Code: |
if ($tab_com = mysql_query ($add_com,$base))
{
/* $res_com = mysql_fetch_array($tab_com); ==> ERREUR DONC ICI
$num_com = $res_com[0];*/
$num_com = mysql_insert_id();
$quantite = $_SESSION['panier']['quantite'];
echo "<h3><B><b><center><font face = papyrus>Votre commande a bien été prise en compte</B><br><br>Le paiement s'effectuera au moment de la livraison<br>
le delais est de 48h
</center>";
}
|
enfin en admettant avoir bien compris le problème |
|
|
|
|
Ninidc
Newbiiiie
Sexe:
Messages: 12
Localisation: Noisy-le-sec (93)
|
Posté le:
Jeu 29 Déc 2005 - 16:24 |
|
Ah mon avis, l'erreur vient de ($tab_com = mysql_query ($add_com,$base))
Verifie si tes paramètres $add_nom et $base sont bons.
Ou bien essayes ça...
while ($res_com = mysql_fetch_array($tab_com))
{
$num_com = $res_com[0];
}
Peut être que je me trompe, je ne suis pas expert en MySQL, mais en tout cas c'est comme ça que j'aurais procedé. |
|
|
|
|
oceane751
Forumeur fréquent
Sexe:
Messages: 93
|
Posté le:
Ven 30 Déc 2005 - 01:20 |
|
en faite, ma requete est un INSERT et le mysql_fetch_array n'est pas adapter à ce type de requete...
donc en faite, il faut utiliser un mysql_affected_rows
mais quand je l'insert dans mon code ça me met une erreur, jamais vue..
la voici :
Warning: mysql_affected_rows(): supplied argument is not a valid MySQL-Link resource in
et voici mon code, si quelqu'un pourrait m'aider...
Code: |
<?
...
"<b>".$date = date("Y/m/d ");
"<b>".$date2 = date("d/m/Y H:i:s");
echo"<br>".$date2."<br>";
echo"<h1 align=\"center\"><font size=+6><font color=\"#000068\"><font bgcolor = #808080><font face = papyrus><u>Récapitulatif de votre commande:</u></font size></font color></h1>
<br>
<table border = 8 align = center>
<tr>
<td colspan = 5 align = center>
</td>
</tr>
<tr>
<td ><b><center><font size = +1>Reference</b></td></center>
<td ><b><center><font size = +1>Article</b></td></center>
<td><b><center>Prix Unitaire<br> (en €)</b></td></center>
<td><b>Quantité</b></td></center>
<td><p align='right'><b>Montant<br> (en €)</b></td>
</tr>";
aff_panier();
echo"<tr><td></td><td><td><td><b>TOTAL </b></td><td align = 'right'><b>".$_SESSION['total']."</b></td></tr>";
$add_com = " INSERT INTO commande(num_com, date_com) VALUES ( '', '".$date."' )";
if ($base=mysql_connect (SERVEUR,log,password))
{
echo "<h1><u><center></u></h1></center><br>";
}
else
{
echo "<H3>Echec de la connexion au serveur</h3>";
exit;
}
mysql_select_db(BASE,$base);
for ($i=0;$i<20;$i++)
{
$tab_passer[]="";
$tab_conserner[]="";
$tab_acheter[]="";
$tab_livraison[]="";
$tab_ligne_livr[]="";
$requetes = array ("passer" => $tab_passer, "conserner" => $tab_conserner, "acheter" => $tab_acheter, "livraison" => $tab_livraison, "ligne_livr" => $tab_ligne_livr);
}
if ($tab_com = mysql_query ($add_com,$base))
{
$res_com = mysql_fetch_array($tab_com);
$num_com = $res_com[0];
$quantite = $_SESSION['panier']['quantite'];
echo $res_com;
echo "<h3><B><b><center><font face = papyrus>Votre commande a bien été prise en compte</B><br><br>Le paiement s'effectuera au moment de la livraison<br>
le delais est de 48h
</center>";
}
else
{
echo "Erreur dans l'éxecution de la requete derniere_comm<br>";
echo "Erreur".mysql_error().":".mysql_error()."<br>";
}
for ($i = 0; $i < 20 ; $i++)
{
if ($_SESSION['panier']['quantite'][$i] >0)
{
$requetes['passer'][$i] = "INSERT INTO passer(num_com, num_cli) VALUES ('', '".$_SESSION['num_cli']."')";
$requetes['conserner'][$i] = "INSERT INTO conserner (num_com, ref_produit, quantite) VALUES ( '','".$_SESSION['panier']['ref_produit'][$i]."', '".$_SESSION['panier']['quantite'][$i]."');";
$requetes['acheter'][$i] = "INSERT INTO acheter (num_cli, ref_produit, designation_produit, quantite, total) VALUES ('".$_SESSION['num_cli']."', '".$_SESSION['panier']['ref_produit'][$i]."', '".$_SESSION['article']."', '".$_SESSION['panier']['quantite'][$i]."','".$_SESSION['total']."');";
$requetes['livraison'][$i] = "INSERT INTO livraison (num_livr, date_livr, etat_livr) VALUES ('','aucun', 'encours de traitement')";
$requetes['ligne_livr'][$i] = "INSERT INTO ligne_livr (num_com, num_livr) VALUES ('', '')";
}
}
for ($i = 0; $i < 20 ; $i++)
{
if ($requetes['conserner'][$i] != "")
{
if (mysql_query ($requetes['conserner'][$i],$base))
{
//echo "<h3>Conserner n°".$i." Ajoute</h3>";
}
else
{
echo "Erreur dans l'éxecution de la requete add_conserner<br>";
echo "Erreur".mysql_error().":".mysql_error()."<br>";
}
}
echo "<br>Passer = ".$requetes['passer'][1]."<br>";
if ($requetes['passer'][$i] != "")
{
if (mysql_query ($requetes['passer'][$i],$base))
{
//echo "<h3>Passer Ajoute n°".$i."</h3>";
}
else
{
echo "Erreur dans l'éxecution de la requete add_passer<br>";
echo "Erreur".mysql_error().":".mysql_error()."<br>";
}
}
echo"<br>acheter = ".$requetes['acheter'][$i]."<br>";
if ($requetes['acheter'][$i] != "")
{
if (mysql_query ($requetes['acheter'][$i],$base))
{
//echo "<h3>Acheter n°".$i." Ajoute</h3>";
}
else
{
echo "Erreur dans l'éxecution de la requete add_acheter<br>";
echo "Erreur".mysql_error().":".mysql_error()."<br>";
}
}
echo"<br>livraison = ".$requetes['livraison'][$i]."<br>";
if ($requetes['livraison'][$i] != "")
{
if (mysql_query ($requetes['livraison'][$i],$base))
{
//echo "<h3>Livraison n°".$i." Ajoute</h3>";
}
else
{
echo "Erreur dans l'éxecution de la requete add_livraison<br>";
echo "Erreur".mysql_error().":".mysql_error()."<br>";
}
}
echo"<br>ligne_livr = ".$requetes['ligne_livr'][$i]."<br>";
if ($requetes['ligne_livr'][$i] != "")
{
if (mysql_query ($requetes['ligne_livr'][$i],$base))
{
//echo "<h3>Livraison n°".$i." Ajoute</h3>";
}
else
{
echo "Erreur dans l'éxecution de la requete add_ligne_livr<br>";
echo "Erreur".mysql_error().":".mysql_error()."<br>";
}
}
session_destroy(); //la commande est terminee on detruit la session
session_unset();
//et on efface toutes les variables pour eviter les bug
echo"<body bgcolor=#ccffff>";
echo"<font size = -1><i><a href = 'destruction.php'>Fermer la session</a></i></font>";
echo"votre numero de commande est le : ".$num_com.";";
?>
|
merci beaucoup.. |
|
|
|
|
Ninidc
Newbiiiie
Sexe:
Messages: 12
Localisation: Noisy-le-sec (93)
|
Posté le:
Ven 30 Déc 2005 - 17:06 |
|
Ahhh avec le code on comprends quand même mieux !
Bon sinon, est ce que tu as testé ta commande:
INSERT INTO commande(num_com, date_com) VALUES ( '', '".$date."' )";
Directement dans les requetes sql ?
Pour l'erreur envoyé par mysql_affected_rows() =>
http://www.nexen.net/docs/php/annotee/function.mysql-affected-rows.php
Si ça peut t'aider
Mais je crois que toi tu n'as aucun parametre a mettre, essais sans aucun paramètre dans la commande. |
|
|
|
|
oceane751
Forumeur fréquent
Sexe:
Messages: 93
|
Posté le:
Sam 31 Déc 2005 - 00:10 |
|
merci
j'avais dejà regardé cette doc, et elle est vraiment bien!
en faite j'avais mis le "$tab_com" en paramètre c'est pour ça que j'avais une eerreur!
merci beaucoup pour ton aide |
|
|
|
|
oceane751
Forumeur fréquent
Sexe:
Messages: 93
|
Posté le:
Sam 31 Déc 2005 - 00:15 |
|
bon maintenant j'ai mon $num_com qui en passe plus à la fin..
Code: |
session_destroy(); //la commande est terminee on detruit la session
session_unset();
echo"<body bgcolor=#ccffff>";
echo"<font size = -1><i><a href = 'destruction.php'>Fermer la session</a></i></font>";
echo"votre numero de commande est le : ".$num_com.";";
|
dans le echo...
on règle un pb pour en retrouver un autre... |
|
|
|
|
Ninidc
Newbiiiie
Sexe:
Messages: 12
Localisation: Noisy-le-sec (93)
|
Posté le:
Sam 31 Déc 2005 - 01:29 |
|
Mais dis moi, t'aurais pas un petit parse error ?
car :
echo"votre numero de commande est le : ".$num_com.";";
Moi j'aurais mis => echo 'votre numero de commande est le : '.$num_com;
Juste pour savoir, t'es en quelle année?
Car je suis en 1ere année (en alternance) mais on ne fait rien de rien !!
Heureusement que je fais du mySQL/PHP au travail. |
|
|
|
|
oceane751
Forumeur fréquent
Sexe:
Messages: 93
|
Posté le:
Sam 31 Déc 2005 - 02:47 |
|
ça marche as
ça me saoule car ça ne marche toujours pas...
j'ai mis apres ça :
Code: |
if ($tab_com = mysql_query($add_com,$base))
{
$res_com = mysql_affected_rows();
$num_com = $res_com[0];
echo "numero de commande <br>";
echo $num_com;
echo "<h3><B><b><center><font face = papyrus>Votre commande a bien été prise en compte</B><br><br>Le paiement s'effectuera au moment de la livraison<br>
le delais est de 48h
</center>";
}
else
{
echo "Erreur dans l'éxecution de la requete add_comm<br>";
echo "Erreur".mysql_error().":".mysql_error()."<br>";
}
|
une autre requete :
Code: |
$requetes['ligne_livr'][$i] = "INSERT INTO ligne_livr (num_com, num_livr) VALUES ('".$num_com."', '')";
|
et à la fin :
Code: |
echo"votre numero de commande est le : '".$num_com."';";
|
de plus, dans ma base de données, la table lign_livr est :
num_livr (en auto_increment)
num_com
le num_livr est bien enregistrée mais pas le num_com (car pas en autoincrement)
c'est l'association des tables livraison et commande
je pense que c'est à cause de ça que ça ne marche pas, je ne sais plus quoi faire |
|
|
|
|
Genzo
Modérateur
Sexe:
Messages: 1706
Localisation: Sartrouville (78)
|
Posté le:
Sam 31 Déc 2005 - 11:49 |
|
Ninidc a écrit: |
echo"votre numero de commande est le : ".$num_com.";"; |
Je ne vois pas où est l'erreur
oceane751 :
As-tu pensé de tester l'affichage de $num_com juste avant session_unset() ? ? |
_________________ N'oubliez pas de mettre un avis sur votre lycée/centre de formation !!! Pensez aux futurs BTSiens. Merci |
|
|
|
Ninidc
Newbiiiie
Sexe:
Messages: 12
Localisation: Noisy-le-sec (93)
|
Posté le:
Sam 31 Déc 2005 - 15:46 |
|
Citation: |
echo"votre numero de commande est le : ".$num_com.";"; |
C'est vrai je me suis trompé, j'ai testé et ça marche, j'avais pas réflechis.
Mais Océane, t'as pas un message d'erreur à nous donner? |
|
|
|
|
mrmabo
Accro à Web-IG
Sexe:
Messages: 226
Localisation: Amiens
|
Posté le:
Sam 31 Déc 2005 - 18:05 |
|
$num_com est = a quoi ?
tu fais une insertion et tu veux recuperer la clef primaire ?
si tel est le cas reporte toi a la solution que je propose ! 2éme post du sujet |
|
|
|
|
Genzo
Modérateur
Sexe:
Messages: 1706
Localisation: Sartrouville (78)
|
Posté le:
Sam 31 Déc 2005 - 18:15 |
|
Citation: |
$res_com = mysql_affected_rows();
$num_com = $res_com[0]; |
Je sais pas trop ce que ça peut rammener ça |
_________________ N'oubliez pas de mettre un avis sur votre lycée/centre de formation !!! Pensez aux futurs BTSiens. Merci |
|
|
|
mrmabo
Accro à Web-IG
Sexe:
Messages: 226
Localisation: Amiens
|
Posté le:
Sam 31 Déc 2005 - 20:39 |
|
mysql_affected_rows() retourne le nombre de lignes affectées lors de la dernière requête INSERT, UPDATE ou DELETE sur le serveur associé à l'identifiant de connexion. Si cet identifiant n'est pas précisé, mysql_affected_rows() utilise la dernière connexion ouverte.
pas grand chose dans ce cas
une bonne doc php ici :
http://www.php.net/download-docs.php
le chm est nickel tjrs pret a l'emploi |
|
|
|
|
Genzo
Modérateur
Sexe:
Messages: 1706
Localisation: Sartrouville (78)
|
Posté le:
Sam 31 Déc 2005 - 20:47 |
|
Ah celui là ça fait un moment que je l'ai en CHM ^^
D'ailleurs il y a une mise à jour récente. |
_________________ N'oubliez pas de mettre un avis sur votre lycée/centre de formation !!! Pensez aux futurs BTSiens. Merci |
|
|
|
|