Problème de mise au point avec appel de fonctions
Re Bonjour,
C'est encore moi le débutant qui souffre.
je n'arrive pas à comprendre l'erreur
Voici le code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Exemple Appel Fonction requête SQL</title>
</head>
<body>
<?php
/* appel de la fonction EXTRACTION DES DONNEES */
$infoID = extraireinfos("1143");
/* RECUPERATION DES DONNEES */
/* Exemple de Lecture des lignes avec Extract */
$ligne = mysqli_fetch_assoc($resultat);
extract($ligne);
if ($Identifiant == $infoID)
{
echo 'Identifiant: $Identifiant';
echo 'Nom: $nom';
echo 'Prénomom: $nom';
}
else
echo 'pas trouvé';
?>
</body>
</html>
<?php
function extraireinfos($Identifiant)
{
$hote = "localhost";
$utilisateur = "root";
$mPasse = "";
$nombase = "Anciens élèves";
$connexion = mysqli_connect($hote, $utilisateur, $mPasse, $nombase) or die ("Connexion au serveur impossible.");
/* Attention le nom de la table doit être mis entre ` ` ce ne sont pas des quotes' '.
Voir si on peut le changer dans le serveur SQL */
$requete = "SELECT nom,prénom,entrée_berthelot,sortie_berthelot FROM `cotisants 2009` WHERE Identifiant='$Identifiant'";
$resultat = mysqli_query($connexion, $requete) or die ("Execution requête SQL impossible");
return mysqli_fetch_assoc($resultat);
}
?> |
et voici l'erreur:
Notice: Undefined variable: resultat in C:\wamp\www\TESTPHP\Fonction Exploitation Requete SQL.php on line 14
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null given in C:\wamp\www\TESTPHP\Fonction Exploitation Requete SQL.php on line 14
Warning: extract() expects parameter 1 to be array, null given in C:\wamp\www\TESTPHP\Fonction Exploitation Requete SQL.php on line 15
Notice: Undefined variable: Identifiant in C:\wamp\www\TESTPHP\Fonction Exploitation Requete SQL.php on line 16
pas trouvé.
Désolé et Merci d'avance pour votre aide au debug.
Conflit entre nom de varibles et champs dans la base
Bonjour,
Après une nuit de sommeil la lumière revient....
J'ai pensé qu'il pouvait y avoir un conflit entre le nom des variables passés en paramètre à l'appel de la fonction et le nom de champ de la BDD.
En fait j'ai changé $identifiant en $Id et ça semble correct maintenant.
J'ai également fait des essais en respectant majuscule et minuscules.
Rien ne change, pas sensible à la casse.
Vous pouvez me confirmer qu'il y avait bien un conflit de nom de variable, curieux non?
voici le nouveau code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Exemple Appel Fonction requête SQL</title>
</head>
<body>
<?php
/* appel de la fonction EXTRACTION DES DONNEES */
/* $Identifiant = "1143" */
$ligne = extraireinfos("1143");
/* RECUPERATION DES DONNEES */
/* Exemple de Lecture des lignes avec Extract */
/* $ligne = mysqli_fetch_assoc($resultat); */
extract($ligne);
/* if ($Identifiant == "1143")
{
*/
/* Il semble qu'on ne peut pas accéder au champ Identifiant */
echo $identifiant, " ";
echo $nom, " ";
echo $prénom, " ";
print_r($ligne);
/*
}
else
echo 'pas trouvé';
*/
?>
</body>
</html>
<?php
function extraireinfos($Id)
{
$hote = "localhost";
$utilisateur = "root";
$mPasse = "";
$nombase = "Anciens élèves";
$connexion = mysqli_connect($hote, $utilisateur, $mPasse, $nombase) or die ("Connexion au serveur impossible.");
/* Attention le nom de la table doit être mis entre ` ` ce ne sont pas des quotes' '.
Voir si on peut le changer dans le serveur SQL */
$requete = "SELECT identifiant,nom,prénom,entrée_berthelot,sortie_berthelot FROM `cotisants 2009` WHERE Identifiant='$Id'";
$resultat = mysqli_query($connexion, $requete) or die ("Execution requête SQL impossible");
return mysqli_fetch_assoc($resultat);
}
?> |
et le résultat:
1143 SOULE Jacques Array ( [identifiant] => 1143 [nom] => SOULE [prénom] => Jacques [entrée_berthelot] => 1953 [sortie_berthelot] => 1960 )