Rechercher : dans
Par :

[php] pb undefined offset

Dernière réponse le 3 fév 2009 à 12:42:06 oceane751, le 25 mar 2005 à 20:12:46 
 Signaler ce message aux modérateurs

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 "<br>num client = ".$_SESSION['num_cli']; //ligne de debug a supprimer en version finale
echo "<br>ref produit = ".$_SESSION['ref_produit'];
echo "<br>quantite = ".$_SESSION['quantite'];

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

$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 "<h1><u>Merci de votre achat dans notre boutique.</u></h1><br>";
}
else
{
echo "<H3>Echec de la connexion au serveur</h3>";
exit;
}
mysql_select_db(BASE,$base);
//-----------------------------------------------------------------------
echo "panier<br>";
//print_r ($_SESSION['panier']); //pour verifier que cela marche
echo "<br>ref_produit<br>";
//print_r ($_SESSION['panier']['ref_produit']);
echo "<br>quantite<br>";
//print_r ($_SESSION['panier']['quantite']);

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

print_r($requetes);
if (mysql_query ($add_com,$base))
{
echo "<h3><B>Votre commande est enregistrée</B><br><br>Veuillez envoyer le réglement en espéce ou par chèque bancaire
à :</h3><h1>materiel-informatique<br>70000 blabla</h1>";
}
else
{
echo "Erreur dans l'éxecution de la requete add_commande<br>";
echo "Erreur".mysql_error().":".mysql_error()."<br>";
}

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

$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<br>";
echo "Erreur".mysql_error().":".mysql_error()."<br>";
}

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 "<br>Passer = ".$requetes['passer'][1]."<br>";
if (mysql_query ($requetes['passer'][1],$base))
{
echo "<h3>Passer Ajoute</h3>";
}
else
{
echo "Erreur dans l'éxecution de la requete add_passer<br>";
echo "Erreur".mysql_error().":".mysql_error()."<br>";
}

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

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 "<b><font size = 5 color = red>Votre numero de commande est le : ".$num_com."</font><br>";
echo "<b><font size = 5 color = blue>Le total de votre commande est de ".$_SESSION['prix']*$_SESSION['quantite']."€</font><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=#99ccff>";
echo"<form method ='POST' action='http://127.0.0.1/Laetitia/PTI1/Htm/page1.php'><input type='submit' value='retour au site'></a></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

Meilleures réponses pour « [php] pb undefined offset » dans :
[PHP] Notice: Undefined index: VoirSi vous utilisez les tableaux $_POST ou $_GET pour récupérer les variables de vos formulaires ou autres, il se peut que vous tombiez sur cette erreur: Notice: Undefined index 'champs du tableau' in 'chemin du fichier php en cours d'execution' on line...
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
Installation rapide de LAMP (Apache+MySql+php) sous Linux VoirLAMP = Linux+Apache+MySql+Php. C'est le serveur web par excellence. L'ensemble est facile à installer. Installation rapide sudo aptitude install apache2 php5 mysql-server php5-mysql libapache2-mod-php5 Le mot de passe administrateur mySQL...
Télécharger PHP Edit VoirPHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de fonctionnalités permettant de développer plus efficacement : Coloration syntaxique Auto-complétion des fonctions Débuggeur...
Télécharger PHP FTP Synchronizer VoirLa mise à jour de site web est aussi complexe que sa conception. Alors il faut utiliser le bon outil avec les bon paramètres et une bonne connaissance de programmation pour mettre à jour un site. PHP FTP Synchronizer est une application vous...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
PHP - Bases de données VoirPhp permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...

1

kilian, le 26 mar 2005 à 01:53:29

Ces fameux offset concernent apparemment $_SESSION['panier']['quantite'][$i] dans ta ligne 76.

Si j'en crois ton erreur, $_SESSION['panier']['quantite'][$i] existe tant que $i va de 1 à 6, après ce sont des champs inexistants de $_SESSION['panier']['quantite']

Ca devrait se régler en transformant

for ($i = 1; $i <= 23 ; $i++)
{
if ($_SESSION['panier']['quantite'][$i] >0)

par
for ($i = 1; $i <= 23 ; $i++)
{
if (isset($_SESSION['panier']['quantite'][$i]) && $_SESSION['panier']['quantite'][$i] >0)

Répondre à kilian

2

 kamala, le 3 fév 2009 à 12:42:06

ça ne marche pas comme ça, cet erreur signale ce qu'on appelle effet de bord.
Il faut mettre break si tu touve ce que tu cherche dans le tableau, ainsi ça évite qu'on aille regarder plus loin que la longueur du tableau.
exemple:

for($i=0;$data1[$i]!=false;$i++){
if($data1[$i]==$_GET['$vpays']){
$trpays=$data1[$i];
break;
}
}

Répondre à kamala
Collection CommentÇaMarche.net