Pb reuqete sql dans le php
Résolu
anthonyr_25
Messages postés
172
Statut
Membre
-
anthonyr_25 Messages postés 172 Statut Membre -
anthonyr_25 Messages postés 172 Statut Membre -
Bonjour,
J'ai un problème dans ma requète je ne voit pas ou..
Voila mon code :
j'ai une erreur sur le return

A ma ligne 110 j'appele ma function ligne 52, je pense que sa vient peux être du " =: "
J'ai un problème dans ma requète je ne voit pas ou..
Voila mon code :
function getCategory($category){
$sql = 'SELECT * FROM categories WHERE category =:category';
$datas = [':category'=>$category];
return db_One($sql,$datas);
}
j'ai une erreur sur le return

A ma ligne 110 j'appele ma function ligne 52, je pense que sa vient peux être du " =: "
Configuration: Windows / Chrome 101.0.4951.67
A voir également:
- Pb reuqete sql dans le php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Logiciel sql - Télécharger - Bases de données
- Sql (+) - Forum Programmation
- Requete sql pix - Forum PHP
2 réponses
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
bonjour,
peux-tu partager ton code?
peux-tu partager ton code?
Ah.. c'est de ma faute.
Voici le bon code
Voici le bon code
//Fonction permettant d'exécuter des requêtes préparées
function dbQuery($sql,$datas){
global $bdd;
try{
$prep = $bdd->prepare($sql);
$prep->execute($datas);
return $prep;
}catch(PDOException $e){
echo "Erreur : " . $e->getMessage();
}
}
function addProduct($product, $id_size, $id_cat, $id_color){
$sql = 'INSERT INTO products(name, size_id, categories_id, colors_id) VALUES(?, ?, ?, ?)';
$datas =array($product, $id_size, $id_cat, $id_color);
return db_Insert($sql,$datas); // retourne l'ID nouvellement créé ( à condition qu'il soit en auto-incrémenté)
}
il y avais encore un autre petit bug à la ligne 87 il y avais une parenthèse au lieu d'un égal mais maintenant pour le coup c'est bon tout marche c'est magnifique !!
Merci beaucoup
<?php //affichage des erreurs PHP dans la page pour être sûr de ne rien laisser trainer... error_reporting(E_ALL); ini_set('display_errors', true); ini_set('display_startup_errors', true); //connexion à la BDD require_once 'bdd.php'; /**---------------------------------------------------------- * FONCTIONS UTILES POUR MANIPULER LA BDD *-----------------------------------------------------------*/ //Fonction permettant d'exécuter des requêtes préparées function dbQuery($sql,$datas){ global $bdd; try{ $prep = $bdd->prepare($sql); return $prep->execute($datas); }catch(PDOException $e){ echo "Erreur : " . $e->getMessage(); } } //permet de faire une requête SELECT et de retourner le premier jeu de résultat function db_One($sql,$datas=NULL){ $res = dbQuery($sql,$datas); return $res->fetch(); } //permet de faire une requête SELECT et de retourner tous les résultats function db_All($sql,$datas=NULL){ $res = dbQuery($sql,$datas); return $res->fetchAll(); } //Permet de faire une requête INSERT et de retourner l'id créé (si il est en auto-incrément bien entendu..) function db_Insert($sql,$datas=NULL){ global $bdd; $res = dbQuery($sql,$datas); return $bdd->lastInsertId(); } /**---------------------------------------------------------- * FONCTIONS pour gérer les catégories *-----------------------------------------------------------*/ function getCategory($category){ $sql = 'SELECT * FROM categories WHERE category =:category'; $datas = [':category'=>$category]; return db_One($sql,$datas); } function addCategory($category){ $sql = "INSERT INTO categories(category) VALUES (:category)"; $datas = [':category'=>$category]; return db_Insert($sql,$datas); // retourne l'ID nouvellement créé ( à condition qu'il soit en auto-incrémenté) } function getSize($size){ $sql = 'SELECT * FROM size WHERE value =:value'; $datas = [':value'=>$size]; return db_One($sql,$datas); } function addSize($size){ $sql = "INSERT INTO size (value) VALUES (:value)"; $datas = [':value'=>$size]; return db_Insert($sql,$datas); // retourne l'ID nouvellement créé ( à condition qu'il soit en auto-incrémenté) } function getColor($color){ $sql = 'SELECT * FROM colors WHERE color =:color'; $datas = [':color'=>$color]; return db_One($sql,$datas); } function addColor($color){ $sql = "INSERT INTO colors(color) VALUES (:color)"; $datas = [':color'=>$color]; return db_Insert($sql,$datas); // retourne l'ID nouvellement créé ( à condition qu'il soit en auto-incrémenté) } function addProduct($product, $id_size, $id_cat, $id_color){ $sql('INSERT INTO products(name, size_id, categories_id, colors_id) VALUES(?, ?, ?, ?)'); $datas =array($product, $id_size, $id_cat, $id_color); return db_Insert($sql,$datas); // retourne l'ID nouvellement créé ( à condition qu'il soit en auto-incrémenté) } // ------ DEBUT DU TRAITEMENT DU CSV ------------// $result = []; // pour stocker le résultat des insert de produit $row = 0; if (($handle = fopen("chaussures.csv", "r")) !== FALSE) { //on boucle sur le csv .. while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) { $row++; if($row == 1){ continue; } //récupération des données dans le csv $product = !empty($data[0]) ? trim( $data[0] ) : NULL; $category = !empty($data[1]) ? trim( $data[1] ) : NULL; $size = !empty($data[2]) ? trim( $data[2] ) : NULL; $color = !empty($data[3]) ? trim( $data[3] ) : NULL; // On gère les catégories $db_category = getCategory($category); if(empty($db_category)){ //on ajoute la catégorie et on récupère son ID $id_cat = addCategory($category); }else{ $id_cat = $db_category['id']; } $db_size = getSize($size); if(empty($db_size)){ //on ajoute la catégorie et on récupère son ID $id_size = addSize($size); }else{ $id_size = $db_size['id']; } $db_color = getColor($color); if(empty($db_color)){ //on ajoute la catégorie et on récupère son ID $id_color = addColor($color); }else{ $id_color = $db_color['id']; } $result[$product] = addProduct($product, $id_size, $id_cat, $id_color); } fclose($handle); var_dump($result); } ?>mon csv :
mon workbench :
Ajoutes un peu de debug dans la fonction pour voir ce que ça donne
//permet de faire une requête SELECT et de retourner le premier jeu de résultat function db_One($sql,$datas=NULL){ $res = dbQuery($sql,$datas); var_dump(['sql'=>$sql,'datas'=>$datas,'res'=>$res]); return $res->fetch(); }et montres nous ce que ça te donne.
Et puis.. pour qu'on puisse tester , il faudrait que tu nous donnes un DUMP sql ( un export) de ta base de données et un extrait de ton CSV ( mais en format TEXTE .. par en IMAGE pour qu'on puisse copier/coller )
voila ce que sa donne avec le var_dump