Problème algo

cs_didine6 Messages postés 81 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 7 août 2009 - 16 nov. 2006 à 15:46
cs_didine6 Messages postés 81 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 7 août 2009 - 16 nov. 2006 à 19:26
Bonjour,

J'ai un problème algo.
Je fait une requête et je compte le nombre de résultat.
Je souhaite placer tous les résultats dans un tableau html de 4 colonnes et le nombre de lignes dépendant du nombre d'enregistrement.
Je n'arrête pas de faire des boucles infinies...je ne m'en sors pas.
Quelqu'un pourrait-il me guider ?

Merci

Didine

6 réponses

xque19 Messages postés 47 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 19 novembre 2006 1
16 nov. 2006 à 16:57
Salut,

Serait-il possible d'avior un extrait de ton code qui pose problème?

++
0
xactise Messages postés 507 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 22 juin 2012 2
16 nov. 2006 à 17:06
<TABLE>
// connexion a la bdd
$requete = "SELECT champ1, champ2, champ3, champ4 FROM table";
$envoie  = mysql_query($requete);
while($tableau = mysql_fetch_array($envoie)){
echo '<TR><TD>'.$tableau['champ1'].'</TD><TD>'.$tableau['champ2'].'</TD><TD>'.$tableau['champ3'].'</TD><TD>'.$tableau['champ4'].'</TD></TR>';
}
//fermeture connexion

L0rD...
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
16 nov. 2006 à 17:14
Salut,

$requete = 'SELECT champ1, champ2, champ3, champ4 FROM table';
$envoie  = mysql_query($requete) or die(mysql_error());

echo 'Il y a : '.mysql_num_rows($envoie).' résultats...';

while($tableau = mysql_fetch_array($envoie)){
echo
'<tr><td>'.$tableau['champ1'].'</td><td>'.$tableau['champ2'].'</td><td>'.$tableau['champ3'].'</td><td>'.$tableau['champ4'].'</td></tr>';
}

ce code est un peu plus corect....

mais ici tu n'as pas de problèmes de boucles infinies...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
xque19 Messages postés 47 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 19 novembre 2006 1
16 nov. 2006 à 17:20
je ne vois rien d'anormal, mis à part peut-être qu'il manque un point-virgule à la fin de la requete SQL:
$requete = "SELECT champ1, champ2, champ3, champ4 FROM table;";
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
xque19 Messages postés 47 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 19 novembre 2006 1
16 nov. 2006 à 17:22
en testant le code de coucou747 tu as quoi comme résultat pour l'instruction : echo 'Il y a : '.mysql_num_rows($envoie).' résultats...';
0
cs_didine6 Messages postés 81 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 7 août 2009
16 nov. 2006 à 19:26
En fait, j'ai dû mal m'exprimer.
Je vous explique le cas concret.
J'ai une BD avec des livres classés par thèmes.
Sur un page, je répértorie tous les thèmes avec entre parenthèses le nombre de livres classés dans ce thème.
Jusque là pas de problème.
C'est ensuite : je souhaite que lorsqu'on clique sur le thème concerné, cela affiche le titre de tous les livres concernés dans un tableau <html>.
Donc c'est toujours le même champ !!
Voici un bout de mon code :

<?php
// On affiche tous les thèmes avec le nombre de doc attachés
$sql="SELECT * FROM theme";
$res=mysql_query($sql);
$j=mysql_num_rows($res);
$i=0;
while ($ligne=mysql_fetch_array($res))
{
  $req="SELECT * FROM docu WHERE theme='".$ligne['theme']."'";
  $res1=mysql_query($req);
  $nb=mysql_num_rows($res1);


   echo "<tr><td id='menu' colspan=2 align='center'>
  ".$ligne['lib_theme']." (".$nb.")</td></tr>";


  $i++;
}
echo "<tr><td height=60 colspan=2>&nbsp;</td></tr>";
// En cliquant sur un thème, on affiche les titres des docs attachés
if(isset($_GET['th']))
{
    $th=$_GET['th'];
 echo "<tr><td colspan=2 id='menu' align='center'>Titres attachés au thème sélectionné</td></tr>";
    $sql="SELECT d.num,h.lib_theme,d.auteur,d.titre,d.edition,d.annee_edition,
          d.num_edition,d.resume,d.lieu,d.frequence,d.date_fin_abo
          FROM type t,theme h,docu d
          WHERE t.type=d.type
          AND h.theme=d.theme
          AND d.theme='".$th."'";
    $res=mysql_query($sql);
    $cpt=0;
    while ($enr=mysql_fetch_array($res))
    {
      echo "<tr><td colspan=2 id='menu'>
   ".$enr[3]."</td></tr>";
      $cpt++;
    }
    echo "<tr><td>&nbsp;</td></tr>";

Donc là eveidemment cela fonctionne. Je veux juste mettre un 4 enregistrements sur une même ligne <tr> mais dans des <td> différents.

Merci de votre aide.

Didine
0
Rejoignez-nous