La communauté ALL HTML c'est 58827 membres à ce jour dont 3 inscrits aujourd'hui et 32 depuis une semaine.

  • imprimer
  • aide

Forum de discussions « PHP - SQL »

Retrouvez les publications relatives à ces discussions dans nos rubriques PHP, SQL.

Affichage par defaut du 1er enregistrement d'une liste déroulante

liste des forums liste des discussions Participer à la discussion

Photo de carinette22 Message publié le lundi 18 août 2008 à 14 h 40 par carinette22.
Bonjour à tous,
Je suis nouvelle et pas très douée en code... donc je compile des programmes que je trouve sur le net...
Et là... je suis coincée. Je résume :
J'ai une liste déroulante alimentée par une base mysql. Si je sélectionne une année, le nom et l'année d'élection des miss s'affichent... Mais je voudrais qu'à l'ouverture de la page, l'année et les noms du dernier enregistrement s'affichent d'emblée sans avoir à cliquer sur "ok"...

voici mon code :

<form method="post">
<span class="Noir">Sélectionnez une année </span>
<select name="choix">

<?
$SQL = "SELECT * FROM miss ORDER BY annee DESC";
$res = mysql_query($SQL);
{
while($val=mysql_fetch_array($res)) {
echo "<option>".$val["annee"]."</option>\n";
}
while ($val = mysql_fetch_array($res))
if ($choix == $val["id"]) {
echo '<option value="' . $val['id'] . '" selected="selected" >' . $val['annee'] . '</option>';
} else {
echo '<option value="' .$val['id'] . '">' . $val['annee'] . '</option>';
}
}
?>
</select>
<input name="submit" type="submit" value="OK" />
</form>

<?php
if ($choix) {
$query = mysql_query("SELECT * FROM miss WHERE annee='$choix';") or die (mysql_error());
$data = mysql_fetch_array($query);
echo '<b>' . $data['annee'] . '</b>' ;
echo "<br>" . 'Miss : ' . '<b>' . $data['lamiss']. '</b>' ."<br>" ;
echo '1ère dauphine : ' . '<b>' . $data['dauphine1']. '</b>' ."<br>" ;
echo '2ème dauphine : ' . '<b>' . $data['dauphine2']. '</b>' ."<br>" ."<br>";
}
?>
J'espère avoir été claire...
Merci par avance de votre aide!
Photo de sprayart Message publié le lundi 18 août 2008 à 15 h 16 par sprayart.
Bonjour,
sur le chargement de la page (événement onLoad) tu récupères lla derniere année enregistrée (select max(annee) from miss) puis tu lances la traitement avec cette valeur . A+
Photo de nours312 Message publié le lundi 18 août 2008 à 16 h 00 par nours312. hé oui
J'ai pas tout compris dans ton code ...? ou veux tu en venir ?



<?
$SQL = "SELECT * FROM `miss` ORDER BY `annee` DESC";
$res = mysql_query($SQL);
$i = 1; // création d'un compteur
{
while($val=mysql_fetch_array($res)) { // une seule fois suffit ;)
if (empty($choix2) && $i == 1){ //si on est sur la première ligne de résultat et que choix2 n'est pas renseigné
$choix2 = $val['annee'];
$i++;
}
if (isset($choix) && $choix== $val["id"]) {
echo '<option value="' . $val['id'] . '" selected="selected" >' . $val['annee'] . '</option>';
} else {
echo '<option value="' .$val['id'] . '">' . $val['annee'] . '</option>';
}
}
echo '
</select>
<input name="submit" type="submit" value="OK" />
</form>
';

if (isset($choix2)) { // il est important de différencier choix1 et choix2 ne contenants pas les mm valeurs ... NON ?
$query = mysql_query("SELECT * FROM `miss` WHERE `annee`=' ".$choix'2." ' ") or die (mysql_error());// attention aux apostrophes
$data = mysql_fetch_array($query);
echo '<b>' . $data['annee'] . '</b>' ;
echo "<br>" . 'Miss : ' . '<b>' . $data['lamiss']. '</b>' ."<br>" ;
echo '1ère dauphine : ' . '<b>' . $data['dauphine1']. '</b>' ."<br>" ;
echo '2ème dauphine : ' . '<b>' . $data['dauphine2']. '</b>' ."<br>" ."<br>";
}
?>

est-ce ce que tu souhaitez ??

BonCode;)
Photo de carinette22 Message publié le lundi 18 août 2008 à 18 h 30 par carinette22.
Merci de vos réponses...
Désolée pour les codes comme je l'ai dit c'est du "repiquage"... et je ne sais pas "coder"

Pour ma base, en fait toutes les données sont enregistrées dans la bases.
Voici la page que je souhaite modifier : http://www.corsofleuri.net/miss.php

Le menu déroulant affiche bien la valeur année "2008" par défaut mais je voudrais qu'à
l'ouverture les données liées à cet enregistrement s'affiche directement... comme si je faisais
"ok" mais sans cliquer dessus... après si l'intenaute veut consulter une autre date, il la sélectionne
dans le menu .
Voilou en espérant avoir été plus claire!

Je pense qu'effectivement je dois récupérer les valeurs de l'enregistrement à l'ouverture de la page
mais je ne sais pas faire.... sic!
En tout cas merci !!!
Photo de nours312 Message publié le lundi 18 août 2008 à 18 h 59 par nours312. hé oui
OK, je vois mieux ;)

il y a un rechargement de page, donc, je suppose que ce que j'ai appelé $chiox2 est $_POST['choix'] ... NON ?

<?
$SQL = "SELECT `annee` FROM `miss` ORDER BY `annee` DESC"; // il semblerait, qu'ici, seul le champs annee t'intéresse
$res = mysql_query($SQL);
$i = 1; // création d'un compteur
{
while($val=mysql_fetch_assoc($res)) { // MYSQL_FETCH_ASSOC retournera uniquement les champs associé (méthode que tu utilises pour lire les résultats, c'est plus léger que mysql_fetch_array
if (empty($_POST['choix']) && $i == 1){ //si on est sur la première ligne de résultat et que choix2 n'est pas renseigné
$choix2 = $val['annee'];
$i++;
} else {
$choix2 = $_POST['choix'];
} // ici, on crée la variable choix2 qui sera lue par ta seconde requete
if (isset($_POST['choix']) && $_POST['choix']== $val["anee"]) {
echo '<option value=" ' . $val["annee"] . ' " selected="selected" >' . $val['annee'] . '</option>'; // dans ton code, je n'ai pas retrouvé la valeur des option ... ? c'est ce qui expique que le menu déroulant n'affiche pas " selected "
} else {
echo '<option value="' .$val['annee'] . '">' . $val['annee'] . '</option>';
}
}
echo '
</select>
<input name="submit" type="submit" value="OK" />
</form>
';
?>

<?
if (isset($choix2)) { // il est important de différencier choix1 et choix2 ne contenants pas les mm valeurs ... NON ?
$query = mysql_query("SELECT * FROM `miss` WHERE `annee`=' ".$choix2." ' ") or die (mysql_error());// attention aux apostrophes
$data = mysql_fetch_assoc($query);
echo '<b>' . $data['annee'] . '</b>' ;
echo "<br>" . 'Miss : ' . '<b>' . $data['lamiss']. '</b>' ."<br>" ;
echo '1ère dauphine : ' . '<b>' . $data['dauphine1']. '</b>' ."<br>" ;
echo '2ème dauphine : ' . '<b>' . $data['dauphine2']. '</b>' ."<br>" ."<br>";
}
?>

ressources :
http://www.php.net/manual/fr/function.mysql-fetch-array.php
http://www.php.net/manual/fr/function.mysql-fetch-assoc.php

BonCode;)
Photo de carinette22 Message publié le lundi 18 août 2008 à 20 h 27 par carinette22.
Merci de ta réponse... j'essaye ça ce soir!
;-)

liste des forums liste des discussions Participer à la discussion

Vous devez obligatoirement vous identifier en tant que membre pour participer à cette discussion.

ACCÉS COMMUNAUTÉ

Rejoignez ALL HTML

Publiez vos articles, actualités, communiqués ... Donnez votre avis, partagez votre réseau, rencontrez d'autres membres et participez à la vie de la communauté.

Les 5 dernières discussions