Gérer le forum:  Aide  •  Rechercher  •  Liste des Membres  •  Groupes d'utilisateurs   •  S'enregistrer  •  Profil  •  Se connecter pour vérifier ses messages privés  •  Connexion 
 pepin avec un mysql_fetch_array() Voir le sujet suivant
Voir le sujet précédent
Poster un nouveau sujetRépondre au sujet
Auteur Message
oceane751
Forumeur fréquent
Forumeur fréquent


BTS IG - Option développeur 2ème année
Sexe: Sexe:Féminin
Messages: 93

MessagePosté le: Mer 28 Déc 2005 - 23:01 Répondre en citantRevenir en haut

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é... Confused
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!
Voir le profil de l'utilisateurEnvoyer un message privé

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
Accro à Web-IG


Post-BTS
Sexe: Sexe:Masculin
Messages: 226
Localisation: Amiens

MessagePosté le: Jeu 29 Déc 2005 - 11:44 Répondre en citantRevenir en haut

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 Very Happy
Voir le profil de l'utilisateurEnvoyer un message privé
Ninidc
Newbiiiie
Newbiiiie



Sexe: Sexe:Masculin
Messages: 12
Localisation: Noisy-le-sec (93)

MessagePosté le: Jeu 29 Déc 2005 - 16:24 Répondre en citantRevenir en haut

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é.
Voir le profil de l'utilisateurEnvoyer un message privéEnvoyer l'e-mailMSN Messenger
oceane751
Forumeur fréquent
Forumeur fréquent


BTS IG - Option développeur 2ème année
Sexe: Sexe:Féminin
Messages: 93

MessagePosté le: Ven 30 Déc 2005 - 01:20 Répondre en citantRevenir en haut

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..
Voir le profil de l'utilisateurEnvoyer un message privé
Ninidc
Newbiiiie
Newbiiiie



Sexe: Sexe:Masculin
Messages: 12
Localisation: Noisy-le-sec (93)

MessagePosté le: Ven 30 Déc 2005 - 17:06 Répondre en citantRevenir en haut

Ahhh avec le code on comprends quand même mieux ! Laughing

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 Rolling Eyes

Mais je crois que toi tu n'as aucun parametre a mettre, essais sans aucun paramètre dans la commande.
Voir le profil de l'utilisateurEnvoyer un message privéEnvoyer l'e-mailMSN Messenger
oceane751
Forumeur fréquent
Forumeur fréquent


BTS IG - Option développeur 2ème année
Sexe: Sexe:Féminin
Messages: 93

MessagePosté le: Sam 31 Déc 2005 - 00:10 Répondre en citantRevenir en haut

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 Laughing
Voir le profil de l'utilisateurEnvoyer un message privé
oceane751
Forumeur fréquent
Forumeur fréquent


BTS IG - Option développeur 2ème année
Sexe: Sexe:Féminin
Messages: 93

MessagePosté le: Sam 31 Déc 2005 - 00:15 Répondre en citantRevenir en haut

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... Sad
Voir le profil de l'utilisateurEnvoyer un message privé
Ninidc
Newbiiiie
Newbiiiie



Sexe: Sexe:Masculin
Messages: 12
Localisation: Noisy-le-sec (93)

MessagePosté le: Sam 31 Déc 2005 - 01:29 Répondre en citantRevenir en haut

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.
Voir le profil de l'utilisateurEnvoyer un message privéEnvoyer l'e-mailMSN Messenger
oceane751
Forumeur fréquent
Forumeur fréquent


BTS IG - Option développeur 2ème année
Sexe: Sexe:Féminin
Messages: 93

MessagePosté le: Sam 31 Déc 2005 - 02:47 Répondre en citantRevenir en haut

ç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
Voir le profil de l'utilisateurEnvoyer un message privé
Genzo
Modérateur
Modérateur


Post-BTS
Sexe: Sexe:Masculin
Messages: 1706
Localisation: Sartrouville (78)

MessagePosté le: Sam 31 Déc 2005 - 11:49 Répondre en citantRevenir en haut

Ninidc a écrit:
echo"votre numero de commande est le : ".$num_com.";";

Je ne vois pas où est l'erreur Smile


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 Wink
Voir le profil de l'utilisateurEnvoyer un message privéVisiter le site web du posteurMSN Messenger
Ninidc
Newbiiiie
Newbiiiie



Sexe: Sexe:Masculin
Messages: 12
Localisation: Noisy-le-sec (93)

MessagePosté le: Sam 31 Déc 2005 - 15:46 Répondre en citantRevenir en haut

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?
Voir le profil de l'utilisateurEnvoyer un message privéEnvoyer l'e-mailMSN Messenger
mrmabo
Accro à Web-IG
Accro à Web-IG


Post-BTS
Sexe: Sexe:Masculin
Messages: 226
Localisation: Amiens

MessagePosté le: Sam 31 Déc 2005 - 18:05 Répondre en citantRevenir en haut

$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
Voir le profil de l'utilisateurEnvoyer un message privé
Genzo
Modérateur
Modérateur


Post-BTS
Sexe: Sexe:Masculin
Messages: 1706
Localisation: Sartrouville (78)

MessagePosté le: Sam 31 Déc 2005 - 18:15 Répondre en citantRevenir en haut

Citation:
$res_com = mysql_affected_rows();
$num_com = $res_com[0];

Je sais pas trop ce que ça peut rammener ça Confused

_________________
N'oubliez pas de mettre un avis sur votre lycée/centre de formation !!! Pensez aux futurs BTSiens. Merci Wink
Voir le profil de l'utilisateurEnvoyer un message privéVisiter le site web du posteurMSN Messenger
mrmabo
Accro à Web-IG
Accro à Web-IG


Post-BTS
Sexe: Sexe:Masculin
Messages: 226
Localisation: Amiens

MessagePosté le: Sam 31 Déc 2005 - 20:39 Répondre en citantRevenir en haut

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 Smile
Voir le profil de l'utilisateurEnvoyer un message privé
Genzo
Modérateur
Modérateur


Post-BTS
Sexe: Sexe:Masculin
Messages: 1706
Localisation: Sartrouville (78)

MessagePosté le: Sam 31 Déc 2005 - 20:47 Répondre en citantRevenir en haut

mrmabo a écrit:
une bonne doc php ici :
http://www.php.net/download-docs.php

Ah celui là ça fait un moment que je l'ai en CHM ^^
D'ailleurs il y a une mise à jour récente. Smile

_________________
N'oubliez pas de mettre un avis sur votre lycée/centre de formation !!! Pensez aux futurs BTSiens. Merci Wink
Voir le profil de l'utilisateurEnvoyer un message privéVisiter le site web du posteurMSN Messenger
Montrer les messages depuis:      
Poster un nouveau sujetRépondre au sujet
 Sauter vers:   



Voir le sujet suivant
Voir le sujet précédent
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum