Probleme d'insertion

Eléphant du PHP | 257 Messages

02 mai 2006, 08:03

Voilà j'y suis donc arrivé le script fonctionne pour les photos.
Mais comment faire pour afficher le prénom avec les photos ?
<?
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");
?>

Mammouth du PHP | 19672 Messages

02 mai 2006, 08:09

alexdarcy, si tu posais intelligemment ta question, tu obtiendrais certainement de meilleures réponse, ou plus probablement, tu réaliserais que tu n'as pas besoin de poser la question du tout... Un problème bien posé, c'est un problème bien compris et donc aux 3/4 résolu.

Là, tu envoies une question et 200 lignes de code qu'il va falloir analyser pour comprendre le lien avec la question: c'est ton rôle de faire l'analyse de ton propre code. Tu sais ce que fait ton code, tu sais où et comment sont stockées tes données, tu sais comment les récupérer et tu sais ce que tu veux obtenir.

Partant de là, réfléchis et sois logique : tu veux afficher une donnée précise : donc demande-toi comment l'extraire, et où dans ton code doit s'insérer l'instruction pour l'afficher dans ta page.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 257 Messages

02 mai 2006, 08:13

Justement Cyrano je ne sais pas ou insérer ces lignes.
Mais la question est simple, le script affiche la photo de membres, (photo clicable vers leur espace privé), et je veux également afficher en bas de leur photo le prenom du membre à qui appartient la photo !

Si par exemple j'insère ceci :
$prenom = $base->Record[prenom];
eh bien le prenom ne correspond pas avec la photo.
Pourtant "prenom" est bien sélectionné dans la table "membres" !
:cry: :oops:
Modifié en dernier par alexdarcy le 02 mai 2006, 08:22, modifié 1 fois.

Mammouth du PHP | 19672 Messages

02 mai 2006, 08:22

Il y a une chose que tu ne réalises pas bien : tu fais afficher une page avec ce code : tu as donc forcément un ordre dans l'ajout des éléments qui vont constituer la page HTML qui sera envoyé vers le navigateur de l'internaute. Dans ce code html, j'espère que tu sais où tu veux insérer cet élément supplémentaire. Donc, il te suffit de rajouter l'instruction dans ton code PHP à l'endroit correspondant.

Est-ce que ça ne te semble pas évident ?

Oui, ta question est simple, pour toi : parce que tu connais ton propre code et pour que ce soit simple pour un autre, il faudra qu'il analyse le fonctionnement de ton code pour en saisir le déroulement. Pour ma part, je n'ai pas envie de me farcir 200 lignes de code. Imagine si chaque posteur faisait la même chose, ce forum serait illisible.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 257 Messages

02 mai 2006, 08:26

Je crois qu'il n'y a pas besoin de se farcir les 200 lignes .. Le code est simple pour quelqu'un qui s'y connait, non ? et il verra de suite ce qui cloche. Non ?
J'ai travaillé sur ce code toute la nuit, et j'ai ce petit probleme d'insertion, c'est tout.
C'est pas la peine de me crier dessus :cry: :cry:
:oops: :oops:

Mammouth du PHP | 19672 Messages

02 mai 2006, 08:52

Je ne te crie pas dessus, j'essaye de te faire réaliser que tu es parfaitement capable de trouver la solution toi-même.

Bon, on va commencer par simplifier un peu : Pourquoi créer 10 variables $photo1, $photo2, etc... et répéter autant de fois le code ? Utilise un tableau à la place : Si dans ta base tu n'as que trois lignes, tu auras trois lignes de bonnes et des messages d'erreur pour toutes les autres.

Simplifion un peu : je te laisse ensuite avancer un peu dans cette direction, tu vas y arriver très bien: regarde:
<?php
include_once("../config/conf.inc.php");
if (!isset($debut)) $debut = 0;
$cfg_nbres_ppage = 10;
$sql  = "SELECT id_photo_choisie, id, prenom, type, extension ".
        "FROM membres, photo ".
        "WHERE id_photo_choisie != '0' ".
        "AND id = id_user".
        " LIMIT ".$debut.",".$cfg_nbres_ppage;
$base = new class_db($sql);
$photo = array();
while(($ligne = $base->next_record()) != false)
{
    $photo[] = "<a href=\"../loge/fiche.php?fiche_id=". $ligne['id'] ."\"><img src=\"../loge/photo/". $ligne['id_photo_choisie'].$ligne['extension'] ."\" height=\"150\" width=\"120\" border=\"0\"></a>";
}
//... etc...
Tu vois, au lieu de nommer spécifiquement chaque variable et de refaire une requête par photo, je fais une jointure au départ et une boucle pour créer tous mes liens. Essaye d'assimiler le fonctionnement et reviens ensuite si tu as des difficultés.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 257 Messages

02 mai 2006, 09:50

ouh la, le machin ne trouve plus la base ...

Je cherche toujours où insérer ce fichu
$prenom = $base->Record[prenom];
ça m'affiche un prénom au hasard ! Je dois lui donner des instructions plus claires afin qu'il trouve avec quelle photo va le prenom - je le sais - mais où et comment ?

:cry:

Mammouth du PHP | 19672 Messages

02 mai 2006, 09:55

C'est quoi ta classe d'accès aux données au juste ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 257 Messages

02 mai 2006, 10:14

C'est quoi ta classe d'accès aux données au juste ?
je ne sais pas cyrano ! Classe d'accès ? veut dire quoi ?
Est-ce là dedans :
<? 
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]; 
    $prenom = $base->Record[prenom];
    $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>"; 
} 

Mammouth du PHP | 19672 Messages

02 mai 2006, 10:18

Non, tu as un fichier avec une class qui se nomme class_db : d'où sort cette classe. Visiblement, tu l'utilises sans savoir vraiment t'en servir et le problème c'est que sans laconnaître ni en connaître les méthodes, je ne eux pas t'indiquer quelle méthode utiliser pour récupérer tes données.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 257 Messages

02 mai 2006, 10:25

Non, tu as un fichier avec une class qui se nomme class_db : d'où sort cette classe. Visiblement, tu l'utilises sans savoir vraiment t'en servir et le problème c'est que sans laconnaître ni en connaître les méthodes, je ne eux pas t'indiquer quelle méthode utiliser pour récupérer tes données.
Comment pourrais je la trouver cette classe ? Donne moi peut etre une piste. Dans le fichier config ?
Sinon bah tant pis, je vais chercher ..
:cry: :cry:

Mammouth du PHP | 19672 Messages

02 mai 2006, 10:30

Dans tes fichiers, tu en as un qui commence comme ceci:
<?php
class class_db
{
    //... reste du code avec entre autres choses :
    function class_db($sql)
    {
        //....etc...
    }
}
C'est ce qu'on appelle une classe et c'est de la Programmation Orientée Objet (POO)

C'est ce qui te permet d'utiliser cette syntaxe-ci:
<?php
//....
$base = new class_db($sql);
//...
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 257 Messages

02 mai 2006, 19:38

Bon beh je n'ai tjrs po trouver; ça me sort toujours de la table un prénom au hasard qui ne correspond pas à la photo.
Je ne sais pas comment préciser ! Je pense qu'il faudrait joindre au <prenom> le id correspondant à la photo, mais ça .....
:cry: :cry:

Je pense que c'est ici, si quelqu'un a une solution concrete :
<? 
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>"; 
} 
//etc...

ViPHP
ViPHP | 2144 Messages

02 mai 2006, 23:24

Comme déja dit dans un autre poste, on commence par apprendre à utiliser un couteau à couper le beurre avant de vouloir utiliser une tronconneuse.

Si tu veux apprendre le php, commence à la base, à savoir programmer des trucs simples, toi même, et pas en essayant d'assembler des bouts de code glanés à gauche et à droite. (Et surtout pas en utilisant d'entrée de jeu de l'orienté objet) Et surtout on prend le temps qu'il faut,, quand on apprend un langage, on y met le temps nécessaire.
Le fait que tu y ais passé le nuit, n'est pas une excuse, si tu n'as plus les idées claires fait une pause va prendre l'air, tout te paraitra plus simple.

Eléphant du PHP | 257 Messages

03 mai 2006, 00:28

Moui merci iclo pour ces conseils, comment dirais-je ... judicieux ! Je vais donc faire une pause et ... et .... me reposer !
Seulement une chose encore avant de m'allonger, ma demande est relativement simple - enfin je pense, à moins qu'elle ne soit compliquée, très compliquée !

Bien bonne nuit iclo
:cry: