Problème avec if / else et regex

Fermé
dj-69400 Messages postés 34 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 16 juin 2011 - 16 nov. 2008 à 17:08
dj-69400 Messages postés 34 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 16 juin 2011 - 22 nov. 2008 à 18:36
Bonjour a tous,

J'ai un problème, je fait en ce moment un système d'article sur mon site. J'ai fait un if, pour dire si il y a un articles où pas. Mais le problème ces que sa m'affiche rien ! J'ai beaux retourner le code dans tout les sens pour trouvé mon erreur, mais je ne la trouve pas !
J'utilise un regex, pour trouver le nom de mon articles dans la base de données et normalement, Il devrais en trouver un. Mais il ne l'affiche pas.

En espérant que quelqu'un réussira a trouver la solution a mon problème. Sa fait depuis 2 jour que je suis dessus et j'ai toujours pas trouvé.


	$sql = mysql_query(" SELECT * FROM articles WHERE nom='acceuil' ");
	$donnees = mysql_fetch_array($sql);
	if (preg_match("#acceuil#", $donnees['nom'] ))
{
while ($donnees = mysql_fetch_array($sql)) // On fait une boucle pour lister les news
{
	$sujet = $donnees['sujet'];
	$message = $donnees['message'];
	$message = nl2br($message);
	$message = str_replace('<br />','<br>',$message);
	$message = str_replace('<br />','<br>',$message);
		$message = str_replace(' 1) ','<img src="images/smileys/1.gif">',$message);
		$message = str_replace(' 2) ','<img src="images/smileys/2.gif">',$message);
		$message = str_replace(' 3) ','<img src="images/smileys/3.gif">',$message);
		$message = str_replace(' 4) ','<img src="images/smileys/4.gif">',$message);
		$message = str_replace(' 5) ','<img src="images/smileys/5.gif">',$message);
		$message = str_replace(' 6) ','<img src="images/smileys/6.gif">',$message);
		$message = str_replace(' 7) ','<img src="images/smileys/7.gif">',$message);
		$message = str_replace(' 8) ','<img src="images/smileys/8.gif">',$message);
		$message = str_replace(' 9) ','<img src="images/smileys/9.gif">',$message);
		$message = str_replace(' 10) ','<img src="images/smileys/10.gif">',$message);
		$message = str_replace(' 11) ','<img src="images/smileys/11.gif">',$message);
		$message = str_replace(' 12) ','<img src="images/smileys/12.gif">',$message);
		$message = str_replace(' 13) ','<img src="images/smileys/13.gif">',$message);
		$message = str_replace(' 14) ','<img src="images/smileys/14.gif">',$message);
		$message = str_replace(' 15) ','<img src="images/smileys/15.gif">',$message);
		$message = str_replace(' 16) ','<img src="images/smileys/16.gif">',$message);
		$message = str_replace(' 17) ','<img src="images/smileys/17.gif">',$message);
		$message = str_replace(' 18) ','<img src="images/smileys/18.gif">',$message);
		$message = str_replace(' 19) ','<img src="images/smileys/19.gif">',$message);
		$message = str_replace(' 20) ','<img src="images/smileys/20.gif">',$message);
		$message = str_replace(' 21) ','<img src="images/smileys/21.gif">',$message);
		$message = str_replace(' 22) ','<img src="images/smileys/22.gif">',$message);
		$message = str_replace(' 23) ','<img src="images/smileys/23.gif">',$message);
		$message = str_replace(' 24) ','<img src="images/smileys/24.gif">',$message);
		$message = str_replace(' 25) ','<img src="images/smileys/25.gif">',$message);
		$message = str_replace(' 26) ','<img src="images/smileys/26.gif">',$message);
		$message = str_replace(' 27) ','<img src="images/smileys/27.gif">',$message);
		$message = str_replace(' 28) ','<img src="images/smileys/28.gif">',$message);
		$message = str_replace(' 29) ','<img src="images/smileys/29.gif">',$message);
		$message = str_replace(' 30) ','<img src="images/smileys/30.gif">',$message);
		$message = str_replace(' 31) ','<img src="images/smileys/31.gif">',$message);
		$message = str_replace(' 32) ','<img src="images/smileys/32.gif">',$message);
		$message = str_replace(' 33) ','<img src="images/smileys/33.gif">',$message);
		$message = str_replace(' 34) ','<img src="images/smileys/34.gif">',$message);
		$message = str_replace(' 35) ','<img src="images/smileys/35.gif">',$message);
		$message = str_replace(' 36) ','<img src="images/smileys/36.gif">',$message);
		$message = str_replace(' 37) ','<img src="images/smileys/37.gif">',$message);
		$message = str_replace(' 38) ','<img src="images/smileys/38.gif">',$message);
		$message = str_replace(' 39) ','<img src="images/smileys/39.gif">',$message);
		$message = str_replace(' 40) ','<img src="images/smileys/40.gif">',$message);
		$message = str_replace('[g]','<b>',$message); 
		$message = str_replace('/g','</b>',$message); 
		$message = str_replace('[i]','<i>',$message); 
		$message = str_replace('/i','</i>',$message); 
		$message = str_replace('[s]','<u>',$message);
		$message = str_replace('/s','</u>',$message);
		$message = str_replace('[mail]','<a href="mailto:',$message); 
		$message = str_replace('/mail','">Email</a>',$message);   
		$message = str_replace('[img]','<img src=',$message); 
		$message = str_replace('/img','>',$message);   
		$message = str_replace('[droite]','<div align="right">',$message); 
		$message = str_replace('/droite','</div>',$message);   
		$message = str_replace('[gauche]','<div align="left">',$message); 
		$message = str_replace('/gauche','</div>',$message);  
		$message = str_replace('[centrer]','<div align="center">',$message); 
		$message = str_replace('/centrer','</div>',$message);  
		$message = preg_replace("/\[size=([1-2]?[0-9])\]/si", "<span style='font-size: \\1px; line-height: normal'>", $message); 
		$message = str_replace("/size", "</span>", $message);
		$message = preg_replace("/\[color=(.+)\](.+)\[\/color\]/", "<span style=\"color:\\1\">\\2</span>", $message); 
		$message = str_replace('/lien','</a>',$message); 
		$textmess3 = str_replace('[lien=','<a href=',$message);
		if ($textmess3!=$message)
				{
				$message = str_replace(']',' target=_blank class=lien>',$message); 
				$message = str_replace('[lien=','<a href=',$message); 
				}
?>					
<table align="center">
<tr>
<?php $html='<td id="menu1_titre"><a href="rediger_article.php?modifier_news=' . $donnees['id'] . '">Modifier</a>  ||
             <a href="accueil.php?supprimer_news=' . $donnees['id'] . '">suprimer</a></td>'; affiche($html, '34'); ?>	
<td id="menu1_titre"><?php echo stripslashes $sujet; ?></td>
</tr>
<tr>
<td id="menu1"><?php echo stripslashes $message ; ?></td>
</tr>
<tr>
<td id="menu1_titre"><?php commentaire($sujet); ?></td>
</tr>
</table>
<?php
		}
	}

else
{
echo 'Il n\'y a pas encore d\'article dans cet catégorie, revenez plus tard !';
}

6 réponses

zoby44 Messages postés 818 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 7 avril 2010 199
16 nov. 2008 à 22:11
Je comprend pas pourquoi tu met une regex dès le début, a ta place, je mettrais juste :

$sql = mysql_query(" SELECT * FROM articles WHERE nom='acceuil' ");
WHILE ($donnees = mysql_fetch_array($sql)) // On fait une boucle pour lister les news
{
Reste du code...
}

en même temps, si tu es sur de n'avoir qu'une seule entrée où le nom est "message", tu n'es pas obligé de mettre un WHILE, un IF suffit, sinon si tu veux afficher toutes les entrées où le nom contient "message" tu peux utiliser :

$sql = mysql_query(" SELECT * FROM articles WHERE nom LIKE '%acceuil%' ");

et sinon pour le stripslashes, je croit que tu a oublié les parenthèses, stripslashes($message).
J'espère que ça va pouvoir t'aider un peu.
0
dj-69400 Messages postés 34 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 16 juin 2011 3
16 nov. 2008 à 23:41
oki merci je vais essayer sa de suite.
0
dj-69400 Messages postés 34 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 16 juin 2011 3
16 nov. 2008 à 23:47
en faite tout et liste justement mais en faite des que par exemple dans la bdd il y a pas de d'article dans la categorie choisi ba que sa marque qu'il n'y a pas d'article je sais pas si j'arrive a me faire comprendre
Le nom en faite sa designe la categorie par exemple sur cette page ces l'acceuil du site il y en a d'autre par exemple mes photo ect
0
zoby44 Messages postés 818 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 7 avril 2010 199
17 nov. 2008 à 01:13
J'avoue que je ne comprend pas très bien. Tu as un problème juste sur ta page d'accueil ou pour afficher les autres pages aussi?
En général, quand je fait un site avec plusieurs catégories, je fait 2 bdd,
une pour référencer les catégories, l'autre pour afficher les page.
Exemple :

Structure de la bdd1 (catégorie)
id nom
1 accueil
2 photo
3 news


Structure de la bdd 2 (pages)
id nom id_categorie contenu
1 page1 1 blablabla
2 page2 2 blablabla
3 page3 2 blablabla
4 page4 2 blablabla
5 page5 3 blablabla
6 page6 3 blablabla

Après, je vais chercher dans ma bdd ce que j'ai envie d'afficher :
$sql = mysql_query('SELECT * FROM bdd2 WHERE id_categorie="1"');
WHILE ($data=mysql_fetch_array($sql))
{
echo '<a href="afficherpage.php?id='.$data['id'].'">'.$data['nom'].'</a>',"\n";
}


et sur la page afficherpage.php

$sql=mysql_query('SELECT * FROM bdd2 WHERE id="'.$_GET['id'].'"');
if ($data = mysql_fetch_array($sql))
{
bbcode($data['contenu']);
}


pour ce qui est de ton bbcode, je te conseil d'utiliser une fonction que tu pourras réutiliser sur toutes les pages ou tu en auras besoin.

Si tu veux, envoi la structure de ta bdd et je vais essayer de voir ou viens ton problème.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
As-tu penser à vérifier l'orthographe ? Dans la plupart de tes requêtes je vois "Acceuil" et non "Accueil !

Peut-être est-ce pour cela que le script ne trouve rien à affichher ;)
0
dj-69400 Messages postés 34 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 16 juin 2011 3
22 nov. 2008 à 18:36
ba en faite voit si un exemple

dans la bdd par exemple il y a un article :
sa va afficher l'article
sa fait donc un truc du genre
ou sinon a l'aide d'une condition et d'un echo dire il n'y a pas d'article dans cette categorie ! revenez plus tard !
if (je sais pas comment faire pour faire une verification de champs dans la BDD
{
[l'article]
}

else (si il n'y a pas d'article dans la BDD, sa m'affiche sa.)
{
echo 'il n'y a pas d'article dans cette categorie ! revenez plus tard !'
}

mais mon probleme ces que je sais pas comment je pourais faire pour verifier si le champs dans la base de donné apeller "nom" j'ai essayer sans regex sa m'affiche mon article mais quand je le met ba sa me dit "il n'y a pas d'article dans cette categorie ! revenez plus tard !" pourtant je n'est pas effacer l'article

j'espere que vous avez une peu mieux compris mon projet

non tkt pas pour les faute ces fait exprés

Desoler pour les faute d'orthographe je suis presser :p
0