problème de requête suite à une jointure

Mammouth du PHP | 702 Messages

15 mai 2012, 15:49

Bonjour à tous, j'ai un soucis avec une boucle infinie (elle ne s'arrête jamais mais fait ralentir le server)

en fait la requete primaire vient d'une jointure, j'ai donc continué pour afficher plusieurs éléments contenus dans l'une des table issue de la jointure,
voici le code:
  <?php 
$sql = "SELECT * FROM `credit` INNER JOIN `debit` ON `credit`.`n_doss` = `debit`.`n_doss` WHERE `credit`.`n_doss`='".mysql_real_escape_string($_GET['n_doss'])."'";
$result = mysql_query($sql) or die(__LINE__.mysql_error().$sql); 
?>     <?php
      $user = mysql_fetch_assoc($result)
      
        ?> 
                  Fiche des client
                              </h2><table border="0" cellpadding="0" cellspacing="0">
                                <tr><?php while(isset($user['qualite'])) { ?><td width="150" height="30" align="center" background="images/onglet.png" valign="bottom"><center><a href="creance.php?n_doss=<?php echo $_GET['n_doss'] ; ?>&id=<?php echo $_GET['id'] ; ?>&code_client=<?php echo $_GET['code_client'] ; ?> "><?php echo $user['qualite'] ; ?></a></center></td> <?php } ?> <td width="150" height="30" align="center" background="images/onglet.png" valign="bottom"><center><a href="javascript:na_open_window('win', 'add-debiteur.php?id=<?php echo $_GET['id'] ; ?>&code_client=<?php echo $_GET['code_client'] ; ?>&n_doss=<?php echo $_GET['n_doss'] ; ?>', 0, 0, 700, 700, 0, 0, 0, 0, 1)" target="_self">Ajouter un Client<img src="images/user_business_add.png" width="25" height="25" /></a></center></td> 
     </tr></table>
Le soucis c'est que la boucle ne s'arrête pas alors que pourtant il y a bien les } comme il est d'usage de le mettre.

Je ne comprends pas car la il m'affiche plusieurs fois le même élément alors que normalement je voudrais qu'il m'afiche une fois chaque enregistrement, la c'est perpétuellement le même.

d'avance merci.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

15 mai 2012, 17:55

Salut,

Tu a bien codé une boucle infinie donc tout va bien.
Le seul élément qui boucle c'est le while. Regarde bien ce que tu as mis en paramètres et corrige le ;)


@+
Bonjour à tous, j'ai un soucis avec une boucle infinie (elle ne s'arrête jamais mais fait ralentir le server)

en fait la requete primaire vient d'une jointure, j'ai donc continué pour afficher plusieurs éléments contenus dans l'une des table issue de la jointure,
voici le code:
  <?php 
$sql = "SELECT * FROM `credit` INNER JOIN `debit` ON `credit`.`n_doss` = `debit`.`n_doss` WHERE `credit`.`n_doss`='".mysql_real_escape_string($_GET['n_doss'])."'";
$result = mysql_query($sql) or die(__LINE__.mysql_error().$sql); 
?>     <?php
      $user = mysql_fetch_assoc($result)
      
        ?> 
                  Fiche des client
                              </h2><table border="0" cellpadding="0" cellspacing="0">
                                <tr><?php while(isset($user['qualite'])) { ?><td width="150" height="30" align="center" background="images/onglet.png" valign="bottom"><center><a href="creance.php?n_doss=<?php echo $_GET['n_doss'] ; ?>&id=<?php echo $_GET['id'] ; ?>&code_client=<?php echo $_GET['code_client'] ; ?> "><?php echo $user['qualite'] ; ?></a></center></td> <?php } ?> <td width="150" height="30" align="center" background="images/onglet.png" valign="bottom"><center><a href="javascript:na_open_window('win', 'add-debiteur.php?id=<?php echo $_GET['id'] ; ?>&code_client=<?php echo $_GET['code_client'] ; ?>&n_doss=<?php echo $_GET['n_doss'] ; ?>', 0, 0, 700, 700, 0, 0, 0, 0, 1)" target="_self">Ajouter un Client<img src="images/user_business_add.png" width="25" height="25" /></a></center></td> 
     </tr></table>
Le soucis c'est que la boucle ne s'arrête pas alors que pourtant il y a bien les } comme il est d'usage de le mettre.

Je ne comprends pas car la il m'affiche plusieurs fois le même élément alors que normalement je voudrais qu'il m'afiche une fois chaque enregistrement, la c'est perpétuellement le même.

d'avance merci.
Il en faut peu pour être heureux ......