Probleme avec requete php SELECT

gillesnas84 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
88av Messages postés 263 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour , je debute dans la programmation php et la manipulation des bdd sous mysql.
J'ai récemment developpé une appli qui gere les envois de courriers dans une agence de voyage.
Now je travaille sur un autre projet et j'ai un souci avec l'affichage d'information stockées dans la bdd.
le code de ma requete ci-dessous me renvooi un tableau vide mais il fonctionne quand je donne une valeur constante à l' 'ID'


<?php
require_once "admin/bcpcnx.php";
//fiche indivIDuelle sommaire

$bcpcnx = new mysqli("localhost", "root", "", "bucrepdb");
if ($bcpcnx->connect_errno) {
echo "Echec lors de la connexion à MySQL: (" . $bcpcnx->connect_errno . ") " . $bcpcnx->connect_error;
}

if (!($stmt = $bcpcnx->prepare("SELECT ID , nom, prenom, genre,email,province, ville,statut FROM individu WHERE ID = '".$_GET['ID']."' "))) {
echo "Echec lors de la préparation de la requête : (" . $bcpcnx->errno . ") " . $bcpcnx->error;
}
if (!$stmt->execute()) {
echo "Echec lors de l'exécution de la requête : (" . $stmt->errno . ") " . $stmt->error;
}

if (!($res = $stmt->get_result())) {
echo "Echec lors de la récupération du jeu de résultats : (" . $stmt->errno . ") " . $stmt->error;

$individu = mysqli_fetch_assoc($res);

mysqli_free_result($bcpcnx,$res);
mysqli_close($bcpcnx);


}

//var_dump($res1->fetch_row());

?>
je serai vraiment reconnaissant si quelqu'un pouvais m'aider a ce sujet
A voir également:

2 réponses

88av Messages postés 263 Date d'inscription   Statut Membre Dernière intervention   7
 
Bonjour,

Dans ta requete, ici :

$bcpcnx->prepare("SELECT ID , nom, prenom, genre,email,province, ville,statut FROM individu WHERE ID = '".$_GET['ID']."' ")


Je croit que le $_GET['ID'] peut faire une injection sql :

https://fr.wikipedia.org/wiki/Injection_SQL

Pour éviter ça, regarde ici :

http://fr.openclassrooms.com/informatique/cours/concevez-votre-site-web-avec-php-et-mysql/construire-des-requetes-en-fonction-de-variables

------------------------
Aussi, pour selectionner tous les champs, au lieu de les lister, tu peut faire :

$bcpcnx->prepare("SELECT * FROM individu WHERE ID = '".$_GET['ID']."' ")




Au revoir
Si vous avez un calcul à faire, vous pouvez aller sur mon site web...
0
HostOfSeraphim Messages postés 6750 Date d'inscription   Statut Contributeur Dernière intervention   1 608
 
Il peut aussi conserver la liste des champs dans son SELECT pour ne pas retourner trop de données... "SELECT *" est une solution de facilité qui alourdit trop souvent les requêtes.
0
88av Messages postés 263 Date d'inscription   Statut Membre Dernière intervention   7
 
D'accord.
0
gillesnas84 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
merci 88av, mais les champs que je mentionne ci-dessus ne sont que quelques uns d'une table "individu" qui en contient 10 de plus !
0
88av Messages postés 263 Date d'inscription   Statut Membre Dernière intervention   7
 
D'accord...
0
HostOfSeraphim Messages postés 6750 Date d'inscription   Statut Contributeur Dernière intervention   1 608
 
Il faudrait tester la requête SQL en l'affichant simplement, pour voir si la variable ID est bien remplie.
0