Allo,

j'ai une page profile.php dont je récupère le nom et id de la personne de ma table "artiste" par une session

if (isset($_SESSION'MM_Username'])) {
$colname_artiste = $_SESSION'MM_Username'];

Ca fonctionne très bien, je réussi a récupérer le id, nom et tout les infos

la ou j'ai de la misère, c'est que dans la même page, je veux faire afficher
les posts de ce user provenant d'une autre table nommé "album".
artiste_id (qui est la relation id de ma premiere table.

Comment je dois faire????? j'aimerai le faire par session car je nr veux pas d'adresse php?id=$id mais simplement profile.php

Merci!

7 réponses


Je ne suis pas sur mais grossierement:
Dans ta session tu mets l'ID de l'username -> $id_artiste = $_SESSION'ID_Username'];
select('album.*')
where('album.artiste_id', $id_artiste)
join('ma_table_user', 'ma_table_user.artiste_id = album.artiste_id', 'left')
ensuite tu récupère le tout "get"
dans le "select('album.*')" tu peu rajouté les élements que tu souhaite recuperer comme le nom de l'artiste, son mail etc...
select('album.*, ma_table_user.username, ma_table_user.mail')

En esperants que cela puisse t'aider.

Hello,

Dans ton cas, je passerai par une session sous forme de tableau associatif :

$_SESSION'ARTISTE']'ID'];

$_SESSION'ARTISTE']'NOM'];

$_SESSION'ARTISTE']'PRENOM'];

....

Tu sérialises tout ça et tu désérialises dans la page profil (quoi que pas la peine de sérialiser un tableau associatif, c'est valable que pour les objets) :)

Pour la requete SQL, tu peux faire un truc comme ça :

$sql="Select * from album as al
inner join artiste as ar on ar.id_artiste = al.id_artiste 
and ar.id_artiste =".$_SESSION'ARTISTE']'ID']."";

Après tu fais ce que tu veux des résultats ;)

Coconut
Auteur

ca bien du bon sens. Ca me donne une erreur par exemple sur la syntax mysql :(
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''
c'est ma ligne--
$query_album="SELECT * FROM album AS al inner join artiste AS ar on ar.artiste_id = al.artiste_id AND ar.artiste_id =".$_SESSION'artiste']'id']."";

$sql="Select * from album as al
inner join artiste as ar on ar.id_artiste = al.id_artiste 
where ar.id_artiste =".$_SESSION'ARTISTE']'ID']."";

et si ça merde encore :

$sql="Select * from album as al

inner join artiste as ar on ar.id_artiste = al.id_artiste

where ar.id_artiste =".$_SESSION'ARTISTE']'ID'];

J'espère ne pas avoir dis trop d’âneries sur le coup :)

Coconut
Auteur

rien a faire lol je vais aller dormir un peu...je vois plus rien haha
voici le code au complet
<?php require_once('Connections/connexion.php');
$colname_artiste = "-1";
if (isset($_SESSION'MM_Username'])) {
$colname_artiste = $_SESSION'MM_Username'];
}
$_SESSION'artiste']'id'];
$_SESSION'artiste']'nom'];
$_SESSION'artiste']'prenom'];

mysql_select_db($database_connexion, $connexion);
$query_album=("SELECT * FROM album AS inner join artiste AS ar on ar.artiste_id = al.artiste_id WHERE ar.artiste_id =".$_SESSION'artiste']'id']);
$album = mysql_query($query_album, $connexion) or die(mysql_error());
$row_album = mysql_fetch_assoc($album);
$totalRows_album = mysql_num_rows($album);
?>

OK, je me suis peut être mal exprimé :)

les champs :

$_SESSION'artiste']'id'];
$_SESSION'artiste']'nom'];
$_SESSION'artiste']'prenom'];

doivent être renseignés par tes soins lors de la connexion de l'utilisateur (au même moment que tu renseignes $_SESSION'MM_Username']).

Une fois cela fait, tu ne les intègres pas dans ta page (en gros, tu les vires, sauf pour la requête SQL).

Par ailleurs, ton Session_Start() tu le fais où ?

Coconut
Auteur

tu as raison, escuse, j'ai manqué un bout hier.

j'ai ce bout de code dans chaque page pour l'identifitation

session_start();

$colname_artiste = "-1";
if (isset($_SESSION'MM_Username'])) {
$colname_artiste = $_SESSION'MM_Username'];
}
mysql_select_db($database_connexion, $connexion);