Petit probleme WHERE

Eléphant du PHP | 257 Messages

30 avr. 2006, 23:59

Tu dervait peut être commencer par expliquer cette classe que tu utilises avec les différentes méthodes disponibles.

Il faut être logique... si les méthodes, tel que num_rows(), n'existent pas tu n'auras pas le résultat attendu.

Explique aussi le déroulement que tu attends du script à défaut de savoir le programmer.
Ouai mais justement je n'en sais rien. Qu'entendez vous par classe ?
:cry:
Le déroulement est simple. J'ai des membres qui ont des photos, ils en choisissent une (id_photo_choisie) qui doit s'afficher en miniature dans un sorte de répértoire.
Voilà

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

01 mai 2006, 00:09

Ouai mais justement je n'en sais rien. Qu'entendez vous par classe ?
Ne jamais utiliser de code qu'on ne comprend pas :!:

Comme dans la vie ne jamais s'amuser avec des pétards et autres fusées sans en connaitre les risques d'utilisation :lol:

Une classe, rapidement, c'est ce qu'il y a à l'autre bout de ça:
$base = new class_db();
si tu préfères une grosse fonction qui en comrend plusieurs autres.
Tu dois donc avoir une classe qui s'appel "class_db" avec des méthodes (autres fonctions) à l'interieur et c'est ces méthodes qu'il faut vérifier l'existence par exemple pour num_rows().
Le déroulement est simple. J'ai des membres qui ont des photos, ils en choisissent une (id_photo_choisie) qui doit s'afficher en miniature dans un sorte de répértoire.
Voilà

C'est pas assez...
Les membres arrivent sur une page avec des photos ensuite effetuent leur choix sur clic, champ texte, autre ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 257 Messages

01 mai 2006, 01:07

non non truc, en fait c'est une espace perso qu'ils ont. Ils téléchargent leurs photos (6) pour leur book photo. Ensuite ils choisissent une de ces 6 photos qui se retrouve dans un répértoire et qui sert à cliquer dessus pour voir leur book en entier.
Alors jusqu'à présent je mettais mécaniquement cette photo choisie dans ce répértoire.
Ce que je voudrai c'est que cela soit fait automatiquement.
:cry: :cry:
J'espère avoir été clair :oops:

ViPHP
ViPHP | 2144 Messages

01 mai 2006, 10:43

Je comprends pas pourquoi la déplacée ? si on a le nom du fichier ?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

01 mai 2006, 12:18

J'y comprend rien :lol:

Mais tu ne réponds que partiellement aux questions... Que contient cette classe "class_db" ?

De plus si tu fait un choix d'une photo ($id_photo_choisie) c'est plutôt logique que les autres ne s'affichent pas, non ?

si tu veux que toutes les photos s'affichent tu dois boucler sur la table contenant ces noms de fichiers.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 257 Messages

01 mai 2006, 21:02

J'y comprend rien :lol:

Mais tu ne réponds que partiellement aux questions... Que contient cette classe "class_db" ?

De plus si tu fait un choix d'une photo ($id_photo_choisie) c'est plutôt logique que les autres ne s'affichent pas, non ?

si tu veux que toutes les photos s'affichent tu dois boucler sur la table contenant ces noms de fichiers.
CHaque photo choisie par le membre pour être affichée en présentation de son espace privé a un id_photo_choisi. Par exemple Jean choisi dans son book la photo X qui ainsi prend le id_photo_choisi : 100, Pierre choisi dans son book la photo Y qui ainsi prend le id_photo_choisi : 120 ... Ce sont ces photos choisies qui s'affichent dans la galerie à cliquer pour visiter le cv du membre ! Pour l'instant seul s'affiche une photo, disons la photo id_photo_choisi : 100 !!!
C'est mieux ?
:cry: :cry:

Mais, mais je ne sais pas ce que contient cette "class_db" !! comment puis je le savoir ? Comment puis je te le dire ? Je ne sais po :oops: je ne suis pas assez calé pour ça ! :oops: :cry:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

01 mai 2006, 21:55

Mais, mais je ne sais pas ce que contient cette "class_db" !! comment puis je le savoir ? Comment puis je te le dire ? Je ne sais po :oops: je ne suis pas assez calé pour ça ! :oops: :cry:
Tu dois inclure un fichier qui contient cette classe (script)

On va y aller pas à pas.

Tu as cette requete:
$base2 = new class_db("SELECT id_photo_choisie, prenom, ville, cp FROM membres"); 
la tu séléctionnes les données des membres avec l'id de leur photo choisie.

Puis cette requete:
$base = new class_db("SELECT extension FROM photo where id='$id_photo_choisie'");
qui séléctionne les extensions de la photo du membre.

à aucun moment tu demandes d'afficher toutes les images que contient le "book" d'un membre. Ou sont stockées les images du "book" d'un membre ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 257 Messages

01 mai 2006, 22:33

il ne s'agit pas d'afficher toutes les photos du book du membre !!! Seulement La photo choisie par le membre parmis les 6 qu'il a dans son book. Cette photo choisie devient ainsi id_photo_choisie.

Que dois je te montrer ? un script en particulier ?

ViPHP
ViPHP | 2144 Messages

01 mai 2006, 23:30

Avant de vouloir utiliser des classes toutes faites pour accéder à la base de donnée, il me paraitrait nécessaire de prendre le temps de comprendre ce qui se passe concrétement lorsqu'on réalise une commande sur une base de donnée.
Je ne saurais trop te conseiller de lire le tutorial sur l'interfacage php/mysql et sur le sql en général (=> google)

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

02 mai 2006, 00:11

il ne s'agit pas d'afficher toutes les photos du book du membre
Seul s'affiche la vignette de la photo avec le ID 1, comment faire pour afficher toutes les photos vignettes ?
Et au final alors ?

Il faut boucler sur quelque chose un retour de requete. Si la proposition de Cyrano ne donne rien c'est peut être parceque tu as adapté sans comprendre encore une fois.

A aucun moment il n'y a d'affichage dans la boucle tu n'auras donc jamais rien à l'écran.

Cherche la ligne qui affiche (en principe explicite dans ton code pompé :lol: )

Il faut être logique et le déroulement vient de lui même.

Je suis du même avis qu'iclo tu ne peux éternellement utiliser des codes tout fait sans vraiment les comprendre.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 257 Messages

02 mai 2006, 00:50

il ne s'agit pas d'afficher toutes les photos du book du membre
Seul s'affiche la vignette de la photo avec le ID 1, comment faire pour afficher toutes les photos vignettes ?
Et au final alors ?

Il faut boucler sur quelque chose un retour de requete. Si la proposition de Cyrano ne donne rien c'est peut être parceque tu as adapté sans comprendre encore une fois.

A aucun moment il n'y a d'affichage dans la boucle tu n'auras donc jamais rien à l'écran.

Cherche la ligne qui affiche (en principe explicite dans ton code pompé :lol: )

Il faut être logique et le déroulement vient de lui même.

Je suis du même avis qu'iclo tu ne peux éternellement utiliser des codes tout fait sans vraiment les comprendre.
Oui bien sûr je comprends. Aussi je vais lire le tuto et refaire le code. On verras bien !
:cry:

Eléphant du PHP | 257 Messages

02 mai 2006, 05:05

Bon !
Ok après moultes essais j'y suis arrivé :lol: . Il est 5h 08 du mat !! J'ai refais mon code et apparement ça fonctionne très bien. :wink:
Mais je n'arrive pas à afficher le prenom qui va avec la photo. En fait il m'affiche n'importe koi comme prenom !! Donc il s'agit de préciser, mais comment héhé ! Le principe vous me l'avez deja expliqué ...
<?
include_once("../config/conf.inc.php");
if (!isset($debut)) $debut = 0;
$cfg_nbres_ppage = 10;
$sql  = "SELECT id_photo_choisie, id, prenom, type FROM membres WHERE id_photo_choisie != '0'"; 
$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];
	$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'><img src='../loge/photo/$id_photo_choisie.$type' height='150' width='120' border='0'></a>";
}
if ($base->next_record()){
	//requete permettant de recup les infos dans la base de données.
	$id = $base->Record[id];
	$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();
	$photo2 = 
"<a href='../loge/fiche.php?fiche_id=$id'><img src='../loge/photo/$id_photo_choisie.$type' height='150' width='120' border='0'></a>"; 
}
if ($base->next_record()){
	//requete permettant de recup les infos dans la base de données.
	$id = $base->Record[id];
	$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();
	$photo3 = 
"<a href='../loge/fiche.php?fiche_id=$id'><img src='../loge/photo/$id_photo_choisie.$type' height='150' width='120' border='0'></a>";
}
if ($base->next_record()){
	//requete permettant de recup les infos dans la base de données.
	$id = $base->Record[id];
	$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();
	$photo4 = 
"<a href='../loge/fiche.php?fiche_id=$id'><img src='../loge/photo/$id_photo_choisie.$type' height='150' width='120' border='0'></a>";
}
if ($base->next_record()){
	//requete permettant de recup les infos dans la base de données.
	$id = $base->Record[id];
	$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();
	$photo5 = 
"<a href='../loge/fiche.php?fiche_id=$id'><img src='../loge/photo/$id_photo_choisie.$type' height='150' width='120' border='0'></a>";
}
if ($base->next_record()){
	//requete permettant de recup les infos dans la base de données.
	$id = $base->Record[id];
	$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();
	$photo6 = 
"<a href='../loge/fiche.php?fiche_id=$id'><img src='../loge/photo/$id_photo_choisie.$type' height='150' width='120' border='0'></a>";
}
if ($base->next_record()){
	//requete permettant de recup les infos 
dans la base de données.
	$id = $base->Record[id];
	$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();
	$photo7 = 
"<a href='../loge/fiche.php?fiche_id=$id'><img src='../loge/photo/$id_photo_choisie.$type' height='150' width='120' border='0'></a>";
}
if ($base->next_record()){
	//requete permettant de recup les infos dans la base de données.
	$id = $base->Record[id];
	$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();
	$photo8 = 
"<a href='../loge/fiche.php?fiche_id=$id'><img src='../loge/photo/$id_photo_choisie.$type' height='150' width='120' border='0'></a>";
}
if ($base->next_record()){
	//requete permettant de recup les infos dans la base de données.
	$id = $base->Record[id];
	$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();
	$photo9 = 
"<a href='../loge/fiche.php?fiche_id=$id'><img src='../loge/photo/$id_photo_choisie.$type' height='150' width='120' border='0'></a>";
}
if ($base->next_record()){
	//requete permettant de recup les infos dans la base de données.
	$id = $base->Record[id];
	$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();
	$photo10 = "<a 
href='../loge/fiche.php?fiche_id=$id'><img src='../loge/photo/$id_photo_choisie.$type' height='150' width='120' border='0'></a>";
}
$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'>Suivant</a>";
}
$prec = $debut - $cfg_nbres_ppage; 
if 
($prec > 0){
$precedent = "<a href='photos_comediens.php?debut=$suite'>Suivant</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, "<prenom>" => $prenom, "<suivant>" => $suivant, "<precedent>" => $precedent
);
//Appel a la fonction de remplacements.
afficher($tablo_asso,"rep.html");
?>

Eléphant du PHP | 257 Messages

02 mai 2006, 08:02

je vé mettre résolu ici.
:wink: