Probleme php !

rouch Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
gaerebut Messages postés 1017 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je suis novice en php et après arrachage de cheveux je capitule !
Voila,

je dispose d'une Table a 3 champs : id / texte / couleur (soit rouge soit noir )
rouge =1 et noir =0

Je voudrais simplement afficher toute la table dans son ordre d'id' croissant, tout en affichant la couleur ( id / texte )
correspondante !

exemple : offre 1 : blaabla (noir)
offre 2 : blabla (noir)
offre 3 : blabla (rouge) ........

Mon problème est que je n'arrive soit, qu'a afficher les champs de couleur noir en premier et rouge ensuite (ou inversement) !
Ou alors, ma boucle saute directement de champs noir en champs rouge, en n'affichant pas l'offre 2 ( plus haut) par exemple, ainsi de suite...

merci de m'éclairer !!



<?php


mysql_connect('localhost', 'root', '') OR die('Erreur de connexion à la base');
mysql_select_db('test') OR die('Erreur de sélection de la base');

$requete = mysql_query("SELECT num, texte FROM truc") OR die('Erreur de la requête MySQL');
$requete1 = mysql_query("SELECT num, texte FROM truc WHERE couleur='1'") OR die('Erreur de la requête MySQL');
$requete2 = mysql_query("SELECT num, texte FROM truc WHERE couleur='0'") OR die('Erreur de la requête MySQL');
$couleur1 = mysql_query("SELECT couleur FROM truc WHERE couleur='1'") OR die('Erreur de la requête MySQL');



while ($resultat = mysql_fetch_row($requete))

{

if ($couleur1 && $resultat1 = mysql_fetch_row($requete1))

{echo '<p class=style1>offre '.$resultat1[0].' : '.$resultat1[1].'</p>';}

elseif ($couleur2 && $resultat2 = mysql_fetch_row($requete2))

{ echo '<p class=style2>offre '.$resultat2[0].' : '.$resultat2[1].'</p>';}


}


mysql_close();

?>
A voir également:

4 réponses

gaerebut Messages postés 1017 Date d'inscription   Statut Membre Dernière intervention   171
 
Salut,

essayes comme ceci :

<?php
mysql_connect('localhost', 'root', '') OR die('Erreur de connexion à la base');
mysql_select_db('test') OR die('Erreur de sélection de la base');

$requete = mysql_query("SELECT * FROM truc ORDER BY id") OR die('Erreur de la requête MySQL');
while ($resultat = mysql_fetch_row($requete))
{
$couleur =  $resultat['couleur'];

if ($couleur)
echo '<p class=style1>offre'.$resultat["id"].' : '.$resultat1["texte"].'</p>';
else
echo '<p class=style2>offre '.$resultat2["id"].' : '.$resultat2["texte"].'</p>';
}

mysql_close();

?>


Par ailleurs, si dans ton style1 et style, juste la couleur change, tu peux faire un truc encore plus simple, du genre :

<?php
mysql_connect('localhost', 'root', '') OR die('Erreur de connexion à la base');
mysql_select_db('test') OR die('Erreur de sélection de la base');

$requete = mysql_query("SELECT * FROM truc ORDER BY id") OR die('Erreur de la requête MySQL');
while ($resultat = mysql_fetch_row($requete))
{
$couleur =  $resultat['couleur'];

if ($couleur) $couleur = "black"; else $couleur = "red";
echo '<p style="color:'.$couleur.'">offre'.$resultat["id"].' : '.$resultat1["texte"].'</p>';
}

mysql_close();

?>


Donne des nouvelles !

A+

Gaerebut
1
rouch Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   1
 
merci pour ton ton aide gaerebut !!


en fait j ai choisi ta 2ieme formule elle est plus claire !!
par contre il il a toujours un problème , c est celui de la $couleur = $resultat['couleur'];
qui reste toujours indéfinie dans la page !


je suis donc parti sur :


<?php


mysql_connect('localhost', 'root', '') OR die('Erreur de connexion à la base');
mysql_select_db('test') OR die('Erreur de sélection de la base');

$requete = mysql_query("SELECT * FROM truc ORDER BY num") OR die('Erreur de la requête MySQL');


while ($resultat = mysql_fetch_row($requete))

$couleur = $resultat['couleur'];
{

if ($couleur)
$couleur = "black";
else
$couleur = "#CC3333";
echo '<p style="color:'.$couleur.'">offre'.$resultat["num"].' : '.$resultat1["texte"].'</p>';
}


mysql_close();

?>

il me semble que le fecht_row() classe par default en ordre croissant d'id ( dans ma table appelé "num") !
mais c'est cette $couleur de tri qui pose problème !


merci en tout cas de ta réponse !! je creuse encore :)
1
Dr Zoidberg Messages postés 529 Date d'inscription   Statut Membre Dernière intervention   100
 
Salut,

Ton accolade du while n'est pas au bon endroit, elle va au dessus de $couleur ...

a+
1
gaerebut Messages postés 1017 Date d'inscription   Statut Membre Dernière intervention   171
 
C'est toi qui est fait l'erreur rouch! Je te l'es bien mise moi :p

Merci pour l'info Dr Zoidberg ! ;)

A+

Gaerebut
1