Page 1 sur 1

requête ne renvoyant que le premier résultat.

Posté : 16 mars 2012, 11:02
par piotrowski-s
Bonjour à tous, j'ai cette requête ci, le soucis est qu'elle ne me renvoit qu'un seul résultat alors que je souhaites tous les afficher.
 <?php 

$sql = 'SELECT * FROM liasses where n_doss='.$_GET['n_doss'].'';
$result = mysql_query($sql) or die(__LINE__.mysql_error().$sql); 
$increment = 1;
while ($donnees = mysql_fetch_array($result) ) {
	$color = ($increment % 2 == 0) ? "#D9D9D9" : "#EEEEEE";
?>
           <tr style="background-color: #<?php echo $color; ?>;>
             <td><?php echo $donnees['libelle'] ; ?></td>
             <td><?php echo $donnees['montant'] ; ?></td>
             <td><?php echo $donnees['client'] ; ?></td>
           <?php
    }

?></tr>
Savez vous ce qui ne va pas?

D'avance merci.

Re: requête ne renvoyant que le premier résultat.

Posté : 16 mars 2012, 11:31
par piotrowski-s
j'ai un autre soucis, j'ai été amené a rajouté une condition, la condition est bie,n vérifiée et n'affiche que les éléments de la condition, pas les autr'es données demandées. voici la nouvelle requête.
         <?php 

$sql = 'SELECT * FROM liasses where n_doss='.$_GET['n_doss'].'';
$result = mysql_query($sql) or die(__LINE__.mysql_error().$sql); 
$increment = 1;
while ($donnees = mysql_fetch_array($result) ) {
	$color = ($increment % 2 == 0) ? "#D9D9D9" : "#EEEEEE";
?>
           <tr style="background-color: #<?php echo $color; ?>;>
             <td><?php echo $donnees['libelle'] ; ?></td>
             <td align="center"><?php echo $donnees['montant'] ; ?></td>
             <td align="center"><?php if ($donnees['client']=="oui")
 { echo '<img src="images/IconValidate.png">'; }
else { echo '<img src="images/IconCancel.png">';
}?></td>
           <?php
    }

?></tr>
je cherche à savoir ce qui cloche sans succès pour l'heure.

Re: requête ne renvoyant que le premier résultat.

Posté : 16 mars 2012, 11:58
par piotrowski-s
le soucis qui m'oppose c'est que mon tableau est complètement déformé, alors qu'il a la même structure
         <?php 

$sql = 'SELECT * FROM liasses where n_doss='.$_GET['n_doss'].'';
$result = mysql_query($sql) or die(__LINE__.mysql_error().$sql); 
$increment = 1;
while ($donnees = mysql_fetch_array($result) ) {
	$color = ($increment % 2 == 0) ? "D9D9D9" : "EEEEEE";
?>
           <tr style="background-color: #<?php echo $color; ?>; width:100%>
             <td width="155" align="left"><?php echo $donnees['libelle'] ; ?></td>
             <td width="153" align="center"><?php echo $donnees['montant'] ; ?></td>
             <td width="55" align="center"><?php if ($donnees['client']=="oui")
 { echo '<img src="images/IconValidate.png">'; }
else { echo '<img src="images/IconCancel.png">';
}?></td></tr>
           <?php
    }

?>
...

Re: requête ne renvoyant que le premier résultat.

Posté : 16 mars 2012, 12:25
par Fre3z69
Salut

Sans vouloir te vexer, mais perso, j'ai vu tes postes et j'ai rien compris.

Je sais pas ce qui devrais être afficher, ni quelle utilisation est pour tes scripts, bref.

Dit nous plus clairement ce qui ne va pas, décrit nous plus en détaille l'application que tu développe avec ses scripts, et détaille nous ce que font tes scripts.

Tu nous balance ça, mais on peux pas tout deviner ;-)

Courage à toi

Cordialement

Re: requête ne renvoyant que le premier résultat.

Posté : 16 mars 2012, 12:55
par piotrowski-s
Oui désolé, en relisant je m'apperçois que c'est assez superflu. en fait j'ai tenté d'utiliser une fonction pour changer le background color d'une cellule sur deux dans ma boucle. et elle ne fonctionne pas. en fait ça m'affiche une couleur uniforme pour toute les cellules et pas celle que j'ai voulu.

  <?php 

$sql = 'SELECT * FROM liasses where n_doss='.$_GET['n_doss'].'';
$result = mysql_query($sql) or die(__LINE__.mysql_error().$sql); 
$couleur[0]="#EEEEEE"; //Ici on déclare le tableaux des couleurs 
$couleur[1]="D9D9D9" ;
$i=0; 
while ($donnees = mysql_fetch_array($result) ) {

?>
           <tr bgcolor=". $couleur[($i%2)] .">
             <td width="155" align="left"><?php echo $donnees['libelle'] ; ?></td>
             <td width="153" align="right"><?php  $nbr44=$donnees['montant'] ;
					   if (empty($donnees['montant'])) {

echo '0,00'; }

else {

// Notation française
$rgt255 = number_format($donnees['montant'], 2, ',', ' ');
// 1 234,56
echo $rgt255; }

 ?>               &euro;</td>
             <td width="55" align="center"><?php if ($donnees['client']=="oui")
 { echo '<img src="images/IconValidate.png">'; }
else { echo '<img src="images/IconCancel.png">';
}?></td></tr>
           <?php $i++;
    }

?>
pourtant j'ai bien utilisé le compteur et le modulo. je ne sais pas pourquoi cette fonction ne marche pas.

Re: requête ne renvoyant que le premier résultat.

Posté : 16 mars 2012, 14:05
par Fre3z69
Voila, on va pouvoir t'aider

Tu as de la chance j'ai justement fait cela

En fait dans la fonctionnalité, c'est assez simple.

Tu initialise une variable (par exemple $pair) à true

Tu fait ton while (boucle) et en fin de boucle, tu met cette variable à false.

Ensuite il suffit juste d'une condition pour afficher la bonne couleur.

Voila le résultat pour t'aider à mieux comprendre.
<?php
......
// tu initialise $pair à true
$paire = true;
	while ($donnees = mysql_fetch_array($result))
	{
// une condition pour définir la couleur à choisir
	$couleur=($paire)? '#D9D9D9' : '#EEEEEE'; // ou $couleurinfo=($paire)?'ta classe 1':'classe 2'; avec un peu de css dans ton .css ^^
?>
	<tr class="<?php echo $couleur; /* affichage de la couleur */ ?>">
		<td>
		</td>
	</tr>
<?php
// tu définit $paire à false 
//!$var =  contraire de $var dans ce cas false
$paire = !$paire;
	}
......
?>
En espérant que ça peux t'aider

Cordialement

Re: requête ne renvoyant que le premier résultat.

Posté : 16 mars 2012, 14:56
par piotrowski-s
Merci beaucoup :) c'est vrai que j'étais ambiguë dans dans mes propos. Bonne continuation