Choix dans l'affichage

Eléphant du PHP | 257 Messages

06 mai 2006, 20:49

Voilà, bonjour à tous, j'ai un petit souci de rien du tout dans l'affichage de mon répértoire photos. Actuellement l'affichage est mixte féminin-masculin, aussi je souhaiterai partager l'affichage en deux sections, masculin et féminin.
Je pense que tout se passera dans l'url ?!
Dans ma table j'ai un champ "genre" dont la valeur est soit M (masculin) ou F (féminin).
Voici une partie du code (je ne mets que ce qui nous occupe ici) :
<?
include_once("../config/conf.inc.php");

if (!isset($debut)) $debut = 0;
$cfg_nbres_ppage = 10;

$sql  = "SELECT id_photo_choisie, id, autre_experience, agent, type, prenom, ville, cp  FROM membres WHERE id_photo_choisie != '0' ORDER BY prenom ASC"; 
$sql .= ' LIMIT '.$debut.','.$cfg_nbres_ppage;

$base = new class_db($sql);

if ($base->next_record()){
	//requete permettant de recup les infos dans la base de données.
	$id = $base->Record[id];
	$prenom = $base->Record[prenom];
	$ville = $base->Record[ville];
	$cp = $base->Record[cp];
                $agent = $base->Record[agent];
	
	$id_photo_choisie = $base->Record[id_photo_choisie];
		$sql2 = "SELECT extension FROM photo WHERE id_user='$id' AND id ='$id_photo_choisie'";
	$base2 = new class_db($sql2);
	$base2->next_record();
	$type = $base2->Record[extension];

	$base2->free();
	
	$photo1 =  "<a href='../loge/fiche.php?fiche_id=$id' target='blank'>$prenom, $cp<br><br><img src='../loge/photo/$id_photo_choisie.$type' height='150' width='120' border='0'>
</a><br></b>Artiste représenté par :<b><br> $agent";
}
$base->query("SELECT id FROM membres WHERE id_photo_choisie != '0'");
$nbe = $base->num_rows();

$suite = $debut + $cfg_nbres_ppage;
if ($nbe > $suite){
	$suivant = "<a href='photos_comediens.php?debut=$suite'>Page suivante</a>";
}
$prec = $debut - $cfg_nbres_ppage; 
if ($nbe > 0){
	$precedent = "<a href='photos_comediens.php?debut=$prec'>Page précédente</a>";
}
$base->free();

$tablo_asso = array(	"<autre_experience>" => stripslashes($base->Record[autre_experience]),
			"<erreur>" => stripslashes($erreur),
			"<photo1>" => $photo1,
			"<photo2>" => $photo2,
			"<photo3>" => $photo3,
			"<photo4>" => $photo4,
			"<photo5>" => $photo5,
			"<photo6>" => $photo6,
			"<photo7>" => $photo7,
			"<photo8>" => $photo8,
			"<photo9>" => $photo9,
		                "<photo10>" => $photo10,
		                "<suivant>" => $suivant,
	                                "<precedent>" => $precedent
			);
//Appel a la fonction de remplacements.
afficher($tablo_asso,"rep.html");
?>
Merci pour vos solutions
:roll:

Eléphant du PHP | 112 Messages

06 mai 2006, 21:46

Bonjour ! :D

Tu envois M ou F à la page. Enssuite, dans cette page tu ajoute (au niveau de la requete) la sélection du sexe.
//Si pas spécifié, on met M par défaut.
if (!$_request["genre"]) { $genre = "M"; }
else { $genre = $_request["genre"]; }
//Dans la requete:

"... WHERE genre='$genre'...;"

Eléphant du PHP | 112 Messages

06 mai 2006, 21:50

J'ai une question par la même occasion. Y a-t-il un élement pour retourner la valeur dans le if ? Par exemple
$pwet = "Hu";
if ($Pwet) { echo ifvalue(); }

// et ca me fasse un echo Hu

Eléphant du PHP | 257 Messages

06 mai 2006, 21:53

non voici le message d'erreur que g reçois :
Erreur Base de donnée : Invalid SQL: SELECT id_photo_choisie, id, autre_experience, agent, type, prenom, ville, cp FROM membres WHERE id_photo_choisie != '0' ORDER BY genre LIMIT M,0,10 (1064 You have an error in your SQL syntax near 'M,0,10' at line 1)
.


C'est pour cela qu'il fo bien regardé le code que j'ai donné !!

:oops: :cry:

Eléphant du PHP | 112 Messages

06 mai 2006, 21:56

Houla, c'est quoi cette limit? Oo, je te réecris ta requete :
if (!$_request["genre"]) { $genre = "M"; } 
else { $genre = $_request["genre"]; } 

$sql  = "SELECT id_photo_choisie, id, autre_experience, agent, type, prenom, ville, cp  FROM membres WHERE id_photo_choisie != '0', genre ='$genre' ORDER BY prenom ASC";

Eléphant du PHP | 257 Messages

06 mai 2006, 22:01

Houla, c'est quoi cette limit? Oo, je te réecris ta requete :
if (!$_request["genre"]) { $genre = "M"; } 
else { $genre = $_request["genre"]; } 

$sql  = "SELECT id_photo_choisie, id, autre_experience, agent, type, prenom, ville, cp  FROM membres WHERE id_photo_choisie != '0', genre ='$genre' ORDER BY prenom ASC";
toujours po :cry:
voila le message d'erreur :
Erreur Base de donnée : Invalid SQL: SELECT id_photo_choisie, id, autre_experience, agent, type, prenom, ville, cp FROM membres WHERE id_photo_choisie != '0', genre='M' ORDER BY prenom ASC LIMIT 0,10 (1064 You have an error in your SQL syntax near ' genre='M' ORDER BY prenom ASC LIMIT 0,10' at line 1)
.


Regarde bien le code que j'ai posté au début de mon message, parce que il y a deja une limite par page $debut !

:oops:

Mammouth du PHP | 19672 Messages

06 mai 2006, 22:05

L'erreur n'est plus dans la limite mais dans ta clause WHERE :
au lieu de :

Code : Tout sélectionner

...WHERE id_photo_choisie != '0', genre='M' ...
il faut faire :

Code : Tout sélectionner

...WHERE id_photo_choisie != 0 AND genre='M' ...
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 257 Messages

06 mai 2006, 22:07

L'erreur n'est plus dans la limite mais dans ta clause WHERE :
au lieu de :

Code : Tout sélectionner

...WHERE id_photo_choisie != '0', genre='M' ...
il faut faire :

Code : Tout sélectionner

...WHERE id_photo_choisie != 0 AND genre='M' ...
Ok cyrano ça fonctionne :lol:
mais comment afficher maintenant les filles ?

Eléphant du PHP | 112 Messages

06 mai 2006, 22:08

Petite erreur de ma part :(
$sql  = "SELECT id_photo_choisie, id, autre_experience, agent, type, prenom, ville, cp  FROM membres WHERE id_photo_choisie != '0' && genre='$genre' ORDER BY prenom ASC"; 
essayes et dis moi quoi :)

Eléphant du PHP | 257 Messages

06 mai 2006, 22:10

Petite erreur de ma part :(
$sql  = "SELECT id_photo_choisie, id, autre_experience, agent, type, prenom, ville, cp  FROM membres WHERE id_photo_choisie != '0' && genre='$genre' ORDER BY prenom ASC"; 
essayes et dis moi quoi :)
C'est bon mouet ça fonctionne avec AND !!
mais comment afficher maintenant genre: F ????
:cry:

Eléphant du PHP | 112 Messages

06 mai 2006, 22:10

Tu remplace M par F (dans le AND genre='M') :P

Eléphant du PHP | 257 Messages

06 mai 2006, 22:12

Tu remplace M par F (dans le AND genre='M') :P
C'est à dire ?? sinon c'est inversé mais le probleme reste !
N'est-ce pas plutot un probleme d'url ?
:cry: :wink:

Mammouth du PHP | 19672 Messages

06 mai 2006, 22:13

C'est un problème d'assignation de valeur à ta variable $genre tout simplement: si tu assignes "F" ou "M" le résultat sera différent en principe : donc comment fais-tu cette assignation ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 112 Messages

06 mai 2006, 22:14

Si tu as mis
if (!$_request["genre"]) { $genre = "M"; } 
else { $genre = $_request["genre"]; } 
Il te suffit de metre dans l'url :
*.PHP?genre=m
ou
*.PHP?genre=f

Mammouth du PHP | 19672 Messages

06 mai 2006, 22:20

C'est quoi cette utilisation de $_request :shock:

-1- on utilise le moins possible cette variable en dehors du débuggage;
-2- on écrit cette variable en majuscule
-3- on peut même simplifier le code :
au lieu de
//Si pas spécifié, on met M par défaut.
if (!$_request["genre"]) { $genre = "M"; }
else { $genre = $_request["genre"]; } 
on fait :
//Si pas spécifié, on met M par défaut.
$genre = (isset($_POST['genre'])) ? "F" : "M";
Enfin à condition que ce soit envoyé par méthode post bien sur, sinon remplacer par $_GET, mais à éviter aussi quand il est question d'accès à une base de données, principalement pour éviter tout risque d'attaque par injection SQL.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: