Pb de variable

Signaler
Messages postés
151
Date d'inscription
jeudi 23 décembre 2004
Statut
Membre
Dernière intervention
20 décembre 2012
-
  -
bonjour a tous!!


voila je suis en train de creer une boutique en ligne avec php et une base de données
j'utilise easy php 1.7


je rencontre certaines difficultés à comprendre certaines erreurs


VOICI MON CODE :


<?php
//if (!session_id())
session_start();
session_register ('num_cli');
include ("definitioninfo.php");
include ("aff_panier.inc.php");
//print_r($_SESSION);



//echo "num client = ".$num_cli."";
//echo "
num client = ".$_SESSION['num_cli']; //ligne de debug a supprimer en version finale
echo "
ref produit = ".$_SESSION['ref_produit'];
echo "
quantite = ".$_SESSION['quantite'];


"".$date = date("D-m-y H:i:s");
echo "
".$date."
";


$add_com = "INSERT INTO commande VALUES ('', '".$date."');";$derniere_com "SELECT MAX(num_com) FROM commande WHERE date_com '".$date."';"; //recupere le numero de la derniere commande enregistree





if ($base=mysql_connect (SERVEUR,log,password))
{
echo "Merci de votre achat dans notre boutique.

";
}
else
{
echo "Echec de la connexion au serveur
";
exit;
}
mysql_select_db(BASE,$base);
//-----------------------------------------------------------------------
echo "panier
";
//print_r ($_SESSION['panier']); //pour verifier que cela marche
echo "
ref_produit
";
//print_r ($_SESSION['panier']['ref_produit']);
echo "
quantite
";
//print_r ($_SESSION['panier']['quantite']);


$requetes = array (
"passer" => array ("", "", "", "", "", "", "" ),
"conserner" => array ("", "", "", "", "", "", "")
);


print_r($requetes);
if (mysql_query ($add_com,$base))
{
echo " Votre commande est enregistrée

Veuillez envoyer le réglement en espéce ou par chèque bancaire
à :
materiel-informatique
70000 blabla
";
}
else
{
echo "Erreur dans l'éxecution de la requete add_commande
";
echo "Erreur".mysql_error().":".mysql_error()."
";
}


if ($tab_com = mysql_query ($derniere_com,$base))
{
echo "Date trouvee
";


$res_com = mysql_fetch_array($tab_com);
$num_com = $res_com[0];
$_SESSION['num_cli'] = $res_com[0]; //$res_com[1];
$add_passer = "INSERT INTO passer VALUES ('".$num_com."', '".$_SESSION['num_cli']."')"; //fais le lien entre le client et la commande grace a la table PASSER
$add_conserner = "INSERT INTO conserner VALUES ( '".$num_com."','".$_SESSION['panier']['ref_produit']."', '".$_SESSION['panier']['quantite']."')"; //idem entre le produit et la commande
}
else
{
echo "Erreur dans l'éxecution de la requete derniere_comm
";
echo "Erreur".mysql_error().":".mysql_error()."
";
}


for ($i = 1; $i <= 23 ; $i++)
{
if ($_SESSION['panier']['quantite'][$i] >0)
{
$requetes['passer'][$i] = "INSERT INTO passer(num_com, num_cli) VALUES ('".$num_com."', '".$_SESSION['num_cli']."')";
$requetes['conserner'][$i] = "INSERT INTO conserner(num_com, ref_produit, quantité) VALUES ( '".$num_com."','".$_SESSION['panier']['ref_produit'][$i]."', '".$_SESSION['panier']['quantite'][$i]."');";
}
}
//print_r ($requetes['passer']);


echo "
Passer = ".$requetes['passer'][1]."
";
if (mysql_query ($requetes['passer'][1],$base))
{
echo "Passer Ajoute
";
}
else
{
echo "Erreur dans l'éxecution de la requete add_passer
";
echo "Erreur".mysql_error().":".mysql_error()."
";
}


for ($i = 1; $i <= 6 ; $i++)
{
echo $requetes['passer'][$i]."
";
echo $requetes['conserner'][$i]."
";


if ($requetes['conserner'][$i] != "")
{
if (mysql_query ($requetes['conserner'][$i],$base))
{
echo "Conserner n°".$i." Ajoute
";
}
else
{
echo "Erreur dans l'éxecution de la requete add_conserner
";
echo "Erreur".mysql_error().":".mysql_error()."
";
}
}
}



echo "Votre numero de commande est le : ".$num_com."
";
echo "Le total de votre commande est de ".$_SESSION['prix']*$_SESSION['quantite']."€
";


session_destroy(); //la commande est terminee on detruit la session
session_unset();
//et on efface toutes les variables pour eviter les bug
echo"";
echo"<form method ='POST' action='http://127.0.0.1/Laetitia/PTI1/Htm/page1.php'></form>";
?>





PUIS VOICI LES ERREURS :


Notice: Undefined offset: 7 in c:\program files\easyphp1-7\www\oceanecoin\boutiqueinfo\commande_enreginfo.php on line 76


Notice: Undefined offset: 8 in c:\program files\easyphp1-7\www\oceanecoin\boutiqueinfo\commande_enreginfo.php on line 76


Notice: Undefined offset: 9 in c:\program files\easyphp1-7\www\oceanecoin\boutiqueinfo\commande_enreginfo.php on line 76


Notice: Undefined offset: 10 in c:\program files\easyphp1-7\www\oceanecoin\boutiqueinfo\commande_enreginfo.php on line 76


Notice: Undefined offset: 11 in c:\program files\easyphp1-7\www\oceanecoin\boutiqueinfo\commande_enreginfo.php on line 76


Notice: Undefined offset: 12 in c:\program files\easyphp1-7\www\oceanecoin\boutiqueinfo\commande_enreginfo.php on line 76


Notice: Undefined offset: 13 in c:\program files\easyphp1-7\www\oceanecoin\boutiqueinfo\commande_enreginfo.php on line 76


Notice: Undefined offset: 14 in c:\program files\easyphp1-7\www\oceanecoin\boutiqueinfo\commande_enreginfo.php on line 76


Notice: Undefined offset: 15 in c:\program files\easyphp1-7\www\oceanecoin\boutiqueinfo\commande_enreginfo.php on line 76


Notice: Undefined offset: 16 in c:\program files\easyphp1-7\www\oceanecoin\boutiqueinfo\commande_enreginfo.php on line 76


Notice: Undefined offset: 17 in c:\program files\easyphp1-7\www\oceanecoin\boutiqueinfo\commande_enreginfo.php on line 76


Notice: Undefined offset: 18 in c:\program files\easyphp1-7\www\oceanecoin\boutiqueinfo\commande_enreginfo.php on line 76


Notice: Undefined offset: 19 in c:\program files\easyphp1-7\www\oceanecoin\boutiqueinfo\commande_enreginfo.php on line 76


Notice: Undefined offset: 20 in c:\program files\easyphp1-7\www\oceanecoin\boutiqueinfo\commande_enreginfo.php on line 76


Notice: Undefined offset: 21 in c:\program files\easyphp1-7\www\oceanecoin\boutiqueinfo\commande_enreginfo.php on line 76


Notice: Undefined offset: 22 in c:\program files\easyphp1-7\www\oceanecoin\boutiqueinfo\commande_enreginfo.php on line 76


Notice: Undefined offset: 23 in c:\program files\easyphp1-7\www\oceanecoin\boutiqueinfo\commande_enreginfo.php on line 76


Passer = INSERT INTO passer(num_com, num_cli) VALUES ('68', '68')


Passer Ajoute
INSERT INTO passer(num_com, num_cli) VALUES ('68', '68')
INSERT INTO conserner(num_com, ref_produit, quantité) VALUES ( '68','1', '1');


Conserner n°1 Ajoute



je tenais a rajouter que je n'arrive pas à faire apparaitre le num-cli (numero du client, present donc dans la table "client" et dans la table "passer")


voilà donc si quelqu'un pourrais m'aider
de plus c'est assez urgent


je vous en remercie d'avance

17 réponses

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut,





quel beau code, condenses un peu stp...



Ensuite les undefined offset c'est quand un indice dans ton tableau n'est pas défini.



Par exemple $tableau['machin']



l'indice 'machin' n'existe pas

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
116
Date d'inscription
samedi 19 juin 2004
Statut
Membre
Dernière intervention
20 août 2005

for ($i = 1; $i <= 23 ; $i++)

{

if ($_SESSION['panier']['quantite'][$i] >0)

{

$requetes['passer'][$i] = "INSERT INTO passer(num_com, num_cli) VALUES ('".$num_com."', '".$_SESSION['num_cli']."')";

$requetes['conserner'][$i] = "INSERT INTO conserner(num_com,
ref_produit, quantité) VALUES (
'".$num_com."','".$_SESSION['panier']['ref_produit'][$i]."',
'".$_SESSION['panier']['quantite'][$i]."');";

}

}



Ton pb vient de là. Essaye avec ça :



for ($i = 0; $i <= 23 ; $i++)

{

if ($_SESSION['panier']['quantite'][$i] >0)

{

$requetes['passer'][$i] = "INSERT INTO passer(num_com, num_cli) VALUES ('".$num_com."', '".$_SESSION['num_cli']."')";

$requetes['conserner'][$i] = "INSERT INTO conserner(num_com,
ref_produit, quantité) VALUES (
'".$num_com."','".$_SESSION['panier']['ref_produit'][$i]."',
'".$_SESSION['panier']['quantite'][$i]."');";

}

}



Pour la petite explication, "explorer" des chaînes de caractère, ça
fonctionne comme les tableaux, on commence par 1 et non par 0.
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
les tableaux on commence par 0


<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
116
Date d'inscription
samedi 19 juin 2004
Statut
Membre
Dernière intervention
20 août 2005

"ça
fonctionne comme les tableaux, on commence par 1 et non par 0."
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Ok, ta phrase admet deux sens possibles. Soyons plus clairs : les tableaux commencent avec l'indice 0



Après la seconde boucle for que tu as faite commence elle aussi avec l'indice 0

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
116
Date d'inscription
samedi 19 juin 2004
Statut
Membre
Dernière intervention
20 août 2005

Si on joue sur les mots...
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Pour moi, les chaines, c'est comme les tableaux, ca commence a 0...
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Bah oui...

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
116
Date d'inscription
samedi 19 juin 2004
Statut
Membre
Dernière intervention
20 août 2005

C'est bien ce que l'on a dit :p (même si personellement j'ai quelques problèmes d'expression :))
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
"c'est bien ce que l'on a dit" =>

"on commence par 1 et non par 0"


Heu...
<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
116
Date d'inscription
samedi 19 juin 2004
Statut
Membre
Dernière intervention
20 août 2005

"même si personellement j'ai quelques problèmes d'expression"

Je me suis planté :p
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Hello,

il a un undefined offset pour des valeurs de 7 a 23.
Il s'est pas plutot plante dans ses boucles ? Il y a une boucle qui finit a 6, une a 23...il n'y aurait pas inversion ?
Parce que, si ta correction est justifiee o0leo0o, je ne pense pas qu'elle corrige le probleme d'offset non defini entre 7 et 23.
Messages postés
116
Date d'inscription
samedi 19 juin 2004
Statut
Membre
Dernière intervention
20 août 2005

Si on suit la logique, si :)

Mais bon, il faut attendre sa réponse.
Messages postés
151
Date d'inscription
jeudi 23 décembre 2004
Statut
Membre
Dernière intervention
20 décembre 2012

bonsoir!!
vous m'avez mise sur la piste et maintenant cela marche

je vous mets le code :


Messages postés
116
Date d'inscription
samedi 19 juin 2004
Statut
Membre
Dernière intervention
20 août 2005

De rien :p