IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

erreur undefined offset [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    aprendre le php, sql,et javascript
    Inscrit en
    Mai 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : aprendre le php, sql,et javascript
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2011
    Messages : 31
    Points : 21
    Points
    21
    Par défaut erreur undefined offset
    bonjour,
    je viens de modifier mon code pour passer en PDO

    et j'ai une erreur :


    Notice: Undefined offset: 252 in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\newaser\administrateur\new_edit_dev.php on line 104

    Notice: Undefined offset: 252 in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\newaser\administrateur\new_edit_dev.php on line 109
    avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    $resultat = Bdd::connectBdd()->prepare('SELECT * FROM equi_sol_types ORDER BY id_equi_sol_types');
    			$resultat -> execute();
    			while($donnee = $resultat->fetch(PDO::FETCH_OBJ))
    			{	
    				echo '<tr><td colspan=4><h2>'.$donnee->nom_equi_sol_types.'</h2></td></tr>';
     
    				$resultat2 = Bdd::connectBdd()->prepare('SELECT * FROM equi_sol WHERE type_equi_sol='.$donnee->id_equi_sol_types.'');
    				$resultat2 -> execute();
    				$count=0;
    				while($donnee2 = $resultat2->fetch(PDO::FETCH_OBJ))
    					{
    						if($count%2==1)
    						{	$color='bgcolor=#e9e8e8';	}
    						else
    						{	$color="";			}
     
    					echo '<tr>
    					<td class=equi '.$color.'>'.$donnee2->nom_equi_sol.'</td>
    					<td '.$color.' align=center>'.$donnee2->unité_equi_sol.'</td>
    					<td $color align=center>'.$donnee2->prix_equi_sol.'</td>';
    					$id=$donnee2->id_equi_sol;
    	/*ligne 104*/		if($tva_pos[$id]==2)
    						{	$tva_sel="selected";	}
    					else
    						{	$tva_sel="";	}
     
    	/*ligne 109*/		if($quant[$id])
    						{	
    						$quant_form='value='.$quant[$id];
    						}
    					echo '<td '.$color.' align=center><input name=qte_'.$donnee2->id_equi_sol.' size=4 '.$quant_form.'></td><td>
    						<SELECT name=tva_'.$donnee2->id_equi_sol.'>
    							<OPTION VALUE=1 '.$tva_sel.'>10%</option>
    							<option value=2 '.$tva_sel.'>20%</option>
    						</SELECT></td></tr>';
    					$count++;
    					$quant_form="";
    					}
    merci de votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Déjà tu n'as pas compris comment fonctionnait les requêtes préparées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $sth = Bdd::connectBdd()->prepare('SELECT * FROM equi_sol WHERE type_equi_sol= :type_equi_sol');
     
    $resultat = Bdd::connectBdd()->query('SELECT * FROM equi_sol_types ORDER BY id_equi_sol_types');
    			while($donnee = $resultat->fetch(PDO::FETCH_OBJ))
    			{	
    				echo '<tr><td colspan=4><h2>'.$donnee->nom_equi_sol_types.'</h2></td></tr>';
     
    				$sth->execute(array(':type_equi_sol'=>$donnee->id_equi_sol_types));
     
    			        while($donnee = $sth->fetch(PDO::FETCH_OBJ))
    			             {
    Pour l'erreur, cela signifie que ni le tableau $tva_pos ni le tableau $qant ne contiennent l'id 252.
    Il faudrait voir comment ils sont créés.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Homme Profil pro
    aprendre le php, sql,et javascript
    Inscrit en
    Mai 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : aprendre le php, sql,et javascript
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2011
    Messages : 31
    Points : 21
    Points
    21
    Par défaut
    merci pour la correction "requête prépare"

    pour mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id=$donnee2->id_equi_sol
    si je regarde dans la bdd :

    SELECT * FROM `equi_sol` WHERE `id_equi_sol`=252
    la requete me retourne bien ce que je souhaite



    ajout oublier :

    plus haut dans le code j'ai ce que vaut $quant et $tva_pos :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $resultat = Bdd::connectBdd()->prepare('SELECT * FROM equi_devis WHERE equi_num_devis='.$_POST['devis_num'].' AND equi_sub_devis='.$_POST['devis_sub_num'].'');
    		$resultat -> execute();
    		while($donnee = $resultat->fetch(PDO::FETCH_OBJ))
    		{
    			//echo "$donnee->id_equi_devis $donnee->quant_devis";
    			$quant[$donnee->id_equi_devis]=$donnee->quant_devis;
    			$tva_pos[$donnee->id_equi_devis]=$donnee->tva_devis;
    		}

  4. #4
    Membre à l'essai
    Homme Profil pro
    aprendre le php, sql,et javascript
    Inscrit en
    Mai 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : aprendre le php, sql,et javascript
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2011
    Messages : 31
    Points : 21
    Points
    21
    Par défaut
    la page actuelle est pour modifier le formulaire

    j'ai compris "je pense" c'est par ce que j'ai 0 dans ces données
    car la ligne ou j'ai une valeur
    marche correctement

    :

    Nom : erreur.jpg
Affichages : 86
Taille : 103,0 Ko


    et je ne c'est pas comment faire pour :
    si il n'y a rien

  5. #5
    Membre à l'essai
    Homme Profil pro
    aprendre le php, sql,et javascript
    Inscrit en
    Mai 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : aprendre le php, sql,et javascript
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2011
    Messages : 31
    Points : 21
    Points
    21
    Par défaut
    problème resolu il suffisait de modifier :

    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($tva_pos[$id])&&($tva_pos[$id]==2))
    et
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($quant[$id]))

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.3] Message d'erreur Undefined offset 1
    Par dreamerforever dans le forum Langage
    Réponses: 1
    Dernier message: 24/02/2011, 11h26
  2. Erreur Undefined offset dans un tableau
    Par pasc06 dans le forum Langage
    Réponses: 26
    Dernier message: 26/11/2008, 16h04
  3. Réponses: 2
    Dernier message: 05/05/2008, 22h19
  4. Réponses: 1
    Dernier message: 28/01/2008, 16h33
  5. erreur Undefined offset
    Par wbagg2 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 01/12/2005, 14h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo