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

Mammouth du PHP | 702 Messages

16 mars 2012, 11:02

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.

Mammouth du PHP | 702 Messages

16 mars 2012, 11:31

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.

Mammouth du PHP | 702 Messages

16 mars 2012, 11:58

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
    }

?>
...

Eléphant du PHP | 418 Messages

16 mars 2012, 12:25

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

Mammouth du PHP | 702 Messages

16 mars 2012, 12:55

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.

Eléphant du PHP | 418 Messages

16 mars 2012, 14:05

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

Mammouth du PHP | 702 Messages

16 mars 2012, 14:56

Merci beaucoup :) c'est vrai que j'étais ambiguë dans dans mes propos. Bonne continuation