Page 1 sur 3

Debutant ++

Posté : 02 sept. 2005, 10:00
par davidc
Bonjour,

Je recherche un bout de code pour afficher le contenu d'une table sql dans ma page lorsque je clique sur l'un de mes champs de cette même table qui est lui, affiché en permanence à un autre endroit de ma page.

En fait, la page en question se trouve ici: http://www.samidee.com/radioshow.php (Afficher la playlist et la date lorsque je clique sur le n°.

Merci de votre aide...
David[/url]

Posté : 02 sept. 2005, 10:02
par ouckileou
je n'ai rien compris :lol:

peux-tu expliquer ça :
lorsque je clique sur l'un de mes champs de cette même table
comment cliques-tu sur un champ d'une table ?

Posté : 02 sept. 2005, 10:09
par davidc
Dans ma table en gros j'ai :

- ID
- Une phrase
- N° Mix
- Playlist

Je veux afficher les N° mix sur la droite de ma fenêtre, et lorsque je clique su un numéro, la playlist apparait sur la gauche, tout en laissant les n° mix affichés sur la droite... :roll:

Posté : 02 sept. 2005, 10:11
par ouckileou
c'est beaucoup plus clair ;)

une page en deux parties alors :

1 - listage des MIX
une requête SQL qui va sélectionner toutes les lignes de mix, et les afficher sous forme de liens, vers cette même page, avec comme paramètre dans l'url l'ID du mix

2 - affichage du mix sélectionné
récupération de l'identifiant transmis
une requête SQL qui sélectionne les infos du mix transmis et les affiche

Posté : 02 sept. 2005, 10:16
par davidc
OK. Je pense comprendre.

La phase que je ne pige pas par contre, c'est comment récupérer l'info que j'ai bien cliqué sur tel lien...

Posté : 02 sept. 2005, 10:25
par ouckileou
affiche la liste des mix sous forme de lien, la variable $_SERVER['PHP_SELF'] contient le nom du script courant :
$req = "SELECT ID, nom FROM mix";
$exec = mysql_query($req);

while ($mix = mysql_fetch_array($exec)) {
   echo '<a href="'.$_SERVER['PHP_SELF'].'"?idMix='.$mix['ID'].'">'.$mix['nom'].'</a><br  />';
}
donc quand tu cliques sur un lien tu reviens sur la même page mais avec une variable que tu peux récupérer :
// si $_GET['idMix'] existe, tu la récupères, sinon tu récupères null pour éviter une erreur
$idMix = (isset($_GET['idMix']))?$_GET['idMix']:null;

Posté : 02 sept. 2005, 11:53
par davidc
Merci beaucoup. j'ai pigé pas mal de trucs...

J'ai fait:
<?php include('connection.inc.php'); ?>
<?php
$conn=mysql_connect($host,$user,$password) or die("Impossible de se connecter au serveur MySQL"); 
$bd=mysql_select_db($bdd,$conn) or die("Impossible de se connecter à la base de données"); 
$req= "SELECT id, num_show, baseline, part1, link1, part2, link2 FROM radioshow";
$exec = mysql_query($req);
$exec2 = mysql_query($req);
?>
<?php
			while($radioshow = mysql_fetch_assoc($exec))
    { 
			  echo '<a href="'.$_SERVER['PHP_SELF'].'"?idMix='.$radioshow['id'].'">'.$radioshow['num_show'].'</a><br/>'; 
} 
			
			?>

J'essaie d'afficher maintenant mes différentes variables dans la même page dans la cellule d'à côté, mais ça loose.
<?php
			$idMix = (isset($_GET['idMix']))?$_GET['idMix']:null;
			{
			while($radioshow = mysql_fetch_assoc($exec2)) 
			echo '.$radioshow['baseline'].';
			}
			?>
[/php]

Posté : 02 sept. 2005, 12:08
par ouckileou
utilise 2 requêtes différentes

tu n'as pas besoin de récupérer toutes les infos de chacun des mix pour n'utiliser que l'ID et le nom dans la liste

Posté : 02 sept. 2005, 13:54
par davidc
Je vais essayer. Mais en fait, je cherche a afficher toutes les infos de chacun des mixes...

Je vais recréer une requête et je vais tester comme ça... en tout cas, j'apprends des trucs, c'est cool...

Posté : 02 sept. 2005, 14:06
par ouckileou
Mais en fait, je cherche a afficher toutes les infos de chacun des mixes...
Vraiment ?
ou simplement la liste des titres et toutes les infos d'un seul mix à la fois

c'est la deuxième solution que j'avais compris moi...

Posté : 02 sept. 2005, 14:14
par davidc
En fait, le mix est en 2 parties. Donc sur la page, ça s'afficherait comme ça (le nom des champs dans ma table en rouge):

($baseline)
EMISSION DU xxxxxx n° ($num_show)

($part1)
PART 1:
Titre 1
Titre 2
Titre 3
etc....

($link1)
Telecharger

($part2)
Titre 1
Titre 2
Titre 3
etc...

($link2)
Telecharger

Posté : 02 sept. 2005, 14:29
par ouckileou
ok, mais ça c'est pour un seul mix, sélectionné par l'administrateur

dans la liste par exemple tu n'affiches que la date, sous forme de lien

fais une partie puis l'autre ça sera plus simple

Posté : 02 sept. 2005, 14:44
par davidc
Oui, pardon j'avais pas saisi ta question.

Mais j'ai besoin de récupérer les infos de l'ensemble de ma table pour chaque mix (link, part, baseline...) pour pouvoir les afficher.

Il faut donc que je lui dise que les infos a récupérer et à afficher sont celles qui correspondent à l'ID du mix ?

Tu m'as donné le bout de code pour récupérer la variable :
$idMix = (isset($_GET['idMix']))?$_GET['idMix']:null; 
Ensuite je ne sais pas trop comment m'organiser pour lier les 2 requêtes.

Faut-il que je crée une page PHP juste pour la 2e requête et l'inclure dans la cellule concernée de ma page principale ?

Posté : 02 sept. 2005, 14:54
par ouckileou
tu peux faire tout sur la même page

les deux requêtes ne sont pas réellement liées

mais la 1ière ne prend que des infos mineures, et liste TOUS les mix

la 2ième elle, prend toutes les infos, mais d'un mix précis
mix précis choisi par l'utilisateur et que tu connais grâce à l'identifiant transmis par l'url
donc il te suffit d'insérer cet identifiant dans la requête de sélection

Posté : 02 sept. 2005, 17:18
par davidc
J'ai galéré tout seul pour essayer de comprendre en me baladant sur des sites et en bricolant mon code, mais la, je me suis résigné à faire a nouveau appel à toi...

En fait, ça, ça m'embrouille l'esprit :
$idMix = (isset($_GET['idMix']))?$_GET['idMix']:null; 
J'ai bien ma première requête:
// Requete 1
$req= "SELECT id, num_show FROM radioshow";
$exec = mysql_query($req);
Et le code qui permet d'afficher les id des mixes:
<?php
			// Requête 1 et récupération du lien
			while($radioshow = mysql_fetch_assoc($exec))
    { 
			  echo '<a href="'.$_SERVER['PHP_SELF'].'"?idMix='.$radioshow['id'].'">'.$radioshow['num_show'].'</a><br/>'; 
} 
			?>
Tout ça c'est ok. J'ai bien saisi.

Ensuite, je suis paumé.

J'ai fait ma 2e requête qui me permet d'afficher le détail du mix selectionné:
// Requete 2
$req2= "SELECT * FROM radioshow";
$exec2 = mysql_query($req2);
// SUIS PAS SUR DU TOUT QU'IL FAILLE LE METTRE LA !!!
$idMix = (isset($_GET['idMix']))?$_GET['idMix']:null;
Et le code qui me permet d'afficher le détail :
<?php
				
			echo $radioshow->baseline
			
			?>
Il n'y a que la baseline, je n'ai pas été plus loin puisque ça marche déjà pas avec 1...