recupération données dans formulaire suite à sélection liste

Répondre
kck61
le 10/06/2011 à 12:00
kck61
Bonjour à tous,
alors je me questionne sur un problème de débutant. Je pense que pour vous, ça posera pas de problème.
j'ai une table avec plusieurs champs (appareils, emplacements,etc...)
j'ai une liste déroulante avec tous mes appareils. ce que je veux faire c'est en cliquant sur "envoyer" après avoir sélectionner "PC" dans ma liste(par exemple), elle me renvoi toutes les infos (les autres champs) des appareils nommés "PC" (en gros, je fais un tri).
voici mon code :
<html>
<head>
<title>Parc</title>
</head>
<body>
<form action= 'affichage.php' method="post">

<?php

$db = mysql_connect('localhost', 'root', '');

// on sélectionne la base
mysql_select_db('parc',$db);

//Interroger la base mysql
$sql = 'SELECT distinct Appareil FROM parcinfo ORDER BY Appareil ASC';
$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);

echo '<select name="resultat">';
while ($result = mysql_fetch_assoc($req)) {
echo '<option value="'.$result['Appareil'].'">'.$result['Appareil'].'</option>';

}

?>
<input type="submit" value="resultat">
</form>



</body>
</html>

Voilà, j'ai bien affiché tout mon champs "appareil" dans ma liste.
question, que dois-je mettre dans mon formulaire affichage.php pour obtenir ce résultat ?
Merci d'avance et bonne journée.
LupusMic
le 10/06/2011 à 14:25
LupusMic
Ce n'est pas un tri que tu veux faire. En réalité, tu veux afficher la liste des matériels de ton parc informatique qui correspondent au type sélectionné.

Pour faire ça tu dois :
- récupérer le paramètre HTTP (dans $_REQUEST par exemple) que tu envoie via le formulaire (en passant, ce formulaire devrait être de méthode GET puisque tu accède à une ressource).
- fabriquer la requête SQL de sélection qui va prendre les appareils qui correspondent à cette recherche.

Tu peux t'inspirer de cette discussion pour démarrer.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
kck61
le 10/06/2011 à 14:39
kck61
Merci LupusMic pour cette réponse. Je vais aller lire le post.
ciao
kck61
le 10/06/2011 à 15:51
kck61
alors, dans affichage.php j'ai fait ça (mon form est de method get maintenant) :

$resultat = $_GET['resultat']; 

$sql = "SELECT Emplacement FROM parcinfo Where Appareil Like $resultat";
$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);

après je sais pas trop comment récupérer tout ça mais bon la n'est pas mon seul pb.
il me renvoi directement une erreur SQL sur ma requête. Ai-je fais une erreur de syntaxe ? (la variable $resultat est bien renvoyée)
Merci
kck61
le 14/06/2011 à 08:51
kck61
Salut LupusMic,
voici le jolie message d'erreur qu'il me renvoie :

Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in C:\wamp\www\test\affichage.php on line 16
ArrayArrayArrayArray

smileysmileysmileysmiley
kck61
le 14/06/2011 à 10:33
kck61
en mettant : mysql à la place de mysqli, il me renvoi "Array" (le nombre de "array" est égal au nombre d'appareil)
je continu mes recherches.
LupusMic
le 14/06/2011 à 10:47
LupusMic
J'ai l'habitude d'utiliser l'interface MySQLi car l'interface PHP MySQL est déconseillé depuis des temps immémoriaux. La fonction accepte un ou deux paramètres. Le second paramètre est optionnel si tu n'as qu'une seule connexion MySQL établie.

La fonction que tu dois utiliser pour sécuriser les données que tu insères en base est, dans ton cas, mysql_real_escape_string.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
kck61
le 14/06/2011 à 11:00
kck61
ok. Faudra que je me mette à jour.
Pourrais-tu me dire pourquoi il me retourne "Array" ? un problème dans la boucle while surement !?!
je cherche sur le net mais je voudrais comprendre pourquoi "Array" (littérallement).
Merci encore
kck61
le 14/06/2011 à 11:08
kck61
ça y est ça marche. le résultat affiché dans ma boucle While était mal syntaxé. Va falloir que je fasse un jolie tableau maintenant ;-)
merci encore LupusMic (ça veut pas dire adieu ;-) )
Répondre
LoadingChargement en cours