parcer par ville

rossignol
Invité n'ayant pas de compte PHPfrance

15 avr. 2011, 13:11

Bonjour

Code : Tout sélectionner

<?php require('../scripts/mysql.inc.php'); dbConnect(); $cs = array('-'); $cn = array(' '); $vil_title = ''.str_replace($cs, $cn, $_GET['vil_title']).''; if ($vil_title == 'Lyon'){$b = '4';} else {$b = '0';} $result = mysql_query( "SELECT C.res_id, res_title, res_cat, res_intro, res_note, res_date, res_auteur, K.vil_id, vil_title, G.user_name, user_prename, user_login FROM res_modusers AS C INNER JOIN ville_cats AS K ON C.".res_cat." = K.".vil_id." LEFT JOIN user AS G ON C.".res_auteur." = G.".user_login." WHERE res_valid = '1' order by res_id DESC limit 60" ) or error( mysql_error() ); ?>
Ca marche cela m'affiche la totalité de mes res_ mais je voudrais parcer par vil_title normalement c'est ca que je devrais ajouter (je l'ai mis en gras) :

Code : Tout sélectionner

AS C INNER JOIN ville_cats AS K ON C.".res_cat." = K.".vil_id." LEFT JOIN user AS G ON C.".res_auteur." = G.".user_login." WHERE res_valid = '1' [b]AND vil_title = '".$vil_title."' [/b] order by res_id DESC limit 60" ) or error( mysql_error() ); ?>
mais cela ne fonctionne pas :non:

Pour info j'ai un .htaccess qui me renomme les url

Code : Tout sélectionner

RewriteRule ^(.+)\.htm$ cats.php?vil_title=$1 [L]
Merci d'avance pour votre aide

Mammouth du PHP | 672 Messages

15 avr. 2011, 13:40

Bonjour.
cela ne fonctionne pas :non:
C'est un peu court...
- Message d'erreur ? Lequel ?
- Ca fonctionne mais le résultat ne corrsepond pas aux attentes ?
- Autre (préciser) ?

Tu peux déjà afficher la requête, voir si elle te semble OK et la passer dans PHPMyAdmin (ou autre)...
   $requete = "SELECT C.res_id, res_title, res_cat, res_intro, res_note, res_date, res_auteur, K.vil_id, vil_title, G.user_name, user_prename, user_login FROM res_modusers
   AS C INNER JOIN ville_cats AS K ON C.".res_cat." = K.".vil_id." LEFT JOIN user AS G ON C.".res_auteur." = G.".user_login." WHERE res_valid = '1'  order by res_id DESC limit 60";
   echo $requete;
   $result = mysql_query ($requete) or error( mysql_error() );
?>
Au passage, c'est quoi le error( mysql_error() ) ? Parce que ce n'est pas standard...

rossignol
Invité n'ayant pas de compte PHPfrance

15 avr. 2011, 15:31

la requête est bonne c'est quand j'ajoute

Code : Tout sélectionner

AND vil_title = '".$vil_title."'
que tout disparait au lieu de m'afficher que les nini fiche de la ville.

J'ai un index.php ou tout apparait

J'essaye d'avoir une page cats.php pour chaque ville pour l'instant elle ne trie pas par ville

Code : Tout sélectionner

<?php require('../scripts/mysql.inc.php'); dbConnect(); $cs = array('-'); $cn = array(' '); $vil_title = ''.str_replace($cs, $cn, $_GET['vil_title']).''; if ($vil_title == 'paris'){$b = '4';} else {$b = '0';} $result = mysql_query( "SELECT C.res_id, res_title, res_cat, res_intro, res_note, res_date, res_auteur, K.vil_id, vil_title, G.user_name, user_prename, user_login FROM res_modusers AS C INNER JOIN ville_cats AS K ON C.".res_cat." = K.".vil_id." LEFT JOIN user AS G ON C.".res_auteur." = G.".user_login." WHERE res_valid = '1' order by res_id DESC limit 60" );
c'est quand j'ajoute

Code : Tout sélectionner

AND vil_title = '".$vil_title."'
entre

Code : Tout sélectionner

WHERE res_valid = '1'
et

Code : Tout sélectionner

order by res_id DESC limit 60" );


que tout disparait sur ma page entre

Code : Tout sélectionner

<?php while ($row = mysql_fetch_array($result)) { $datefr=''.$row['res_date'].''; list($a,$m,$j)=explode("-",$datefr); $date1="$j/$m/$a"; ?>


et

Code : Tout sélectionner

<?php } ?>
Si je ne trouve pas ce qui merde je ne peux pas diviser en catégorie ma base donc page cats.php ne sert à rien


enfin ma page detail.php fonctionne aussi très bien

Invité
Invité n'ayant pas de compte PHPfrance

15 avr. 2011, 18:54

J'ai trouvé c'était les noms composés qui posaient problème

merci macgawel ton code de vérif m'a aidé

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

15 avr. 2011, 22:41

Salut

Je t'invite a utiliser $_GET['vil_truc'] plutot que $vil_truc afin que ton code soit utilisable sur tout les serveurs :)

@+
Il en faut peu pour être heureux ......