Récupération des données d'une BDD via PDO
Résolu/Fermé
Gui
-
23 janv. 2019 à 16:24
Gui4671 Messages postés 33 Date d'inscription jeudi 24 janvier 2019 Statut Membre Dernière intervention 7 avril 2019 - 25 janv. 2019 à 17:21
Gui4671 Messages postés 33 Date d'inscription jeudi 24 janvier 2019 Statut Membre Dernière intervention 7 avril 2019 - 25 janv. 2019 à 17:21
A voir également:
- Récupération des données d'une BDD via PDO
- Recuperation de données - Guide
- Récupérer une vidéo youtube - Guide
- Excel validation des données liste - Guide
- Comment récupérer des messages supprimés sur whatsapp - Guide
- Trier des données excel - Guide
2 réponses
jordane45
Messages postés
38347
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 décembre 2024
4 719
23 janv. 2019 à 17:19
23 janv. 2019 à 17:19
Bonjour,
Déjà.. avant de continuer.. je t'invite fortement à lire ET à appliquer ce qui se trouve dans ces deux liens :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Ensuite... ton erreur est facile à trouver (et ce n'est pas la seule au passage.....)
Pour ta connexion.. tu as utiliser la variable : $dbh
Ensuite.. pour faire ta requête.. tu as pris : $pdo
Ne vois tu pas le souci ?
Puis plus bas... tu as fais :
mais là..
Déjà.. avant de continuer.. je t'invite fortement à lire ET à appliquer ce qui se trouve dans ces deux liens :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Ensuite... ton erreur est facile à trouver (et ce n'est pas la seule au passage.....)
Pour ta connexion.. tu as utiliser la variable : $dbh
Ensuite.. pour faire ta requête.. tu as pris : $pdo
Ne vois tu pas le souci ?
Puis plus bas... tu as fais :
$arr = $pdo->query
mais là..
<?php echo $data['nom']; ?>tu fais référénce à une variable $data ... là encore une erreur facile à trouver...
jordane45
Messages postés
38347
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 décembre 2024
4 719
24 janv. 2019 à 22:59
24 janv. 2019 à 22:59
Voici donc le code de Gui
<?php include('debut.php'); ?><?php include('../haut.php'); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Nouveau client</title> <style> body { background: rgba(244,255,78,1) } header { height: 210px; border: 2px solid black; text-align: center; padding: 10px; margin: 20px; } table { text-align: center; margin: auto; width: 95%; height: 50em; } footer { height: 100px; border: 2px solid black; text-align: center; padding: 10px; margin: 5px; } ul#menu_horizontal li { display : inline; padding : 0 0.5em; border: 1px black; } ul#menu_horizontal { list-style-type : none; } a { border: 1px blue; } </style> </head> <body> <header> <img src="https://www.tousuniscontrelesuicide.com/fs/Root/duehm-Logo_Rogne.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="200px" width="200px" align="right" > <img src="https://www.tousuniscontrelesuicide.com/fs/Root/duehm-Logo_Rogne.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="200px" width="200px" align="left" > <br> <h1>Tous unis contre le suicide</h1> <h2>Créer un client:</h2> <ul id="menu_horizontal"> <li><a href="../index.php">Accueil</a></li> <li><a href="../membres.php">Les membres</a></li> <li><a href="../clients.php">Les clients</a></li> <li><a href="../aides.php">Les aides</a></li> <li><a href="../documents_officiels.php">Les documents</a></li> <li><a href="../gestion_avancee.php">Gestion</a></li> <?php if(isset($_SESSION['user'])){ ?> <li><a href="../update-password.php">Changer mot de passe</a></li> <?php } ?> <li><a style="color: red" href="../connexion.php">Me <?php if(isset($_SESSION['user'])){echo"dé";}?>connecter</a></li> <?php if(!isset($_SESSION['user']) || $_SESSION['user']['role']<3) { header('Location: ../index.php'); } else { ?> <li><a style="color: green" href="../creer-utilisateur.php">Créer un utilisateur</a></li> <?php } ?> </ul> </header> <br /><br /> <br> <br> <?php if(!empty($_POST)) { $valid=true; if(!isset($_POST['nom']) || empty($_POST['nom'])) { echo "<div class='bandeau bandeau-error'>Merci de renseigner le nom du client.</div>"; $valid=false; } if(!isset($_POST['prenom']) || empty($_POST['prenom'])) { echo "<div class='bandeau bandeau-error'>Merci de renseigner le prénom du client.</div>"; $valid=false; } if(!isset($_POST['age']) || empty($_POST['age'])) { echo "<div class='bandeau bandeau-error'>Merci de renseigner l'âge du client.</div>"; $valid=false; } if(!isset($_POST['domiciliation']) || empty($_POST['domiciliation'])) { echo "<div class='bandeau bandeau-error'>Merci de renseigner la domiciliation du client.</div>"; $valid=false; } if(!isset($_POST['dateinscription']) || empty($_POST['dateinscription'])) { echo "<div class='bandeau bandeau-error'>Merci de renseigner la date d'inscription du client.</div>"; $valid=false; } if(!isset($_POST['identifiant']) || empty($_POST['identifiant'])) { echo "<div class='bandeau bandeau-error'>Merci de renseigner l'identifiant (ID) du client.</div>"; $valid=false; } if(!isset($_POST['email']) || empty($_POST['email'])) { echo "<div class='bandeau bandeau-error'>Merci de renseigner l'email du client.</div>"; $valid=false; } if(!isset($_POST['tel']) || empty($_POST['tel'])) { echo "<div class='bandeau bandeau-error'>Merci de renseigner le téléphone du client.</div>"; $valid=false; } if(!isset($_POST['contact']) || empty($_POST['contact'])) { echo "<div class='bandeau bandeau-error'>Merci de renseigner les autres points de contact du client.</div>"; $valid=false; } if(!isset($_POST['numeroaide']) || empty($_POST['numeroaide'])) { echo "<div class='bandeau bandeau-error'>Merci de renseigner le numéro d'aide concernant le client.</div>"; $valid=false; } if(!isset($_POST['autreaide']) || empty($_POST['autreaide'])) { echo "<div class='bandeau bandeau-error'>Merci de renseigner les autres numéros d'aide concernant le client.</div>"; $valid=false; } if($valid) { $nom = htmlspecialchars($_POST['nom']); $prenom = htmlspecialchars($_POST['prenom']); $age = htmlspecialchars($_POST['age']); $domiciliation = htmlspecialchars($_POST['domiciliation']); $dateinscription = htmlspecialchars($_POST['dateinscription']); $identifiant = htmlspecialchars($_POST['identifiant']); $email = htmlspecialchars($_POST['email']); $tel = htmlspecialchars($_POST['tel']); $contact = htmlspecialchars($_POST['contact']); $numeroaide = htmlspecialchars($_POST['numeroaide']); $autreaide = htmlspecialchars($_POST['autreaide']); $res = add_clients($pdo, $nom, $prenom, $age, $domiciliation, $dateinscription, $identifiant, $email, $tel, $contact, $numeroaide, $autreaide); if($res) { echo "<div class='bandeau bandeau-success'>Lle client a bien été ajouté !</div>"; } else { echo "<div class='bandeau bandeau-error'>Désolé une erreur est survenue.</div>"; } } } ?> <table border=1 width=100% align="center" cellspacing=0 cellpadding=0 > <tr> <td width="100%"><h3>Créer un client:</h3> <form method="POST" action="creer_client.php"> <input style= "width: 50%; text-align: center;" type="text" name="nom" placeholder="Nom" required/><br> <br> <input style= "width: 50%; text-align: center;" type="text" name="prenom" placeholder="Prénom" required/><br> <br> <input style= "width: 50%; text-align: center;" type="text" name="age" placeholder="Age" required/><br> <br> <input style= "width: 50%; text-align: center;" type="text" name="domiciliation" placeholder="Domiciliation" required/><br> <br> <br> <input style= "width: 50%; text-align: center;" type="text" name="dateinscription" placeholder="Date d'inscription" required/><br> <br> <input style= "width: 50%; text-align: center;" type="text" name="identifiant" placeholder="Identifiant" required/><br> <br> <br> <input style= "width: 50%; text-align: center;" type="text" name="email" placeholder="Email" required/><br> <br> <input style= "width: 50%; text-align: center;" type="text" name="tel" placeholder="Téléphone" required/><br> <br> <input style= "width: 50%; text-align: center;" type="text" name="contact" placeholder="Autres points de contact" required/><br> <br> <input style= "width: 50%; text-align: center;" type="text" name="numeroaide" placeholder="Numéro d'aide" required/><br> <br> <input style= "width: 50%; text-align: center;" type="text" name="autreaide" placeholder="Autre numéro d'aide" required/><br> <br> <input style= "width: 30%; text-align: center;"type="submit" /><br><br> </form> </td> </table> <footer> <p>Mailto: tousuniscontrelesuicide@hotmail.com</p> <a href="https://www.tousuniscontrelesuicide.com/#Contactez_nous.E">Nous contacter</a> <p>Site web:<a href="https://www.tousuniscontrelesuicide.com">www.tousuniscontrelesuicide.com</a></p> </footer> </body> </html>
jordane45
Messages postés
38347
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 décembre 2024
4 719
24 janv. 2019 à 23:03
24 janv. 2019 à 23:03
A la place d'un include, fais donc un require_once
histoire d'être sûr qu'il est bien chargé....
Et montre nous le code de ce fichier....
Autre point (qui n'est pas en rapport direct avec ta question.... mais bon....)
La fonction htmlspecialchars ne doit servir qu'à l' AFFICHAGE .. en aucun cas pour la sauvegarde des données.
On stocke TOUJOURS les données en "brut" dans la BDD
require_once "debut.php";
histoire d'être sûr qu'il est bien chargé....
Et montre nous le code de ce fichier....
Autre point (qui n'est pas en rapport direct avec ta question.... mais bon....)
La fonction htmlspecialchars ne doit servir qu'à l' AFFICHAGE .. en aucun cas pour la sauvegarde des données.
On stocke TOUJOURS les données en "brut" dans la BDD
Gui4671
Messages postés
33
Date d'inscription
jeudi 24 janvier 2019
Statut
Membre
Dernière intervention
7 avril 2019
Modifié le 25 janv. 2019 à 16:25
Modifié le 25 janv. 2019 à 16:25
La page ''debut.php'' est celle-ci:
<?php $host_name = 'db**********3.hosting-data.io'; $database = 'db**********3'; $user_name = 'dbo********3'; $password = 'MON MDP ICI'; $pdo = null; try { $pdo = new PDO("mysql:host=$host_name; dbname=$database;", $user_name, $password); } catch (PDOException $e) { echo "Erreur!: " . $e->getMessage() . "<br/>"; die(); function add_clients($pdo, $nom, $prenom, $age, $domiciliation, $dateinscription, $identifiant, $email, $tel, $contact, $numeroaide, $autreaide){ try { $stmt = $pdo->prepare("INSERT INTO clients (nom, prenom, age, domiciliation, dateinscription, identifiant, email, tel, contact, numeroaide, autreaide) VALUES(:nom, :prenom, :age, :domiciliation, :dateinscription, :identifiant, :email, :tel, :contact, :numeroaide, :autreaide)"); $stmt->bindParam(':nom', $nom); $stmt->bindParam(':prenom', $prenom); $stmt->bindParam(':age', $age); $stmt->bindParam(':domiciliation', $domiciliation); $stmt->bindParam(':dateinscription', $dateinscription); $stmt->bindParam(':identifiant', $identifiant); $stmt->bindParam(':email', $email); $stmt->bindParam(':tel', $tel); $stmt->bindParam(':contact', $contact); $stmt->bindParam(':numeroaide', $numeroaide); $stmt->bindParam(':autreaide', $autreaide); $stmt->execute(); return false; } catch(Exception $e) { return false; } } } ?>
jordane45
Messages postés
38347
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 décembre 2024
4 719
25 janv. 2019 à 16:25
25 janv. 2019 à 16:25
Regarde bien ton code...
Ta fonction se trouve dans le catch...
Sors la du bloc try catch
Ta fonction se trouve dans le catch...
Sors la du bloc try catch
Gui4671
Messages postés
33
Date d'inscription
jeudi 24 janvier 2019
Statut
Membre
Dernière intervention
7 avril 2019
>
jordane45
Messages postés
38347
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 décembre 2024
25 janv. 2019 à 16:37
25 janv. 2019 à 16:37
Je n'ai pas compris (je suis un vrai débutant de compet)... Je dois enlever le catch à la ligne 9 et 29?
jordane45
Messages postés
38347
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 décembre 2024
4 719
>
Gui4671
Messages postés
33
Date d'inscription
jeudi 24 janvier 2019
Statut
Membre
Dernière intervention
7 avril 2019
25 janv. 2019 à 17:00
25 janv. 2019 à 17:00
<?php $host_name = 'db**********3.hosting-data.io'; $database = 'db**********3'; $user_name = 'dbo********3'; $password = 'MON MDP ICI'; $pdo = null; try { $pdo = new PDO("mysql:host=$host_name; dbname=$database;", $user_name, $password); } catch (PDOException $e) { echo "Erreur!: " . $e->getMessage() . "<br/>"; die(); } //Après la connexion.. en dehors de son bloc TRY/CATCH... // donc... ICI function add_clients($pdo, $nom, $prenom, $age, $domiciliation, $dateinscription, $identifiant, $email, $tel, $contact, $numeroaide, $autreaide){ try { $stmt = $pdo->prepare("INSERT INTO clients (nom, prenom, age, domiciliation, dateinscription, identifiant, email, tel, contact, numeroaide, autreaide) VALUES(:nom, :prenom, :age, :domiciliation, :dateinscription, :identifiant, :email, :tel, :contact, :numeroaide, :autreaide)"); $stmt->bindParam(':nom', $nom); $stmt->bindParam(':prenom', $prenom); $stmt->bindParam(':age', $age); $stmt->bindParam(':domiciliation', $domiciliation); $stmt->bindParam(':dateinscription', $dateinscription); $stmt->bindParam(':identifiant', $identifiant); $stmt->bindParam(':email', $email); $stmt->bindParam(':tel', $tel); $stmt->bindParam(':contact', $contact); $stmt->bindParam(':numeroaide', $numeroaide); $stmt->bindParam(':autreaide', $autreaide); $stmt->execute(); return false; } catch(Exception $e) { return false; } } ?>
24 janv. 2019 à 15:53
Merci pour ton aide... Cela m'a permis d'avancer.
En effet j'ai réussi à faire parler ma BDD. Je souhaite dès lors faire un formulaire d'inscription pour envoyer les données des clients sur la BDD. Pour ce faire, j'ai fait ce code:
Modifié le 24 janv. 2019 à 16:05
Merci pour ton aide... Cela m'a permis d'avancer.
En effet j'ai réussi à faire parler ma BDD. Je souhaite dès lors faire un formulaire d'inscription pour envoyer les données des clients sur la BDD. Pour ce faire, j'ai fait ce code:
Je ne sais pas copier mon code ici, on me dit que je ne peux pas parler avec SMS, orthographe ou grammaire... Navré.
J'ai cette erreur qui apparait:
Fatal error: Uncaught Error: Call to undefined function add_clients() in /homepages/22/d767857963/htdocs/logiciel/v2/clients/creer_client.php:184 Stack trace: #0 {main} thrown in /homepages/22/d767857963/htdocs/logiciel/v2/clients/creer_client.php on line 184
La ligne 184 c'est celle-ci:
Je ne vois pas mon erreur, saurais-tu m'apporter une aide?
Je me doute que les erreurs sont faciles à trouver mais ce n'est pas mon métier, il faut donc le temps que je comprenne tout. J'apprends de mes erreurs comme on dit
Passe une bonne fin de journée.
24 janv. 2019 à 17:10
Pour ce qui est de coller ton code, pense bien à utiliser les balises de code
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Et si ça bloque, purge le cache de ton navigateur et ré-essais.
Sinon, au pire, tu peux me l'envoyer en MP (message privé).
24 janv. 2019 à 17:27
J'ai vidé le cache et tjrs impossible de te l'envoyer, je vais donc te transmettre mon code en MP.