Bonsoir,
J'ai une table categories ou j'ai effectuer des INSERT en dur, comment dois je faire pour les afficher avec php dans un champ " liste déroulante " ??
merci à vous
bonne soirée.
Version imprimable
Bonsoir,
J'ai une table categories ou j'ai effectuer des INSERT en dur, comment dois je faire pour les afficher avec php dans un champ " liste déroulante " ??
merci à vous
bonne soirée.
un truc du genre :
Code:
1
2
3
4
5
6
7
8
9
10
11
12 $sql='SELECT * FROM `auteur_doc` ORDER BY `nom` ASC '; $req=mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); while ($ligne=mysql_fetch_array($req)) { $id=addslashes($ligne['id']); $nom=addslashes($ligne['nom']); $prenom=addslashes($ligne['prenom']); echo '<option value="'.$ligne['id'].'">'.$nom.' '.$prenom.'</option>'; } echo '</select>';
ou avec mysql_fetch_row ->
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 //Connexion à la base de données mysql_select_db("test"); //Tu lances la requête $req=mysql_query("SELECT * FROM categories "); echo '<select name="categories">'."\n"; //Boucle sur la requête //[0] -> =id & [1] -> label while($cat=mysql_fetch_row($req)){ echo '<option value="'.$cat[0].'">'.$cat[1].'</option>'."\n"; } echo '</select>'."\n";
Donne
Code:
1
2
3
4
5
6
7
8 <select> <option value="1">Catégorie1</option> <option value="2">Catégorie2</option> <option value="3">Catégorie3</option> <option value="4">Catégorie4</option> <option value="5">Catégorie5</option> </select>
Bonjour,
J'ai essayer de faire mon formulaire mais pour aller chercher dans ma db les catégorie et me les afficher dans la liste déroulante sa ne fonctionne pas, et je n'arrive pas à insérer le champ catégorie juste en dessou du champ société.
Pouvez vous m'aider ?
Merci à vous
form.php
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 <html> <head> <title>Admin inserer des donnees</title> </head> <body> <div align="center"><h1>Admin</h1></div> <br><div align="center"><b>Enregistré vos données</b></div> <br> <form name="insertion" action="insert.php" method="POST"> <table border="0" align="center" cellspacing="2" cellpadding="2"> <table border="0" align="center" cellspacing="2" cellpadding="2"> <tr align="center"> <input type="hidden" name="id_membres"> <td>Société</td> <td><input type="text" name="societer" size="30"></td> </tr> <tr align="center"> <?php $db = mysql_connect('localhost', 'root', ''); // connexion à la base mysql_select_db('membres',$db); // sélection de la base //Tu lances la requête $req=mysql_query("SELECT * FROM categories "); echo '<select name="categories">'."\n"; //Boucle sur la requête //[0] -> =id & [1] -> label while($cat=mysql_fetch_row($req)){ echo '<option value="'.$cat[0].'">'.$cat[1].'</option>'."\n"; } echo '</select>'."\n"; ?> </tr> <tr align="center"> <td>Contacts</td> <td><input type="text" name="contacts" size="30"></td> </tr> <tr align="center"> <td>Adresse complète</td> <td><input type="text" name="adresses" size="30"></td> </tr> <tr align="left"> <td>Téléphone</td> <td><input type="text" name="telephone" size="16"></td> </tr> <tr align="center"> <td>E-mail</td> <td><input type="text" name="email" size="30"></td> </tr> <tr align="center"> <td>URL</td> <td><input type="text" name="url" size="30"></td> </tr> <tr align="center"> <td colspan="2"><input type="submit" value="insérer"></td> <!--bouton effacer--> <td colspan="2"><input type="reset" value="Effacer"></td> </tr> </table> </form> </body> </html>
Quelle est la structure de ta table ? Parce que là tu pars du principe que : $cat[0] -> id & $cat[1] -> label. C'est ce que t'as donné onirisme, mais il faut peut-être l'adapter à ta table.
j' ai 2 tables la première tbmembres et l'autre table tbcategories dans celle ci il y à déjà mais catégories définie.
tbmembres
idtbmembres
societer
contact
idcategories
ect
....
tbcategories
idcategories
categories
Bonne soirée.
J'ai réussi à inserer des données dans les 2 tb maitenant se que je voudrais faire c'est de pouvoir modifier ou supprimer une ligne dans c'est 2 tb, en sachant qu'il doit supprimer les infos des 2 tb qui correspondent.
Pouvez vous m'aider ?
merci à vous
Donne un peu plus d'infos...
Que souhaites tu faire exactement?
Si tu supprimes ou modifies un enregistrement de la table utilisateur ceci n'a aucune incidence sur la table catégorie
Si tu supprimes une catégorie ceci va avoir une importance :
Il faut que tu intérroges ta base de donnée pour savoir si un utilisateur dépend de cette catégorie. Si ta requête retourne "vai", il faut définir une autre valeur dans cat_id.
Si tu modifies une catégorie, ceci n'a pas d'incidence étant donné que ta tables client est relié à l'id de la catégorie.
Pour modifier un enregistrement -> $req = mysql_query("UPDATE etc...
Pour effacer un enregistrement -> $req=mysql_query("DELETE etc...
Bonjour,
Se que je voudrais faire c'est une zone d'admin qui supprime, modifie ou ajout un enregistrement se que j'ai déja fais c'est l'ajout et l'affichage des enreg.
Pour se qui est de la suppression et modification je n'y parviens pas, enfait dans l'affichage je voudrais avoir à coter de chaque enregistrement un icone afin de pouvoir supprimer rapidement chaque ligne.
insert.php
affich.phpCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 <?php //récupération des valeurs des champs: //idmembres $idmembres = $_POST["idmembres"] ; //societer $societer = $_POST["societer"] ; //idcategories $idcategories = $_POST["idcategories"] ; //contacts $contacts = $_POST["contacts"] ; //adresses $adresses = $_POST["adresses"] ; //telephone $telephone = $_POST["telephone"] ; //email $email = $_POST["email"] ; //url $url = $_POST["url"] ; // On vérifie si les champs sont vides if(empty($societer) OR empty($idcategories) OR empty($email) OR empty($contacts)) { echo '<font color="red">Attention, seul les champs <b>adresse</b>, <b>téléphone</b> et URL peut rester vide !</font>'; } // Aucun champ n'est vide, on peut enregistrer dans la table else { $db = mysql_connect('localhost', 'root', ''); // connexion à la base mysql_select_db('membres',$db); // sélection de la base // on regarde dans la table membres si societer existe déjà $sql = "SELECT idmembres FROM tbmembres WHERE societer='$societer'"; $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); $res= mysql_num_rows($req); if($res!=0) // la societer existe déjà, on affiche un message d'erreur { echo '<font color="red">Désolé, mais cette société existe déjà dans notre base de donnée aucune informations seras modifier !</font>'; mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); } else // la societer n'existe pas, on insère d'abord les infos dans la tb tbmembres { $sql = "INSERT INTO tbmembres (societer, idcategories, contacts, adresses, telephone, email, url) VALUES ('$societer','$idcategories', '$contacts', '$adresses', '$telephone', '$email', '$url')"; mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); //Redirection vers la page d'insertion header('location: form.php'); mysql_close($db); // on ferme la connexion } } ?>
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 <html> <body> <div align="center"><font size="+2"><i>Base de donnée complètes </i></font></div> <br><br> <div align="center"> <?php // information pour la connection à le DB $host = 'localhost'; $user = 'root'; $pass = ''; $db = 'membres'; // connection à la DB $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); mysql_select_db($db) or die ('Erreur :'.mysql_error()); // requête SQL qui compte le nombre total d'enregistrements dans la table et qui //récupère tous les enregistrements //$select = 'SELECT tbmembres.societer, tbmembres.contacts, tbmembres.adresses, tbmembres.telephone, tbmembres.email, tbmembres.url, tbcategories.categories //INNER JOIN tbmembres ON tbcategories.idcategories = tbmembres.idcategories) Order by societer Asc'; $select = 'SELECT m.societer, c.categories, m.contacts, m.adresses, m.telephone, m.email, m.url FROM tbcategories c, tbmembres m WHERE m.idcategories = c.idcategories Order by m.societer Asc'; $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); $total = mysql_num_rows($result); // si on a récupéré un résultat on l'affiche. if($total) { // début du tableau echo '<table bgcolor="#FFFFFF">'."\n"; // première ligne on affiche les titres prénom et surnom dans 2 colonnes echo '<tr>'; echo '<td bgcolor="#669999"><b><u>Société</u></b></td>'; echo '<td bgcolor="#669999"><b><u>Catégories</u></b></td>'; echo '<td bgcolor="#669999"><b><u>Contacts</u></b></td>'; echo '<td bgcolor="#669999"><b><u>Adresse Complètes</u></b></td>'; echo '<td bgcolor="#669999"><b><u>Téléphone</u></b></td>'; echo '<td bgcolor="#669999"><b><u>Adresse E-mail</u></b></td>'; echo '<td bgcolor="#669999"><b><u>URL</u></b></td>'; echo '</tr>'."\n"; // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne. while($row = mysql_fetch_array($result)) { echo '<tr>'; echo '<td bgcolor="#CCCCCC">'.$row['societer'].'</td>'; echo '<td bgcolor="#CCCCCC">'.$row['categories'].'</td>'; echo '<td bgcolor="#CCCCCC">'.$row['contacts'].'</td>'; echo '<td bgcolor="#CCCCCC">'.$row['adresses'].'</td>'; echo '<td bgcolor="#CCCCCC">'.$row['telephone'].'</td>'; echo '<td bgcolor="#CCCCCC">'.$row['email'].'</td>'; echo '<td bgcolor="#CCCCCC">'.$row['url'].'</td>'; echo '</tr>'."\n"; } echo '</table>'."\n"; // fin du tableau. } else echo 'Pas d\'enregistrements dans cette table...'; // on libère le résultat mysql_free_result($result); ?> </div> <br><br> <div align="center"><a href="form.php">Retour au Menu Principal</a></div> </body> </html>
Ok.
Bon, j'ai fais un truc rapide
j'ai tout mis su la même page avec des appels de fonctions
Voici la fonction pour afficher les utilisateurs et créer des liens pour la modification ou la suppression ->
Ceci génére un tableau avec la liste des utilisateurs leur catégories et des liens. Je passe par l'adresse pour appeler mes fonctions (pour l'exemple, je ne sais pas si tu as des pages séparées)Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 function showUsers(){ //Selection de la base de' donnée pour test mysql_select_db("test"); //Requêe MySql pour l'affichage des utilisateurs' $req1= mysql_query("SELECT id, nom, cat_id FROM utilisateurs"); //Affichage des résultats sous forme de tableau echo '<table>'; echo '<tr><td>ID</td><td>Nom</td><td colspan="2">Catégorie</td><td colspan="2">Actions</td></tr>'; while($user = mysql_fetch_row($req1)){ echo '<tr>'; echo '<td>'.$user[0].'</td>'; echo '<td>'.$user[1].'</td>'; echo '<td>'.$user[2].' - '; //ceci permet d'afficher la liste des catégorie id+libellé' $userCat = $user[2]; showCatLib($userCat); echo '</td>'; //Liens pour les fonctions update et delete //j'envoie l'id dans la barre d'adresse echo '<td><a href="test.php?p=update&user_id='.$user[0].'">Modifier</td>'; echo '<td><a href="test.php?p=delete&user_id='.$user[0].'">Supprimer</td>'; echo '</tr>'; } echo '<table>'; }
Si tu cliques sur supprimer, voilà ce que tu as dans la barre d'adresse :
p -> appel de ma fonction (voir plus bas)Code:
1
2 test.php?p=delete&user_id=2
user_id -> l'id de l'utilisateur
Il ne reste plus qu'à récupérer l'id et l'inclure dans une fonction
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 function deleteUser(){ //Récupération de l'id de l'utilisateur' mysql_select_db("test"); $user_id = $_GET['user_id']; //Selection de l'utilisateur à supprimer' $req=mysql_query("SELECT id,nom FROM utilisateurs WHERE \"$user_id\"=id"); $user_name = mysql_fetch_row($req) or die ("ERREUR MySql ! ".mysql_error()); echo 'Vous êtes sur le point de supprimer l\'utilisateur <b>'.$user_name[1].'</b>!<br/> Confirmez pour supprimer l\'utilisateur<br/>'; //Si le formulaire est soumis, on efface l'enregistrement if(isset($_POST['submit'])){ $delUser=("DELETE FROM utilisateurs WHERE \"$user_id\"=id"); mysql_query($delUser) or die ("Erreur MySql ! ".mysql_error()); echo 'Utilisateur supprimé (paix à son âme...)<br/>'; accueilBack(); //Sinon on affiche le bouton de validation }else{ echo '<form name="delUser" action="" method="post">'; echo '<input type="submit" name="submit" value="Confirmer" />'; echo '</form>'; } }
Il y a un message d'avertissement si la validation est cliquée, on supprime l'enregistrement.
Voici les autres fonctions :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 /** * Permet d'appeler les fonctions ' **/ if(isset($_GET['p'])){ $action = $_GET['p']; //modification if($action=="update"){ updateUser(); } //suppression if($action=="delete"){ deleteUser(); } //Si pas de valeur['p'] on affiche la table des utilisateurs }else{ showUsers(); } /** * Affiche les catégories sous forme de select **/ function showCat(){ $showCat=mysql_query("SELECT * FROM categories "); echo '<select name="categories">'; while($cat = mysql_fetch_row($showCat)){ echo '<option value="'.$cat[0].'">'.$cat[1].'</option>'; } echo '</select>'; } /** * Affiche le libellé des catégorie * Voir la fonction showUser **/ function showCatLib($userCat){ //$userCat = $user[2]; $req=mysql_query("SELECT * FROM categories WHERE \"$userCat\"=id"); $catLib=mysql_fetch_row($req) or die ("Erreur MySql ! ".mysql_error()); echo $catLib[1]; }
tu peux faire autrement, par exemple avec des cases à cocher pour selectionner l'enegistrement.
Tu trouveras surement ta réponse dans tout ça, j'imagine que c'est pas parfait mais ça fonctionne.
Mets des images à la place des liens supprimer,modifier.
Adapte en fonction de tes tables, moi j'ai juste id, nom, cat_id
Si tu travaille sur plusieurs pages, il suffit de modifier le lien en mettant le tien
exemple : delete.php?user_id= (id sélectionné)
et de le récupérer
Bonjour,
Super merci bcp !!
Bonne journée.