Afficher dans la liste les éléments d'une tab
Résolu
Sinistrus
Messages postés
1010
Date d'inscription
Statut
Membre
Dernière intervention
-
Sinistrus Messages postés 1010 Date d'inscription Statut Membre Dernière intervention -
Sinistrus Messages postés 1010 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voici mon code et je sollicite votre aide pour afficher les éléments d'une table dans ma liste déroulante :
Dans le <select> il y a la première ligne "Choisir la nouvelle à supprimer" qui lorsque je l'ajoute comme enregistrement dans ma table, se supprime lorsque je clique sur le bouton supprimer.
Mon problème est que les enregistrements de la table ne s'affichent pas dans ma liste déroulante.
Pouvez-vous m'aider svp ?
Voici mon code et je sollicite votre aide pour afficher les éléments d'une table dans ma liste déroulante :
<?php $delai=0; $url='DernNews.php'; $db = mysql_connect('*****', '*****', '*****'); mysql_select_db('*****',$db); $sql = 'SELECT DATE_FORMAT(DateJour, "%d-%m-%Y à %H:%i:%s") AS DateFr, NewsJour FROM Web_Nouvelles ORDER BY DateFr DESC'; //$sqld= 'SELECT DATE_FORMAT(DateJour, "%d-%m-%Y à %H:%i:%s") AS DateFr, NewsJour FROM Web_Nouvelles ORDER BY DateFr DESC'; mysql_query('SET NAMES utf8'); $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); //Ajout dans la table si bouton "submit" est cliqué if (isset($_POST['button'])) {$add=mysql_query("INSERT INTO Web_Nouvelles SET DateJour=now(), NewsJour='$NewsJour'"); header("Refresh: $delai;url=$url");} //Supprimer dans la table si liste choisie et bouton cliqué if(isset($_POST['envoie'])){$delete = $_POST['delete']; mysql_query("DELETE FROM Web_Nouvelles WHERE NewsJour= '".$delete."' "); header("Refresh: $delai;url=$url");} mysql_close(); ?> <form id="form1" name="form1" method="post" action=""><table width="795" border="0" align="center" cellpadding="0" cellspacing="5"> <tr> <td width="160" valign="top">Supprimer la nouvelle :</td> <td width="620"> <select name="delete" size="5" style="width:100%"> <option>Choisir la nouvelle à supprimer</option> <?php $recherches=mysql_query('SELECT * FROM Web_Nouvelles ORDER BY DateJour DESC');while($applique=mysql_fetch_assoc($recherches)) {?> <option name="name" ><?php echo $applique['NewsJour']; ?></option><?php }?> </select> </td> </tr> <tr> <td> </td> <td><input type="submit" name="envoie" id="envoie" value="Supprimer" /></td> </tr> </table> </form> <?php while($data = mysql_fetch_assoc($req)) {echo '<span class="Description"><b><u>'.$data['DateFr'].' :</u></b></span><br>'.$data['NewsJour'].'<hr>';} ?>
Dans le <select> il y a la première ligne "Choisir la nouvelle à supprimer" qui lorsque je l'ajoute comme enregistrement dans ma table, se supprime lorsque je clique sur le bouton supprimer.
Mon problème est que les enregistrements de la table ne s'affichent pas dans ma liste déroulante.
Pouvez-vous m'aider svp ?
A voir également:
- Afficher dans la liste les éléments d'une tab
- Liste déroulante excel - Guide
- Avis sur samsung galaxy tab a9+ - Accueil - Tablettes
- Liste déroulante en cascade - Guide
- Photoshop elements gratuit - Télécharger - Retouche d'image
- Liste code ascii - Guide
3 réponses
Bonjour,
si ta liste déroulante est vide c'est parce qu'il se produit probablement une erreur lors de la récupération de données en base.
Pour cela je te conseillerais donc d'afficher simplement tes données avant de les mettre dans une liste déroulante.
Ensuite une fois ta liste correctement afficher il te faudra modifier les options qui ne comporte pas d'attribut name car celui ci est sur le select mais des attributs value qui auront pour valeur l'identifiant que tu souhaite utiliser pour supprimer un élément dans ta table.
Dernier point le fait d'autant mélanger le code ne peut être que générateur d'erreur. je te conseillerais donc d'opter pour une solution dans ce style
Adns
si ta liste déroulante est vide c'est parce qu'il se produit probablement une erreur lors de la récupération de données en base.
Pour cela je te conseillerais donc d'afficher simplement tes données avant de les mettre dans une liste déroulante.
Ensuite une fois ta liste correctement afficher il te faudra modifier les options qui ne comporte pas d'attribut name car celui ci est sur le select mais des attributs value qui auront pour valeur l'identifiant que tu souhaite utiliser pour supprimer un élément dans ta table.
Dernier point le fait d'autant mélanger le code ne peut être que générateur d'erreur. je te conseillerais donc d'opter pour une solution dans ce style
<?php echo '<select name="delete"><option value='.$applique['NewsJour'].'>'.$applique['NewsJour'].'</option></select>';
Adns
J'ai juste remplacé :
par
Avec ça il n'ajoute rien à la liste
Mais lorsque je fais :
et là il m'affiche seulement un "S" or je n'ai aucun enregistrement qui débute ou fini par un "S"
<select name="delete" size="5" style="width:100%"> <option>Choisir la nouvelle à supprimer</option> <?php $recherches=mysql_query('SELECT * FROM Web_Nouvelles ORDER BY DateJour DESC');while($applique=mysql_fetch_assoc($recherches)) {?> <option name="name" ><?php echo $applique['NewsJour']; ?></option><?php }?> </select>
par
<?php echo '<select name="delete"><option value='.$applique['NewsJour'].'>'.$applique['NewsJour'].'</option></select>'; ?>
Avec ça il n'ajoute rien à la liste
Mais lorsque je fais :
<?php echo '<select name="delete"><option value='.$sql['NewsJour'].'>'.$sql['NewsJour'].'</option></select>'; ?>
et là il m'affiche seulement un "S" or je n'ai aucun enregistrement qui débute ou fini par un "S"
Merci pour tes conseil Adns, il fonctionne super bien avec ceci :
$sqi = 'SELECT DATE_FORMAT(DateJour, "%d-%m-%Y à %H:%i:%s") AS DateFr, NewsJour FROM Web_Nouvelles ORDER BY DateFr DESC'; $reqt = mysql_query($sqi) or die('Erreur SQL !<br>'.$sqi.'<br>'.mysql_error()); <select name="delete" size="5" style="width:100%"> <?php while($applique=mysql_fetch_assoc($reqt)) {?> <option><?php echo $applique['NewsJour']; ?></option> <?php }?> </select>