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 :

Problème lors du parcours du résultat d'une requête [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de rinuom99
    Étudiant
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Par défaut Problème lors du parcours du résultat d'une requête
    salut,
    je veux afficher tout les enregistrement d'une table de base de donnée, j'ai utilisé le code suivant:
    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
    $selectcli="SELECT * FROM client ORDER BY 'mat_cli'";
    $cli = mysql_query($selectcli, $link) or die(mysql_error());
    $lignes_cli = mysql_num_rows($cli);
    $client =array();
    $client['matricule'] =array();
    $client['nom'] =array();
    $client['prenom'] =array();
    $client['adresse'] =array();
     
    if ($lignes_cli != 0)
    {
      for ($i=0;$i<$lignes_cli ;$i++)
      {
        $row_cli = mysql_fetch_assoc($cli);
        $client['matricule'][$i] = $row_cli['mat_cli'];
    	$client['nom'][$i]=$row_cli['nom_cli'];
    	$client['prenom'][$i]=$row_cli['prenom_cli'];
    	$client['adresse'][$i]=$row_cli['adresse_cli'];
    	$client['etat'][$i]=$row_cli['etat'];
        mysql_data_seek($cli, $i);
    et pour l'affichage j'utilise le code suivant:
    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
     
     
    for($i=1; $i<$lignes_cli;$i++)
     $mat= $client['matricule'][$i];
    $nom= $client['nom'][$i];
    $prenom=$client['prenom'][$i];
    $adresse=$client['adresse'][$i];
    $eta=$client['etat'][$i];
     
      echo '<tr>';
    							  echo '<td width="8%">' ;
    echo '</td>';
     
    echo'<td width="76%" height="20" align="left" valign="middle"><a href="client.php?m='.$mat.'">'.$mat."\n".'-'."\n".$nom."\n".'-'."\n".$prenom."\n".'-'."\n".$adresse.'</a></td>';
    							  echo '<td width="8%">';
     echo '<a href="addclient.php?m='.$mat.'"><img src="../../images/ic_modif.gif" alt="Modifier" width="22" height="22" border="0" /></a>';
     
    							  echo '</td>';
    le probleme que le dernier enregistrement il n'affiche pas ??? si vous pouvez mz aidé svp et merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Par défaut Compteur dans la boucle d'affichage
    Hello,

    ta boucle d'affichage est mal initialisée, elle part de 1 au lieu de 0.

  3. #3
    Membre éclairé Avatar de rinuom99
    Étudiant
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Par défaut
    si je commance par le 0 j'obtient le premier enregistrement 2 fois , c sa le probleme

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Par défaut mysql_data_seek
    ton problème vient de là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     for ($i=0;$i<$lignes_cli ;$i++)
      {
        $row_cli = mysql_fetch_assoc($cli);
        $client['matricule'][$i] = $row_cli['mat_cli'];
    	$client['nom'][$i]=$row_cli['nom_cli'];
    	$client['prenom'][$i]=$row_cli['prenom_cli'];
    	$client['adresse'][$i]=$row_cli['adresse_cli'];
    	$client['etat'][$i]=$row_cli['etat'];
        mysql_data_seek($cli, $i);
    quand tu fais cela au premier passage dans ta boucle d'initialisation ton compteur $i vaut 0 et donc tu prends 2x le premier enregistrement et du coup jamais le dernier.

    Il te faut mettre le mysql_data_seek au début de la boucle et pas à la fin.

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    tu peux aussi réduire ton code à ça...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     $selectcli="SELECT * FROM client ORDER BY 'mat_cli'";
    $cli = mysql_query($selectcli, $link) or die(mysql_error());
    $lignes_cli = mysql_num_rows($cli);
     
    if ($lignes_cli != 0)
    {
      while($row_cli = mysql_fetch_assoc($cli){
     
      echo '<tr><td width="8%"></td>
    		<td width="76%" height="20" align="left" valign="middle"><a href="client.php?m='.$row_cli['mat_cli'].'">'.$row_cli['mat_cli']."\n".'-'."\n".$row_cli['nom_cli']."\n".'-'."\n".$row_cli['prenom_cli']."\n".'-'."\n".$row_cli['adresse_cli'].'</a></td>
    		<td width="8%">
    		<a href="addclient.php?m='.$row_cli['mat_cli'].'"><img src="../../images/ic_modif.gif" alt="Modifier" width="22" height="22" border="0" /></a></td>';
    	}
    }

  6. #6
    Membre éclairé Avatar de rinuom99
    Étudiant
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Par défaut
    jackb6, boo64, Merci beaucoup
    oui effictivement il avait un probleme au niveau de dernier ( mysql_data_seek($cli, $i) mnt sayé j'ai régler le probleme, merci encore une fois

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/08/2018, 19h52
  2. Réponses: 3
    Dernier message: 11/04/2012, 11h00
  3. [MySQL] Parcours des résultats d'une requête
    Par vjbda dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 20/04/2008, 18h01
  4. Parcours des résultats d'une requête
    Par RodEpsi dans le forum Bases de données
    Réponses: 5
    Dernier message: 18/02/2007, 17h58

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