par
max303 » 03 déc. 2021, 20:48
C'est normal :
$sql="SELECT * FROM categories WHERE id= '.nom_categorie.' ";
si id est un entier ou float, tu peux demander à chercher sans apostrophes, sinon, c'est une chaine, donc tu doit en mettre, puis là tu recherche '.nom_categorie.', soit .nom_categorie., c'est normal qui trouve rien, il te faut mettre ce que tu donne en paramètre à ta fonction, avec le $ (ceci fonctionnerai sans doute: id='$nom_categorie' (attention aux injections ! vérifie ce que l'utilisateur à envoyé comme données, tu peux très bien avoir une personne mal intentionnée qui te POST d'autre valeur que tes nom de catégorie et faire une injection SQL)
J'ai enlevé les apostrophe,mais ça n'a pas marché, serait-ce en bidouillant également et en mettant le $ et en l'enlevant. Peut-être que l'erreur est au niveau du code ou, bien les options values="" ne sont pas reconnus.
Vici ce que j'obtiens comme erreur:
1- Erreur dans la requête SELECT * FROM categories WHERE id= .nom_categorie.
2-Notice: Undefined variable: datas in
3-Integrity constraint violation: 1048 Le champ 'id_categorie' ne peut �tre vide (null)
Code : Tout sélectionner
function getCategories($nom_categorie){
global $bdd;
$sql="SELECT * FROM categories WHERE id= .nom_categorie. ";
try{
$req = $bdd->prepare($sql);
$req->execute();
$datas= $req->fetchAll(PDO::FETCH_ASSOC);
}catch(Exception $e){
echo "Erreur dans la requête " . $sql;
}
// le temps des tests pour voir le résultat
return $datas;
}
Code : Tout sélectionner
if(isset($_POST['formannonce'])) {
$nom_categorie= trim($_POST['categorie']);
$id_categorie= getCategories($nom_categorie);
}
[quote=two3d post_id=469927 time=1638554778 user_id=18101]
C'est normal :
[PHP]$sql="SELECT * FROM categories WHERE id= '.nom_categorie.' ";[/PHP]
si id est un entier ou float, tu peux demander à chercher sans apostrophes, sinon, c'est une chaine, donc tu doit en mettre, puis là tu recherche '.nom_categorie.', soit .nom_categorie., c'est normal qui trouve rien, il te faut mettre ce que tu donne en paramètre à ta fonction, avec le $ (ceci fonctionnerai sans doute: id='$nom_categorie' (attention aux injections ! vérifie ce que l'utilisateur à envoyé comme données, tu peux très bien avoir une personne mal intentionnée qui te POST d'autre valeur que tes nom de catégorie et faire une injection SQL)
[/quote]
J'ai enlevé les apostrophe,mais ça n'a pas marché, serait-ce en bidouillant également et en mettant le $ et en l'enlevant. Peut-être que l'erreur est au niveau du code ou, bien les options values="" ne sont pas reconnus.
Vici ce que j'obtiens comme erreur:
1- Erreur dans la requête SELECT * FROM categories WHERE id= .nom_categorie.
2-Notice: Undefined variable: datas in
3-Integrity constraint violation: 1048 Le champ 'id_categorie' ne peut �tre vide (null)
[code]function getCategories($nom_categorie){
global $bdd;
$sql="SELECT * FROM categories WHERE id= .nom_categorie. ";
try{
$req = $bdd->prepare($sql);
$req->execute();
$datas= $req->fetchAll(PDO::FETCH_ASSOC);
}catch(Exception $e){
echo "Erreur dans la requête " . $sql;
}
// le temps des tests pour voir le résultat
return $datas;
}[/code]
[code]
if(isset($_POST['formannonce'])) {
$nom_categorie= trim($_POST['categorie']);
$id_categorie= getCategories($nom_categorie);
}[/code]