Page 1 sur 2
tri + liens + requetes
Posté : 19 sept. 2009, 23:33
par graffx
Bonjour a tous!!!
Je me posais une question, mais la sur le coup je vois pas trop comment faire, pourtant je suis sur que c' est hyper simple.
J' ai ma page annonces.php qui liste toutes les annonces par ordre décroissant, j' aimerai y ajouter des liens du genre (liste deroulante: trier par -> prix, date, etc), sauriez vous comment je peux faire?
Dois je absolument utiliser un switch sachant que je dois faire une requete par mode de tri?
Merci d' avance de m' eclairer :/
Re: tri + liens + requetes
Posté : 20 sept. 2009, 00:37
par sylvaing26
Et bien peut etre en faisant passer le parmaetre par ton url page.php?order=prix
Ensuite tu fait ta requete si le tri est effectué, ca me parait assez simple
Re: tri + liens + requetes
Posté : 20 sept. 2009, 00:56
par graffx
C' est bien ce que je pensais, donc le mieux serait un switch?
Re: tri + liens + requetes
Posté : 20 sept. 2009, 10:01
par sylvaing26
exact

Re: tri + liens + requetes
Posté : 20 sept. 2009, 11:52
par graffx
je pensais a un truc tout simple, genre:
switch($tri) {
case 'croissant':
$annonces1 = mysql_query('SELECT * FROM annonces ORDER BY id ASC');
while ($annonces = mysql_fetch_array($annonces1))
break;
case 'decroissant':
$annonces1 = mysql_query('SELECT * FROM annonces ORDER BY id DESC');
while ($annonces = mysql_fetch_array($annonces1))
break;
}
Mais visiblement il aime pas :s, un conseil?
Re: tri + liens + requetes
Posté : 20 sept. 2009, 12:36
par sylvaing26
Il faut que tu sorte ton while de ton swich
En gros ton swhich pose les condition
et après tu récupère les données dans ta boucle while
Si tu as du mal avec les swich sert toi plus de if et else if
switch($tri) {
case 'croissant':
$annonces1 = mysql_query('SELECT * FROM annonces ORDER BY id ASC');
break;
case 'decroissant':
$annonces1 = mysql_query('SELECT * FROM annonces ORDER BY id DESC');
break;
}
while ($annonces = mysql_fetch_array($annonces1)){
///// traitement des données
}
J'ajouterai même quelque chose concernant l'optimisation de ton script, il est deconseillé de mettre SELECT * car il il a une perte de performance. Renseigne tous les champs SELECT champ1,champ2 ... FROM annonces ORDER BY id DESC
Re: tri + liens + requetes
Posté : 20 sept. 2009, 13:23
par graffx
bizarre j' aurai juré avoir testé ca!!!!
En tout ca marci a toi!
J' ai un ultime souci a te demander, celui la est plus urgent vu que ma page est indisponible, voici le probleme:
<?php
$id = $_GET['id'];
$pseudo = $_GET['pseudo'];
$sql = 'SELECT annonces.id,annonces.auteur,annonces.titre,annonces.cat,annonces.type,annonces.prix,annonces.date,annonces.texte,annonces.photo1,connexion.pseudo,connexion.avatar,connexion.siren FROM annonces'
$sql. = ' LEFT OUTER JOIN connexion ON annonces.auteur = connexion.pseudo';
$sql.= ' WHERE annonces.id="'. $id .'"';
$annonces = mysql_fetch_array($sql)
?>
Je m' explique, j' ai ma table principale pour cette page 'annonces'
Cette requete simple fonctionne tres bien, hélas j' aurai voulu afficher l' avatar du posteur, celui ci se trouve dans la table pricnipale qui donne les infos des membres 'connexion', je me retrouve avec ceci:
Parse error: syntax error, unexpected T_VARIABLE in /home/villedeb/www/annonces/annonces_read.php on line 97
Eveideement ca vient de la requete, mais alors que est le souci?
Re: tri + liens + requetes
Posté : 20 sept. 2009, 13:43
par Dr@ke
Salut,
C'est un problème de simples et doubles guillemets.
Rassemble ta requête en une seule ligne pour simplifier la lisibilité.
Ensuite repère le ou les erreurs sans oublier les guillemets de $_GET...
Re: tri + liens + requetes
Posté : 20 sept. 2009, 15:05
par graffx
ce coup-ci j' ai accés a la page, mais j' ai toujours une erreur:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/villedeb/www/annonces/annonces_read.php on line 97
<?php
$id = $_GET['id'];
$pseudo = $_GET['pseudo'];
$sql = 'SELECT annonces.id,annonces.auteur,annonces.titre,annonces.cat,annonces.type,annonces.prix,annonces.date,annonces.texte,annonces.photo1,connexion.pseudo,connexion.avatar,connexion.siren FROM annonces LEFT OUTER JOIN connexion ON annonces.auteur = connexion.pseudo WHERE annonces.id='. $id .'';
$annonces = mysql_fetch_array($sql)
?>
Re: tri + liens + requetes
Posté : 20 sept. 2009, 15:16
par Dr@ke
<?php
$id = $_GET['id'];
$pseudo = $_GET['pseudo'];
$sql = 'SELECT annonces.id, annonces.auteur, annonces.titre, annonces.cat, annonces.type, annonces.prix, annonces.date, annonces.texte, annonces.photo1, connexion.pseudo, connexion.avatar, connexion.siren FROM annonces';
$sql .= ' LEFT OUTER JOIN connexion ON annonces.auteur = connexion.pseudo';
$sql .= ' WHERE annonces.id="'. $id .'"';
$annonces = mysql_fetch_array($sql);
?>
En fait c'était surtout un problème d'absence de:
;
Comme ça?
Puis, la variable $pseudo ici est définie mais non utilisée mais surement réutilisée ensuite...
Re: tri + liens + requetes
Posté : 20 sept. 2009, 15:57
par graffx
alors merci de ton aide, mais helas:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/villedeb/www/annonces/annonces_read.php on line 100
Sinon oui cette variable est reutilisée juste aprés
Re: tri + liens + requetes
Posté : 20 sept. 2009, 16:01
par Dr@ke
Perso je ne sais plus, je laisse la place aux autres.
Re: tri + liens + requetes
Posté : 20 sept. 2009, 16:04
par sylvaing26
C'est ce que tu nous donne comme script qu'il y a à la ligne 100 ?
Donne nous ce qu'il ya a à la ligne 100 et ce qu'il y a avant aussi
Re: tri + liens + requetes
Posté : 20 sept. 2009, 16:12
par graffx
Desolé j' ai oublié de preciser, la ligne 100 est celle-ci:
$annonces = mysql_fetch_array($sql);
donc le probleme est encore et toujours cette maudite requete :s
Re: tri + liens + requetes
Posté : 20 sept. 2009, 16:25
par sylvaing26
Et pourquoi tu ne reunit pas tout dans ta requete ?
<?php
$id = $_GET['id'];
$pseudo = $_GET['pseudo'];
$sql = "SELECT annonces.id, annonces.auteur, annonces.titre, annonces.cat, annonces.type, annonces.prix, annonces.date, annonces.texte, annonces.photo1, connexion.pseudo, connexion.avatar, connexion.siren FROM annonces
LEFT OUTER JOIN connexion ON annonces.auteur = connexion.pseudo
WHERE annonces.id='$id'";
$annonces = mysql_fetch_array($sql);
?>