[PHP] Afficher valeur a partir zone de liste

Fermé
Alwayz - 20 nov. 2009 à 21:22
 Alwayz - 24 nov. 2009 à 18:14
Bonjour, j'ai besoin d'une aide pour la création de mon site ^^.

Voilà, ce que je cherche à faire c'est afficher un lien de téléchargement à partir d'une zone de liste prédéfinie.
Je m'explique : Une liste de musique est dans un tableau, a chaques musiques est marqué un chiffre (1, 2, 3, ...). Une zone de liste est donc présente pour demander la selection du chiffre. Une fois le chiffre choisi, le lien de téléchargement de la music doit s'afficher en dessous une fois que l'on a valider.

Voilà mon script html pour mon formulaire :
<form action="page5.php" method="post">
<b>Selectionnez le numéro d'une musique :</b> <select name="numéro musique" size="1" >
<option value = "1">1</option>
<option value = "2">2</option>
<option value = "3">3</option>
<option value = "4">4</option>
<option value = "5">5</option>
<option value = "6">6</option>
<option value = "7">7</option>
<option value = "8">8</option>
<option value = "9">9</option>
<option value = "10">10</option>
<option value = "11">11</option>
<option value = "12">12</option>
<option value = "13">13</option>
<option value = "14">14</option>
</select><br />
<input type="submit" value="Lien" />
</form>


puis la fonction pour afficher le lien :
<?php
$numzic='';
$lien='';

mysql_connect("localhost", "sdz", "***");
mysql_select_db("****");

$lien = mysql_query("SELECT lien FROM telechargement WHERE id_music = $numzic");

mysql_close();
?>
<p><strong><?php echo $lien['lien']; ?></strong></p>

Voilà, si ce n'est pas asser claire n'hésiter pas ^^.

7 réponses

Un tres tres grand merci pour ta réponse tres rapide et pertinante. Celà a l'air de marcher, j'essaye d'envoyer le lien via la base de donnée.
Ma table téléchargement contient les champs id_music et lien, j'ai donc essayer la requete sql suivant :

$lien = mysql_query("SELECT lien FROM telechargement WHERE id_music = num_music");

(num_music en rapport avec la variable du formulaire).

Et la je sèche, je ne sais pas comment ajouter une information hors de la BDD dans la requete sql.
1
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
22 nov. 2009 à 14:53
Utilise les fonction print_r($variable) ou var_dump($variable) pour voir le contenu du tableau $monresultat et voir ce qu'il contient.

Sinon dans ta deuxième requête SQL, il vient d'où ce "id_music = $res" ?

Car pour moi il contient le résultat de la dernière requête SQL (la première donc).

Ce que tu dois faire c'est mettre ton $num_zic.

Tu as oublié aussi de mettre un name="num_music" sur le <select> sans quoi tu ne pourra pas récupérer la valeur choisie dans le select dans $_POST['num_music'].
1
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
20 nov. 2009 à 21:26
Change le name="numéro musique" du select de ton formulaire.

Par exemple tu met name="num_music"

Ensuite dans la page5.php il te restera à faire en PHP ceci :
$numzic = 0;
if(!empty($_POST['num_music']))
{
    $numzic = intval($_POST['num_music']);
}

if($numzic > 0)
{
    // le code que tu as déjà fait pour te connecter à ta base de donnée puis récupérer la musique et en faire un lien vient ici.
}


Bonne chance.
0
Je pense que j'ai avancer. Mais le resultat de la recherche ne s'affiche toujours pas.
<?php
$numzic='0';
$lien = ($_POST['lien']);

?>
<form action="page5.php" method="post">
<b>Selectionnez le numéro d'une musique :</b> <select>
<?
mysql_connect("localhost", "sdz", "vivelyon");
mysql_select_db("a2r_production");
$SQL = "SELECT id_music FROM telechargement";
$res = mysql_query($SQL);
while($val=mysql_fetch_array($res))
{
echo "<option>".$val["id_music"]."</option>\n";
}
mysql_close();
?>
</select>

<input type="submit" value="Lien" />
</form>

<b>Voici le lien de téléchargement :</b><div style="width: 500px; height: 20px; border: 2px #000 solid; background-color: #f4f4f4;";>
<?php


mysql_connect("localhost", "sdz", "vivelyon");
mysql_select_db("a2r_production");
$monsql = ("SELECT lien, titre FROM telechargement WHERE id_music = $res");
$monresultat = mysql_query($monsql);
mysql_close();



?>

<p><strong><?php echo stripslashes($monresultat['titre']); ?></strong> : <?php echo stripslashes($monresultat['lien']); ?></p>
</div>

Je ne sais pas ce que je doit ajouter ou retirer pour que mon "lien" s'affiche dans le <div> lorsque je selectionne le chiffre dans la zone de liste et que j'envoie. Help svp
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ah bah oui, faut que je mette id_music = $val alors ? je vais essayer ce que tu m'as dit. merci ^^
0
<?php
$numzic='0';
$lien = ($_POST['lien']);
$titre = ($_POST['titre']);

?>
<form name="form1" action="page5.php" method="post">
<b>Selectionnez le numéro d'une musique :</b> <select name="num_music">
<?
mysql_connect("localhost", "sdz", "***");
mysql_select_db("*****");
$SQL = "SELECT id_music FROM telechargement";
$res = mysql_query($SQL);
while($val=mysql_fetch_array($res))
{
echo "<option>".$val["id_music"]."</option>\n";
}
mysql_close();
?>
</select>

<input type="submit" value="Lien" />
</form>

<b>Voici le lien de téléchargement :
<?php

if(!empty($_POST['num_music']))
{
$numzic = intval($_POST['num_music']);
}

if($numzic > '0')
{


mysql_connect("localhost", "sdz", "******");
mysql_select_db("****");
$monsql = ("SELECT lien, titre FROM telechargement WHERE id_music = $numzic");
$monresultat = mysql_query($monsql);

mysql_close();
}


?>

<p> <?php echo print_r($monresultat); ?></p>


Au moin la, j'ai un resultat qui s'affiche : "Resource id #31". Je sais pas ce que sa veut dire. Et encore moin comment regler le soucis. Le probleme vien t'il de la requete sql ?
0
Pas de réponses ?
0