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 -
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();
?>
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:
- Probleme php !
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
4 réponses
Salut,
essayes comme ceci :
Par ailleurs, si dans ton style1 et style, juste la couleur change, tu peux faire un truc encore plus simple, du genre :
Donne des nouvelles !
A+
Gaerebut
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
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 :)
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 :)