Probleme php/MySQL

Fermé
yacleouf Messages postés 438 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 8 juin 2015 - 11 mars 2009 à 13:42
 le père - 11 mars 2009 à 15:29
Bonjour,
tout le monde je dispose de ce code, et mon problème se trouve que enfaite j'essaye de rendre une requête "exploitable" par l'utilisateur à savoir ma requête est un simple SELECT sauf que pour donner l'information à sélectionner je veux que ce soit l'utilisateur qui le fasse, or la sa marche, mais je n'ai pas de retour lorsque je fais mon echo, les champs reste vide.
Si quelqu'un peut m'aider ^^ je l'en remercie d'avance
:D
<?php
// on se connecte à notre base
$base = mysql_connect ('localhost', 'login', 'mdp*');
mysql_select_db ('bdconducteur', $base) ;
?>
<html>
<head>
<TITLE>recuperation de renseignements techniques</TITLE>
</head>
<body>
<form name="formulaire" action="" method="post">
<table>
<tr>
<td>num_code : <input type="text" name="num_code"></td>
</tr>
<td><input type="submit" name="validation" value="Valider"></td>
</table>
</form>
<?php
// lancement de la requête (on impose aucune condition puisque l'on désire obtenir la liste complète des employés)
$variable = mysql_real_escape_string($_POST['num_code']);
$sql = 'SELECT '.$variable.' FROM Renseignement_technique1104';

// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

while ($data = mysql_fetch_array($req)) {
// on affiche les résultats
echo 'Employe numero : '.$data['num_code'].'<br />';
echo 'Est concerné par le Renseignement_technique1104 : '.$data['Renseignement_technique1104'].'<br /><br />';
echo 'Est concerné par le Renseignement_technique1104Ed : '.$data['Renseignement_technique1104Ed'].'<br/><br/>';
echo 'Est concerné par le Renseignement_technique1104ACEG : '.$data['Renseignement_technique1104ACEG'].'<br /><br />';
echo 'Est concerné par le Renseignement_technique1104BDFH : '.$data['Renseignement_technique1104BDFH'].'<br /><br />';

}
mysql_free_result ($req);
mysql_close ();
?>
</body>
</html>

3 réponses

Bonjour

Je crois que tu as un problème dans la requête mysql.
D'après la requête que tu écris, tu extrais un champ (indiqué par $variable) de toutes les lignes de ta table. Or j'ai l'impression que ce que tu voulais en fait, c'était extraire tous les champs d'une seule (ou quelques) ligne(s).

La bonne requête est donc probablement :
$sql = "SELECT * FROM Renseignement_technique1104 WHERE `num_code`='".mysql_real_escape_string($variable)."'";
0
yacleouf Messages postés 438 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 8 juin 2015 39
11 mars 2009 à 15:16
tout d'abord merci de ta réponse
mais enfaite je sais que ma requête ne doit pas s'écrire de ma manière, à vrai dire je veux simplement que se soit l'utilisateur qui définisse le critère pour lancer la requête! d'où le $variable...
0
je sais que ma requête ne doit pas s'écrire de ma manière Alors pourquoi l'as-tu écrite comme ça ?

À l'endroit où tu as mis le $variable, ça ne peut absolument pas être "un critère pour lancer la requête". Ça ne peut être qu'une liste de noms de champs, ou * qui remplace l'ensemble des champs
Mets donc un * dans le champ 'num_code' de ton formulaire pour voir...
0