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 offset parcour tableau [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé Avatar de Shivas
    Inscrit en
    Juin 2004
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 126
    Par défaut erreur offset parcour tableau
    bonjour

    je n'arrive pas a afficher tous les resultats de ma table sql quelqu'un peut il me dire ou se trouve l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $nbr =$nbrecette['nbr'];
     
    for ($i=0 ; $i < $nbr ; $i++)
    {
    while (var=mysql_fetch_assoc($result)
    {
    $recette[$i]=$var['nom'];
    }
    echo $recette[$i];
    }
    ce code me retourne qu'un enregistrement puis sur la seconde ligne il me signal undefined offset 1





    [/CODE]

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    Je te conseil d'utiliser plutot mysql_fetch_array()

    ce qui donnerai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while (var=mysql_fetch_array($result))
    {
    $recette[$i]=$var['nom'];
    }

  3. #3
    Membre confirmé Avatar de Shivas
    Inscrit en
    Juin 2004
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 126
    Par défaut
    merci pour l'info pourquoi il me marque cette erreur
    undefined offset 1

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    mysql_fetch_assoc te renvoie la ligne et remet le pointeur au debut des résultats renvoyés.

    Par contre je sais pas ce que doit faire ton code mais la ton recette i va systèmatiquement prendre la même valeur, celle de la dernière ligne de ce que te renverra ta requete SQL.

  5. #5
    Membre confirmé Avatar de Shivas
    Inscrit en
    Juin 2004
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 126
    Par défaut
    je souhaite afficher tous champs d'une table comment faire pour que le pointeur selectionne tte les lignes

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    Si tu veux afficher tous les lignes de ta table il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while (var=mysql_fetch_array($result))
    {
      echo '<br/>'.$var['nom'];
    }

  7. #7
    Membre confirmé Avatar de Shivas
    Inscrit en
    Juin 2004
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 126
    Par défaut
    j'ai le meme message d'erreur avec array

  8. #8
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    Vérifie que dans ta table tu as un bien un champ qui s'appel 'nom'.

  9. #9
    Membre confirmé Avatar de Shivas
    Inscrit en
    Juin 2004
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 126
    Par défaut
    oui j'ai bien un champ nom dans mon tableau il m'affiche sur mon tableau la dernier ligne de ma table et sur la seconde ligne undefined offset 1

  10. #10
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    Et qu'elle est ton code maintenant? Il faudrait que l'on puisse voir le reste du code.

  11. #11
    Membre confirmé Avatar de Shivas
    Inscrit en
    Juin 2004
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 126
    Par défaut
    Voici le code complet

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
     
    $id = $_SESSION["membre_id"];
     
    $req = "SELECT recette.Nom, recette.Type, categorie.Categorie FROM recette, espace_utilisateur, categorie WHERE espace_utilisateur.id = '$id'
     
     And espace_utilisateur.IdRecette = recette.IdRecette AND categorie.Id= recette.Categorie"; 
     
    $result = mysql_query($req) or die('Erreur SQL !<br>'.$req.'<br>'.mysql_error()); 
     
    $count = mysql_query("SELECT COUNT(recette.Nom) As nbr FROM recette, espace_utilisateur WHERE espace_utilisateur.id = '$id'
     
    ******* ******* ******* ******* ******* ******* And espace_utilisateur.IdRecette = recette.IdRecette"); 
    $nbRecette = mysql_fetch_assoc($count); 
    $nbr = $nbRecette['nbr'];
     
    $i=0; 
    ******* ******* while ($var = mysql_fetch_array($result)){ 
    ******* ******* 
    ******* ******* ******* $recette[$i] = $var['Nom']; 
    ******* ******* 
    ******* ******* ******* 
    ******* ******* 
    ******* ******* ******* $nomtype[$i] = $var['Type']; 
    ******* ******* ******* 
    ******* ******* ******* $nomcat[$i] = $var['Categorie'];} 
    ******* *******
     
    ******* ******* ******* 
    ******* ******* if ($nbr <= 0) 
    ******* ******* echo "<tr><td>Votre panier est vide </ td></tr>"; 
    ******* ******* else 
    ******* ******* { 
    ******* ******* 
    ******* ******* ******* for ($i=0 ;$i < $nbr ; $i++) 
    ******* ******* ******* { 
    ******* ******* 
    ******* ******* ******* echo $recette[$i];***** ******* ******* ******* ******* 
    ******* ******* ******* 
    ******* ******* ******* 
    ******* ******* ******* 
    ******* ******* ******* ?> 
    ******* ******* ******* 
    ******* ******* ******* ******* <tr style="" class=""> 
    ******* ******* ******* ******* ******* <td> 
    ******* ******* ******* ******* ******* ******* <?php echo $recette[$i];?> 
    ******* ******* ******* ******* ******* </td> 
    ******* ******* ******* ******* ******* <td align="center"> 
    ******* ******* ******* ******* ******* ******* <?php echo $nomtype[$i];?> 
    ******* ******* ******* ******* ******* </td> 
    ******* ******* ******* ******* ******* <td align="center"><?php 
    ******* ******* ******* ******* ******* ******* if ($nomcat[$i] == NULL) 
    ******* ******* ******* ******* ******* ******* { 
    ******* ******* ******* ******* ******* ******* ******* echo "NA"; 
    ******* ******* ******* ******* ******* ******* } 
    ******* ******* ******* ******* ******* ******* echo $nomcat[$i];?> 
    ******* ******* ******* ******* ******* </td> 
    ******* ******* ******* ******* ******* <td align="center">10627.18</td> 
    ******* ******* ******* ******* </tr> 
    ******* ******* ******* <?php 
    ******* ******* ******* }

  12. #12
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    Et bien c'est normal qu'il te dise undefined offset 1.

    Dans ta boucle while ou tu affectes des valeurs a recette, tu n'incremente pas le i. Du coup tu ne fais que changer les valeurs de recette[0];

    Il faut que tu fasse comme sa dans ton while :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $i=0; 
     while ($var = mysql_fetch_array($result)){ 
     
    $recette[$i] = $var['Nom']; 
     
    $nomtype[$i] = $var['Type']; 
     $nomcat[$i] = $var['Categorie'];
    i++;
    }
    Comme sa cela devrait fonctionner.

  13. #13
    Membre confirmé Avatar de Shivas
    Inscrit en
    Juin 2004
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 126
    Par défaut
    c est pareil

  14. #14
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    ah?!

    Et combien de ligne contient ta table?
    Je vois plus trop la du coup, tu as bien remplacer ton while par sa ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $i=0; 
     while ($var = mysql_fetch_array($result)){ 
     
    $recette[$i] = $var['Nom']; 
     
    $nomtype[$i] = $var['Type']; 
     $nomcat[$i] = $var['Categorie'];
    $i+=1;
    }

  15. #15
    Membre confirmé Avatar de Shivas
    Inscrit en
    Juin 2004
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 126
    Par défaut
    desole ca fonctionne c'est l'incrementation qui me manquer merci pour ton aide

  16. #16
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    Ok, N'oublie pas de mettre le sujet comme résolu.

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

Discussions similaires

  1. erreur sur un tableau
    Par vince2005 dans le forum Langage
    Réponses: 2
    Dernier message: 06/10/2006, 08h09
  2. erreur création de tableau
    Par fabule dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 20/07/2006, 20h36
  3. [JSP]erreur dans parcours d'une table
    Par lcoder dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 06/07/2006, 09h52
  4. pb parcours tableau 2d
    Par baillador dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 15
    Dernier message: 30/03/2006, 16h20

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