Debutant ++

Eléphanteau du PHP | 38 Messages

02 sept. 2005, 10:00

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]

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

02 sept. 2005, 10:02

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 ?

Eléphanteau du PHP | 38 Messages

02 sept. 2005, 10:09

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:

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

02 sept. 2005, 10:11

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

Eléphanteau du PHP | 38 Messages

02 sept. 2005, 10:16

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...

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

02 sept. 2005, 10:25

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;

Eléphanteau du PHP | 38 Messages

02 sept. 2005, 11:53

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]

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

02 sept. 2005, 12:08

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

Eléphanteau du PHP | 38 Messages

02 sept. 2005, 13:54

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...

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

02 sept. 2005, 14:06

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...

Eléphanteau du PHP | 38 Messages

02 sept. 2005, 14:14

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

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

02 sept. 2005, 14:29

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

Eléphanteau du PHP | 38 Messages

02 sept. 2005, 14:44

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 ?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

02 sept. 2005, 14:54

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

Eléphanteau du PHP | 38 Messages

02 sept. 2005, 17:18

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...