Besoin d'aide pour une requete MySQL sous PHP
Dernière réponse : dans Programmation
Bonjour à tous,
Ce que je souhaite, c'est que sur une premiere page (formulaire), on me demande d'entrer un nom.
Puis à partir de ce nom, il m'affiche toutes les informations.
Donc g fait mon formulaire : <input name="nom" type="text">
Voilà, ma requête : $query = "select * from where Salarie NomS like '%".$nom."%'";
Mais il m'affiche les informations que g demandé mais de tout le monde (tous ceux de ma table) au lieu de m'afficher les infos de celui que g demandé.
Donc si quelqu'un pourrait me débloquer!
Merci
Ce que je souhaite, c'est que sur une premiere page (formulaire), on me demande d'entrer un nom.
Puis à partir de ce nom, il m'affiche toutes les informations.
Donc g fait mon formulaire : <input name="nom" type="text">
Voilà, ma requête : $query = "select * from where Salarie NomS like '%".$nom."%'";
Mais il m'affiche les informations que g demandé mais de tout le monde (tous ceux de ma table) au lieu de m'afficher les infos de celui que g demandé.
Donc si quelqu'un pourrait me débloquer!
Merci
Autres pages sur : besoin aide requete mysql php
Lassé par la pub ? Créez un compte
Rebonjour,
Ce que je souhaite maintenant, c'est pouvoir ajouter de nouvelle personne dans ma base de données, mais à partir de php.
- Donc g créé un nouveau fichier "ajout.php".
Dans ce fichier, je fais des cadres pour pouvoir renseigner tous les champs. Question: faut-il renseigner le Numéro de la personne (c'est la clé elle est en auto_increment en MySQL)?
- g créé un fichier "ajout_user".
ma requête : $query = "insert into Salarie values
('".$NS."', '%".$Nom."%', '%".$Prenom."%', '%".$Adresse."%', '".$Age."')";
et g mis ensuite, if ($result)
echo mysql_affected_rows()." personne ajoutée dans la base de données.";
Donc mon problème est que lorsque je rajoute une personne, il me met bien 1 personne ajoutée mais il ne me l'ajoute pas à ma base de données car après je fais ma recherche, et il me mettra O personne trouvée avec ce nom.
Donc si quelqu'un pourrait me trouver mon erreur!
Merci
Ce que je souhaite maintenant, c'est pouvoir ajouter de nouvelle personne dans ma base de données, mais à partir de php.
- Donc g créé un nouveau fichier "ajout.php".
Dans ce fichier, je fais des cadres pour pouvoir renseigner tous les champs. Question: faut-il renseigner le Numéro de la personne (c'est la clé elle est en auto_increment en MySQL)?
- g créé un fichier "ajout_user".
ma requête : $query = "insert into Salarie values
('".$NS."', '%".$Nom."%', '%".$Prenom."%', '%".$Adresse."%', '".$Age."')";
et g mis ensuite, if ($result)
echo mysql_affected_rows()." personne ajoutée dans la base de données.";
Donc mon problème est que lorsque je rajoute une personne, il me met bien 1 personne ajoutée mais il ne me l'ajoute pas à ma base de données car après je fais ma recherche, et il me mettra O personne trouvée avec ce nom.
Donc si quelqu'un pourrait me trouver mon erreur!
Merci
$query = "insert into Salarie set (colonne_nom, colonne_prenom, colonne_adresse, colonne_age) values ('$Nom', '$Prenom', '$Adresse', '$Age')";
comme ça marchera mieux... il ne faut pas mettre les % : les % représentent tous les caractères : quand tu fais une recherche sur %bra% (dans un SELECT), tu cherches tous les noms qui ont "bra" dedans : ça peut être brafond, fabrace, tebra etc...
dans le INSERT, il ne faut pas mettre de %.
ne met pas non plus l'id... mysql s'en charge très bien
pamic a écritJ'ai refait la requete sans le set, ouais les variables sont bonnes($nom=$_POST['nom']).
ça me met bien 1 personne insérée mais ça me l'ajoute pas à ma base de données, ça m'ajoute une ligne vide!
je sais pas koi faire!!
Fais un "echo $query" de ta requête avant de l'exécuter. Une erreur peut être compliquée à voir dans le code, mais évidente quand on voit la requête tele qu'elle est construite ça me met bien 1 personne insérée mais ça me l'ajoute pas à ma base de données, ça m'ajoute une ligne vide!
je sais pas koi faire!!
Bonjour à tous,
Ce sera plus simple comme sa, je vous donne mes progs et vous pourrez me corriger plus facilement et voir ce que j'ai fait ou justement ce que je n'ai pas fait!
Dans mes prog, je ne mets pas le numéro quie est en auto_increment.
- voici "ajout.php"
<html>
<head>
<title>Ajout d'une nouvelle personne</title>
</head>
<body>
<h1>FORMULAIRE</h1>
<form action="ajout_user.php" method="post">
<table border=0>
<tr>
<td>Nom</td>
<td><input type=text name=NomS maxlength=25 size=25><br></td>
</tr>
<tr>
<td>Prénom</td>
<td><input type=text name=PrenomS maxlength=25 size=25><br></td>
</tr>
<tr>
<td>Fonction</td>
<td><input type=text name=Fonction maxlength=25 size=25><br></td>
</tr>
<tr>
<td>Adresse</td>
<td><input type=text name=AdresseS maxlength=25 size=25><br></td>
</tr>
<tr>
<td>Age</td>
<td><input type=text name=AgeS maxlength=25 size=25><br></td>
</tr>
</table>
</form>
<a href="http://127.0.0.1/formulaire.php">Recherche d'une personne</a>
</body>
</html>
- "ajout_user.php"
<html>
<head>
<title>Ajout d'une nouvelle personne</title>
</head>
<body>
<h1>AJOUT</h1>
<?
$NomS = $_POST['NomS'];
$PrenomS = $_POST['PrenomS'];
$Fonction = $_POST['Fonction'];
$AdresseS = $_POST['AdresseS'];
$AgeS = $_POST['AgeS'];
@ $db = mysql_pconnect("localhost", "mon_nom", "password");
mysql_select_db("nom_de_la_table");
$query = "insert into Salarie (NomS, PrenomS, Fonction, AdresseS, AgeS) values ('".$NomS."', '".$PrenomS."', '".$Fonction."', '".$AdresseS."', '".$AgeS."'')";
$result = mysql_query($query);
if ($result)
echo mysql_affected_rows()." personne insérée dans la base de données.";
?>
<br>
<a href="http://127.0.0.1/ajout.php">Nouvel ajout d'une personne</a>
</body>
</html>
Bon j'espere k'avec tout ça, vous voyez mieux, et que vous pourrez me résoudre le problème!
Mon problème est que cela m'insère une ligne vide dans ma base de données, il me donne que le numéro qui est en auto_increment.
Merci d'avance.
Ce sera plus simple comme sa, je vous donne mes progs et vous pourrez me corriger plus facilement et voir ce que j'ai fait ou justement ce que je n'ai pas fait!
Dans mes prog, je ne mets pas le numéro quie est en auto_increment.
- voici "ajout.php"
<html>
<head>
<title>Ajout d'une nouvelle personne</title>
</head>
<body>
<h1>FORMULAIRE</h1>
<form action="ajout_user.php" method="post">
<table border=0>
<tr>
<td>Nom</td>
<td><input type=text name=NomS maxlength=25 size=25><br></td>
</tr>
<tr>
<td>Prénom</td>
<td><input type=text name=PrenomS maxlength=25 size=25><br></td>
</tr>
<tr>
<td>Fonction</td>
<td><input type=text name=Fonction maxlength=25 size=25><br></td>
</tr>
<tr>
<td>Adresse</td>
<td><input type=text name=AdresseS maxlength=25 size=25><br></td>
</tr>
<tr>
<td>Age</td>
<td><input type=text name=AgeS maxlength=25 size=25><br></td>
</tr>
</table>
</form>
<a href="http://127.0.0.1/formulaire.php">Recherche d'une personne</a>
</body>
</html>
- "ajout_user.php"
<html>
<head>
<title>Ajout d'une nouvelle personne</title>
</head>
<body>
<h1>AJOUT</h1>
<?
$NomS = $_POST['NomS'];
$PrenomS = $_POST['PrenomS'];
$Fonction = $_POST['Fonction'];
$AdresseS = $_POST['AdresseS'];
$AgeS = $_POST['AgeS'];
@ $db = mysql_pconnect("localhost", "mon_nom", "password");
mysql_select_db("nom_de_la_table");
$query = "insert into Salarie (NomS, PrenomS, Fonction, AdresseS, AgeS) values ('".$NomS."', '".$PrenomS."', '".$Fonction."', '".$AdresseS."', '".$AgeS."'')";
$result = mysql_query($query);
if ($result)
echo mysql_affected_rows()." personne insérée dans la base de données.";
?>
<br>
<a href="http://127.0.0.1/ajout.php">Nouvel ajout d'une personne</a>
</body>
</html>
Bon j'espere k'avec tout ça, vous voyez mieux, et que vous pourrez me résoudre le problème!
Mon problème est que cela m'insère une ligne vide dans ma base de données, il me donne que le numéro qui est en auto_increment.
Merci d'avance.
Premièrement pour ta page ajout.php tes inputs sont organisés comme cela : <input type=text name=NomS maxlength=25 size=25>.
Pense à toujours mettre les double quillemets comme cela : <input type="text" name="NomS" maxlength="25" size="25">
Deuxièmement j'ai corrigé un peu ton programme :
Modifications que j'ai fait :
- mysql_connect au lieu de mysql_pconnect
- nom de la base de donnée au lieu du nom de la table dans mysql_select_db
- Insert into Salaire (tu avais mis insert into Salarie)
- J'ai enlevé une apostrophe de trop à la fin de ta requête
Pense à toujours mettre les double quillemets comme cela : <input type="text" name="NomS" maxlength="25" size="25">
Deuxièmement j'ai corrigé un peu ton programme :
pamic a écrit- "ajout_user.php"
<html>
<head>
<title>Ajout d'une nouvelle personne</title>
</head>
<body>
<h1>AJOUT</h1>
<?
$NomS = $_POST['NomS'];
$PrenomS = $_POST['PrenomS'];
$Fonction = $_POST['Fonction'];
$AdresseS = $_POST['AdresseS'];
$AgeS = $_POST['AgeS'];
@ $db = mysql_connect("localhost", "mon_nom", "password");
mysql_select_db("ici sa devrait être le nom de la base de données");
$query = "insert into Salaire (NomS, PrenomS, Fonction, AdresseS, AgeS) values ('".$NomS."', '".$PrenomS."', '".$Fonction."', '".$AdresseS."', '".$AgeS."')";
$result = mysql_query($query);
if ($result)
echo mysql_affected_rows()." personne insérée dans la base de données.";
?>
<br>
<a href="http://127.0.0.1/ajout.php">Nouvel ajout d'une personne</a>
</body>
</html>
<html>
<head>
<title>Ajout d'une nouvelle personne</title>
</head>
<body>
<h1>AJOUT</h1>
<?
$NomS = $_POST['NomS'];
$PrenomS = $_POST['PrenomS'];
$Fonction = $_POST['Fonction'];
$AdresseS = $_POST['AdresseS'];
$AgeS = $_POST['AgeS'];
@ $db = mysql_connect("localhost", "mon_nom", "password");
mysql_select_db("ici sa devrait être le nom de la base de données");
$query = "insert into Salaire (NomS, PrenomS, Fonction, AdresseS, AgeS) values ('".$NomS."', '".$PrenomS."', '".$Fonction."', '".$AdresseS."', '".$AgeS."')";
$result = mysql_query($query);
if ($result)
echo mysql_affected_rows()." personne insérée dans la base de données.";
?>
<br>
<a href="http://127.0.0.1/ajout.php">Nouvel ajout d'une personne</a>
</body>
</html>
Modifications que j'ai fait :
- mysql_connect au lieu de mysql_pconnect
- nom de la base de donnée au lieu du nom de la table dans mysql_select_db
- Insert into Salaire (tu avais mis insert into Salarie)
- J'ai enlevé une apostrophe de trop à la fin de ta requête
Dac avec joce sur 2 points:
- le sprintf ne devrait pas etre nécessaire, il y surement un pb dans l'ancienne syntaxe
- le pconnect crée une connexion "persistante" contrairement au connetc, ça marche très bien également, je n'utilise que ça...
- Dac avec ThripS, les guillemets sont très imporatnt dans tes balises HTML
Je me permettrait juste un petit conseil de plus, dans ta série de <tr> et <td>, tu devrais utiliser des tabulations dans ta syntaxe pour la rendre plus lisible, ce sera encore plus vrai si tu utilise des boucles dans d'autres boucle en PHP,
Plus un code est lisible, mieux il marche, vu que les bugs tu les vois dès que tu les écris
- le sprintf ne devrait pas etre nécessaire, il y surement un pb dans l'ancienne syntaxe
- le pconnect crée une connexion "persistante" contrairement au connetc, ça marche très bien également, je n'utilise que ça...
- Dac avec ThripS, les guillemets sont très imporatnt dans tes balises HTML
Je me permettrait juste un petit conseil de plus, dans ta série de <tr> et <td>, tu devrais utiliser des tabulations dans ta syntaxe pour la rendre plus lisible, ce sera encore plus vrai si tu utilise des boucles dans d'autres boucle en PHP,
Plus un code est lisible, mieux il marche, vu que les bugs tu les vois dès que tu les écris
pamic a écrit
En enlevant le @, il me met aucun message d'erreur! il me met bien une personne insérée. il sert à koi le @ ?
En enlevant le @, il me met aucun message d'erreur! il me met bien une personne insérée. il sert à koi le @ ?
Bah faut se renseigner un peu par soi-même parfois
Ca sert à ne pas afficher les messages d'erreur de la fonction. Mais en phase de développement, c'est un peu ridicule. Même plus tard en fait.Ca peut éventuellement servir pour ne pas afficher le pass dans le message d'erreur de la connexion à la bdd, mais il y a une autre méthode plus inteligente pour ça.
Lassé par la pub ? Créez un compte
- Contenus similaires :
- ForumSous requete mysql
- ForumBesoin aide pour correction formulaire php
- ForumRequete delete mysql php
- ForumConseil aide requete sql
- ForumProb de variables php dans requete mysql
- ForumAffichage requete mysql
- ForumPb requete mysql
- ForumAfficher requete mysql
- ForumEcho requete mysql
- ForumIf dans une requete mysql
- Voir plus