Problème d'affiche en liste des données de ma BDD

Eléphant du PHP | 75 Messages

01 sept. 2005, 12:11

salut à vous tous,

j'ai une bdd qui comporte une table dans laquelle se trouve des petites annonces....
j'ai trier ces annonces par catégorie, et chaque catégorie est un lien hypertexte qui renvoi vers une liste des différents annonces dans cette catégorie, et chaque ligne de cette liste envoi sur la fiche technique de l'annonce...
catégorie1
catégorie2
catégorie3 --> liste1
--> liste2
--> liste3
--> liste4 --> fiche4
pour tout afficher pas de problème mais je me suis rendu compte que si une catégorie était vide je n'avais pas de message d'erreur indiquant que cette catégorie ne contient pas d'annonces... et c'est là que tout se complique...
<?
$categorie_annonce = htmlentities($_GET['categorie_annonce']);
?>

<TD width=608 align=center>
	<a href=annonces.php>Retour à la liste des catégories</a>
	<table width=550 border=0>
			<tr><td>&nbsp;</td></tr>
			<tr>
			<td class="titre2" align=left bgcolor=#FF6701>Photo</td>
			<td class="titre2" align=left bgcolor=#FF6701>Intitulé</td>
			<td class="titre2" align=left bgcolor=#FF6701>Description</td>
			<td class="titre2" align=left bgcolor=#FF6701>Date de vente</td>
			<td class="titre2" align=left bgcolor=#FF6701 colspan=2>Lieu de l'objet</td>
			</tr>

	<?	
	$objet = mysql_query("SELECT * FROM annonces WHERE categorie_annonce='$categorie_annonce' ORDER BY date_vente AND id_annonce DESC");
	$verif = mysql_fetch_array($objet);
	
	if(!empty($verif))
	{
		while ($listing = mysql_fetch_array($objet))
		{
			echo '
			<tr>
			<td height=100 width=100 align=center>photo</td>
			<td bgcolor=#F6F5F5><a href=annonce-fiche.php?id_annonce='.$listing['id_annonce'].'>'.$listing['nom_annonce'].'</a></td>
			<td bgcolor=#F6F5F5>'.$listing['courte_description_annonce'].'</td>
			<td bgcolor=#F6F5F5>'.$listing['date_vente'].'</td>
			<td bgcolor=#F6F5F5>'.$listing['ville_annonce'].'<br>'.$listing['dept_annonce'].'</td>
			</tr><tr><td>&nbsp;</td>
			</tr>';
		}	
	}
	else
	{
	echo '<p><img src=images/no-annonces.gif></p>';
	}
	?>
	
</table>

	</TD>
Ma page est composé de tableau imbriqué et cette cellule qui englobe tout mon script est la partie principale de ma page...

j'explique ce que je voulais faire:
en fait je vérifie si $verif est vide de manière à savoir si j'ai du contenu ou pas dans la catégorie choisie...
si ce n'est pas vide cela affiche la liste... ça c'est la théorie mais en pratique...
si la catégorie est vide mon message d'erreur s'affiche parfaitement sous la forme d'une image, donc ça ça va...
<img src=images/no-annonces.gif>
mais si la catégorie contient des annonces et bien la liste s'affiche mais elle est imputé d'une annonce. C'est-à-dire que si j'en ai 3 seules 2 s'affiche...
Donc je ne comprend pas pourquoi une disparait alors que les autres s'affiche et à priori mon principe à l'air correct puisque tout s'affiche sauf une annonces...

voilà c'était long à lire mais au moins c'est précis,
merci d'avance...
Celui qui confesse son ignorance la montre une fois, celui qui essaie de la cacher la montre plusieurs fois...

truc
Invité n'ayant pas de compte PHPfrance

01 sept. 2005, 14:03

essai ca:
<?
$objet = mysql_query("SELECT * FROM annonces WHERE categorie_annonce='$categorie_annonce' ORDER BY date_vente AND id_annonce DESC");
   
    if(mysql_numrows($objet)!=0)//si la requete comporte au moins une ligne dc un annonce
    {
        while ($listing = mysql_fetch_array($objet))
        {
            echo '
            <tr>
            ...
            </tr>';
        }    
    }
    else
    {
    echo '<p><img src=images/no-annonces.gif></p>';
    } 
?>
en faite pour testers'il y a un enregistrement tu fait un mysql_fetch_array($objet) et dc tu lis deja la 1er ligne sans l'afficher je pense

Eléphant du PHP | 75 Messages

01 sept. 2005, 14:54

AAAAAAAAAAAH JE T'AIMEEEEEEEEEUH TRUCEEEEEEEEEEEEEUH!!!
franchement je te roule une pelle virtuel... ça marche niquel merci bien je me voyais déjà passer ma soirée devant mon ordi en pleurant...
t'as sauvé ma soirée...

:agenouille:
merciiiiiiiiiiiiiiiiiiiiiiii...
Celui qui confesse son ignorance la montre une fois, celui qui essaie de la cacher la montre plusieurs fois...

Eléphant du PHP | 75 Messages

01 sept. 2005, 15:08

j'ai encore une question! ma technique avec ta modification pourrait servir pour un moteur de recherche pour fouiller dans une table?
genre:
select * from annonces where titre=$recherche OR truc=$recherche
grossièrement tu vois ce que je veux dire?
Celui qui confesse son ignorance la montre une fois, celui qui essaie de la cacher la montre plusieurs fois...

truc
Invité n'ayant pas de compte PHPfrance

01 sept. 2005, 17:16

oui tu peux t'en servir comme tel avec ta requete donnée mais un tt pti moteur de recherche alors pas tres pousé, qui va marcher si tu n'a pas a fouiller ds du texte, la c un peu plus comliqué.

A toi de jouer avecles requetes pour trouver ton bonheur :wink:

Invité
Invité n'ayant pas de compte PHPfrance

01 sept. 2005, 17:38

ouais c'est vraiment basique c'est pour chercher à partir de mot clé dans des parties comme nom-annonces catégorie_annonces, des trucs comme ça...

je te remercie vraiment pour toute l'aide que tu m'as filé cette semaine c'est vraiment sympa, mais t'endors pas sur tes lauriers parce que ce soir j'ai encore beaucoup de travail donc je risque d'appeler à l'aide!!! :langue:
non mais c'est vraiment quand je trouve pas par moi meme que je bip sur le forum...
mais franchement merci!! :merci:

Eléphant du PHP | 75 Messages

01 sept. 2005, 17:39

zut m'étais pas logué...
Celui qui confesse son ignorance la montre une fois, celui qui essaie de la cacher la montre plusieurs fois...