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

Langage PHP Discussion :

[Tableaux] problème entre la base de données et des tableaux


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 70
    Points : 55
    Points
    55
    Par défaut [Tableaux] problème entre la base de données et des tableaux
    salut tout le monde !
    j'ai un problème quand j'affiche mes données de ma base dans des tableaux
    en fait j'ai créer trois tableaux : un grand comprenant deux plus petits dans chaque petit tableau j'ai 27 lignes de ma base qui s'affichent (on rempli d'abord le premier petit tableau, puis le deuxième)
    je lui est di de me répéter le grand tableau avec les petits tant qu'il y avait des lignes dans ma base

    seulement voilà.....à chaque petit tableau il ne commence pas par les deux qui devraient se trouver tout en haut......en gros j'ai 533 lignes dans ma base pour 495 dans la totalité de mes tableaux....j'ai 19 petits tableaux....19*2=38=533-495

    est ce que quelqu'un a une idée d'où ça peut venir??

  2. #2
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    A mon avis il te manque un ; à la ligne 69.
    Non serieusement il faudrait que tu nous montre le bout de code qui pose problème parse que là...

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 70
    Points : 55
    Points
    55
    Par défaut
    je préfère t'envoyer la page parce que étant donné que tout est lié (le nombre de grand tableau avec celui de petit tableau et le nombre de ligne....enfin bref) surtout si tu trouve pas ça clair tu me le dis et je t'expliquerai mieu
    Fichiers attachés Fichiers attachés

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bonjour

    Je vais émettre une hypothèse : se peut-il que qu'une ligne soit perdue dans cette condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while (($ligne = mysql_fetch_array($result)) && $cpteur<$nbligParPetittab)
    Lorsque $cpteur vaut $nbligParPetittab, est-ce que le script n'affecte pas quand même une ligne du résultat à un $ligne ?

    Et une remarque purement syntaxique : à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $i = 0;
    while($i<$nb){
      ...
      $i=$i+1;
    }
    tu peux utiliser la boucle for équivalente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for ($i=0;$i<$nb;$i++){
      ....
    }

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 70
    Points : 55
    Points
    55
    Par défaut
    ce que je peux te dire c'est que quand tu enleve ce morceau de code qui se trouve dans les deux premières boucles, et bien les deux premiers de chaque tableau revienne.....enfin les deux premier du premier petit tableau oui....mais dès que l'on passe dans le deuxième il en loupe 1.... et a la fin il me rajoute des entete de tableau alors qu'il n'y a plus rien (surement dù au fait que lorsque l'on compte le nombre de ligne il s'aperçoit qu'il en manque....enfin c'est une hypothese)
    ($ligne = mysql_fetch_array($result)
    pour ce qui est de la boucle c'est vrai que ça peut aussi se faire avec une boucle for....

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    On va essayer un truc : remplace le bloc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $cpteur=0;
    while (($ligne = mysql_fetch_array($result))&& $cpteur<$nbligParPetittab) 
    {
    	echo'<tr><td><font size="2">'.$ligne[0].'</td><td>'.$ligne[1].'</td><td>'.$ligne[2].'</td><td>'.$ligne[3].'</td></tr>';
    	$cpteur=$cpteur+1;
    }
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for($cpteur=0;$cpteur<$nbligParPetittab;$cpteur++){
      if ($ligne=mysql_fetch_array($result)){
        echo'<tr><td><font size="2">'.$ligne[0].'</td><td>'.$ligne[1].'</td><td>'.$ligne[2].'</td><td>'.$ligne[3].'</td></tr>';
      }
    }
    Peut-être qu'en faisant comme ça, on va arrêter de perdre des lignes

  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 70
    Points : 55
    Points
    55
    Par défaut
    franchement celira.....je t'aime !!! loool merci beaucoup ton astuce marche !!! seulement tu pourrais m'epliquer pourquoi ma façon de le mettre dans mon code avec une boucle "while" ne marchait pas stp? c'est peut être moi qui comprend rien mais pour moi ça veut dire la même chose mais c'est écrit sous une forme différente....alors si tu as une explication j'aimerai bien comprendre ....
    en tout cas merci !!!!!!

  8. #8
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par ptiyo
    franchement celira.....je t'aime !!! loool
    Ouh là, du calme ! En tous cas, ça fait plaisir de voir que mon aide est appréciée

    En ce qui concerne ton problème, je vais essayer d'expliquer :
    Lorsque tu fais while (A && B), ton script tente de valider A et B. En l'occurence il tentait d'exécuter A (c'est-à-dire$ligne = mysql_fetch_array($result)) et vérifiait B (c'est-à-dire si $cpteur était bien plus petit que $nblig).

    Le problème c'est que lorsque $cpteur valait $nblig, il exécutait A avec succès mais ne validait pas B.
    Donc tu avais une ligne rentrée dans $ligne. Mais comme B n'était pas validé, il ne rentrait pas dans la boucle et tu perdais la ligne en question.

    Tu me suis ?

    Ce que j'ai fait moi, c'est décomposer la condition (A && B). Le truc c'est de tester d'abord la condition "à problème", et ensuite de tester l'autre uniquement si la première est validée.
    En considérant uniquement ta condition B, on peut transformer le while(B) en boucle for. Reste juste à ajouter la condition A à l'intérieur par un if, et le tour est joué !
    Voilà, j'espère avoir été claire
    Et n'oublie de cliquer sur

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 70
    Points : 55
    Points
    55
    Par défaut
    tkt pas je suis calme ! lool

    ok je comprend maintenant !! je savais où était en gros le problème....mais j'aurais du faire comme toi c'est à dire décomposer ma boucle pour voir d'où ça venait.... en tout cas si jamais je retrouve une erreur comme sa je penserai à tes précieux conseils ! merci pour tout !
    a + sur le forum

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

Discussions similaires

  1. Faire un lien entre deux bases de données
    Par pierce dans le forum Langage SQL
    Réponses: 1
    Dernier message: 27/01/2006, 21h29
  2. Réponses: 5
    Dernier message: 30/11/2005, 16h41
  3. problème avec ma base de donnée
    Par polace dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 22/10/2005, 22h26
  4. problème avec ma base de données
    Par pmboutteau dans le forum ASP
    Réponses: 6
    Dernier message: 25/02/2005, 12h59
  5. Problême d'ouverture base de données
    Par comment_ca dans le forum Oracle
    Réponses: 20
    Dernier message: 14/12/2004, 12h39

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