Rectifications avec PDO
abdoulayecoumba
-
DelNC Messages postés 2360 Statut Membre -
DelNC Messages postés 2360 Statut Membre -
Bonsoir finalement je suis allé me replonger dans les cours disponibles sur le net traitant PDO notamment de la connexion aux bases de données de la gestion des erreurs avec je rappelle j'ai créé une base de données dénommée ''amateurs'' et qui contient une table dénommée ''agents'' ayant 3 colonnes suivantes : ''prenom'' ''nom'' ''adresse'' (il s'agit des noms de chaque colonne tels que je les ai écrits dans la base avec l'interface mysql de wamp ) et que j'ai rempli via un formulaire jusque là tout marche bien la table reçoit correctement touts les enregistrements que j'y envois.
Mais c'est quand je veux afficher les données de la table que j'ai des problèmes.
J'ai essayé d'utiliser le try/catch pour la connexion avec la base de données je pense l'avoir réussi car si j'exécute le code jusqu'à la ligne 13 le navigateur m'affiche une page blanche donc je cocois tel que j'ai rédigé le code qu'il n'y a pas d'erreur de connexion.
Je voudrais que quelqu'un me donne son avis sur le reste du code car le navigateur m'affiche les erreurs suivantes :
Notice: Undefined index: prenom in C:\wamp\www\Nouveau dossier (2)\Site2\pour_essayer.php on line 27
Notice: Undefined index: nom in C:\wamp\www\Nouveau dossier (2)\Site2\pour_essayer.php on line 27
Notice: Undefined index: adresse in C:\wamp\www\Nouveau dossier (2)\Site2\pour_essayer.php on line
Je rappelle que la ligne 27 est celle qui correspond à l'avant derniere ligne du code ci dessous :
echo $donnee['prenom'].':'.$donnee['nom'].':'.$donnee['adresse'].'<br/>';
voici le code :
<html>
<?php
//tentative de connexion à la base de données
try
{
$conect = new PDO('mysql:host=localhost;dbname=amateurs','root','');
}
catch (PDOException $e)
{
echo "Problème de connexion avec la base de donnée / Database error<br/>".$e->getMessage();
die();
}
try
{
$retour = $conect->query('SELECT * FROM agents');
$donnee = $retour->fetchAll();
}
catch (PDOException $e)
{
echo "Problème pour lire la base <br/>Opération annulée";
die();
}
echo $donnee['prenom'].':'.$donnee['nom'].':'.$donnee['adresse'].'<br/>';
$base = null;
?>
</html>
Mais c'est quand je veux afficher les données de la table que j'ai des problèmes.
J'ai essayé d'utiliser le try/catch pour la connexion avec la base de données je pense l'avoir réussi car si j'exécute le code jusqu'à la ligne 13 le navigateur m'affiche une page blanche donc je cocois tel que j'ai rédigé le code qu'il n'y a pas d'erreur de connexion.
Je voudrais que quelqu'un me donne son avis sur le reste du code car le navigateur m'affiche les erreurs suivantes :
Notice: Undefined index: prenom in C:\wamp\www\Nouveau dossier (2)\Site2\pour_essayer.php on line 27
Notice: Undefined index: nom in C:\wamp\www\Nouveau dossier (2)\Site2\pour_essayer.php on line 27
Notice: Undefined index: adresse in C:\wamp\www\Nouveau dossier (2)\Site2\pour_essayer.php on line
Je rappelle que la ligne 27 est celle qui correspond à l'avant derniere ligne du code ci dessous :
echo $donnee['prenom'].':'.$donnee['nom'].':'.$donnee['adresse'].'<br/>';
voici le code :
<html>
<?php
//tentative de connexion à la base de données
try
{
$conect = new PDO('mysql:host=localhost;dbname=amateurs','root','');
}
catch (PDOException $e)
{
echo "Problème de connexion avec la base de donnée / Database error<br/>".$e->getMessage();
die();
}
try
{
$retour = $conect->query('SELECT * FROM agents');
$donnee = $retour->fetchAll();
}
catch (PDOException $e)
{
echo "Problème pour lire la base <br/>Opération annulée";
die();
}
echo $donnee['prenom'].':'.$donnee['nom'].':'.$donnee['adresse'].'<br/>';
$base = null;
?>
</html>
1 réponse
-
Bonjour,
pour la connexion avec PDO il faut comme ceci
Les variables à donner$BDD_ADRESSE = "mysql:host=127.0.0.1";
$BDD_DBNAME = "maBase";
$BDD_LOGIN = "root";
$BDD_PASSWORD = "";
// connexion à la base de données
try {
$bdd = new PDO("$BDD_ADRESSE;dbname=$BDD_DBNAME", $BDD_LOGIN, $BDD_PASSWORD);
} catch(Exception $e) {
exit('Impossible de se connecter à la base de données.');
}
// exécution de la requête
$resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
Par rapport au message d'erreur que vous avez, je pense que le problème vient du formulaire ou de la manière dont vous avez récupérer le nom et le prénom.
Code pour récupérer les donnéesif(isset($_REQUEST["nom" ])) {$nom = $_REQUEST["nom" ];}
else{$nom = "";}-
finalement j'ai rectifié l'erreur je pense mais le navigateur ne m'affiche que le premier enregistrement de ma table alors que moi je veux afficher toutes ses lignes
on dirait qu'il me manque une boucle qui me permet de lire et d'afficher toutes les enregistrements de la table
voici le code rectifié:
[code]
<html>
<?php
//tentative de connexion à la base de données
try
{
$conect = new PDO('mysql:host=localhost;dbname=amateurs','root','');
}
catch (PDOException $e)
{
echo "Problème de connexion avec la base de donnée / Database error<br/>".$e->getMessage();
die();
}
try
{
$retour = $conect->query('SELECT * FROM agents');
$donnee = $retour->fetch();
}
catch (PDOException $e)
{
echo "Problème pour lire la base <br/>Opération annulée";
die();
}
echo $donnee['prenom'].':'.$donnee['nom'].':'.$donnee['adresse'].'<br/>';
$base = null;
?>
</html>
/code- Bonjour,
Je vous donne un exemple avec une requête sql et l'affichage de tout le résultat$query = "SELECT nom, prenom, agent ";
$query .= "FROM agents ";
$query .= ";";
$result = execute_query($query);
display_table_agents($result);
function display_table_agents($result) {
echo "<table border=1>\n";
//HEADER ROW
echo "<tr>\n";
echo " <th width=150> Nom </th>\n";
echo " <th width=150> Prenom </th>\n";
echo " <th width=150> Adresse </th>\n";;
echo "</tr>\n";
//DATA ROWS
while($row = mysql_fetch_array($result)) {
echo "<tr>\n";
echo " <td class=\"center\">" . $row[0] . "</td>\n";
echo " <td class=\"center\">" . $row[1] . "</td>\n";
echo " <td class=\"center\">" . $row[2] . "</td>\n";
echo "</tr>\n";
}//end while
echo "</table>\n";
}//end function
-