Problème de traitement d'une base MySQL

Résolu/Fermé
DOKTEK Messages postés 28 Date d'inscription mercredi 19 novembre 2014 Statut Membre Dernière intervention 3 mai 2015 - 19 nov. 2014 à 01:03
DOKTEK Messages postés 28 Date d'inscription mercredi 19 novembre 2014 Statut Membre Dernière intervention 3 mai 2015 - 23 nov. 2014 à 15:47
Bonsoir,
Je suis actuellement en train de créer un site qui implique la création d'une espace membre.
Pour cela évidemment j'ai recours à une base sql pour enregistrer les données collectés sur une page html à part.

Le problème c'est qu'avec ce code j'arrive à lire les données stockés mais par contre pour y écrire ça ne marche pas du tout.

J'apprecierai vraiment si quelqu'un peut m'aider. Sans doute une erreur de débutant..

En tout cas voici le code, j'utilise aussi la fonction d'auto incrémentation de l'ID:

Cdlt Dan

Le code que j'ai écris pour tester cette fonction:

// Programme de test dans le but est d'écrire ou lire des données enregistrés dans une base sql

// Déclaration variables Les valeurs "$_post" sont collectés via une autre page html
$password = htmlspecialchars ($_POST['password']);
$nom = htmlspecialchars ($_POST['nom']);
$adresse = htmlspecialchars ($_POST['adresse']);
$courriel = htmlspecialchars ($_POST['courriel']);
$phone = htmlspecialchars ($_POST['phone']);
$contact = htmlspecialchars ($_POST['contact']);


$bdd = new PDO('mysql:host = localhost;dbname=test','root','');

//A la prochaine ligne je suis sensé d'écrire dans la base des données
// mais cette partie ne fonctionne pas

$bdd->prepare('INSERT INTO base_espace_membre_bretcom(Societe, Adresse, Courriel, Telephone, Interlocuteur, Password) VALUES ($nom, $adresse, $courriel, $phone, $contact, $password)');


// .... et ici je lis (vraiment) dans la base des données

$reponse = $bdd->query('SELECT * FROM base_espace_membre_bretcom');
while ($donnees = $reponse->fetch())
{
echo '<p>'. $donnees ['Societe']. '</p>';
echo '<p>'. $donnees ['Adresse']. '</p>';
echo '<p>'. $donnees ['Courriel']. '</p>';
echo '<p>'. $donnees ['Telephone']. '</p>';
echo '<p>'. $donnees ['Interlocuteur']. '</p>';
echo '<p>'. $donnees ['Password']. '</p>';
}



A voir également:

3 réponses

Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
19 nov. 2014 à 13:07
Ta requête ne peut pas fonctionner, vu qu'elle n'est pas executé.
Prepare permet de préparé la requête, il faut ensuite faire un execute dedans.
Tes variables ne doivent de plus pas être dans le prepare mais dans un tableau fournit lors de l'éxecution.

Regarde cette page et ces exemples :
https://www.php.net/manual/fr/pdo.prepare.php
0
DOKTEK Messages postés 28 Date d'inscription mercredi 19 novembre 2014 Statut Membre Dernière intervention 3 mai 2015
20 nov. 2014 à 01:58
Chèr Nhay
Merci pour ton aide.
Le problème en partie résolu.

Reste à faire en sorte que le code laisse passer les caractères français sans les déformer, ce qui n'est pas le cas en ce moment (exemple : le caractère "é" devient "é")

Dan ("DOKTEK")

Le nouveau code ci-après :

<?php
// Programme de test dans le but est d'écrire ou lire des données enregistrés dans une base sql
// Déclaration variables Les valeurs "$_post" sont collectés via une autre page html
$password = htmlspecialchars ($_POST['password']);
$password_2 = htmlspecialchars ($_POST['password_2']);
$nom = htmlspecialchars ($_POST['nom']);
$adresse = htmlspecialchars ($_POST['adresse']);
$courriel = htmlspecialchars ($_POST['courriel']);
$phone = htmlspecialchars ($_POST['phone']);
$contact = htmlspecialchars ($_POST['contact']);
$carlength = strlen($password);

if ($carlength <6)
echo "Attention ! Le mot de passe doit contenir au moins 6 caracteres !";

if (!preg_match("[^{$password}$]", $password_2))

{
echo "Les mots de passe ne sont pas les memes";
}

$bdd = new PDO('mysql:host = localhost;dbname=test','root','');

//A la prochaine ligne j'écris dans la base des données

$req = $bdd->prepare('INSERT INTO base_espace_membre_bretcom
(Societe, Adresse, Courriel, Telephone, Interlocuteur, Password)
VALUES(:Societe, :Adresse, :Courriel, :Telephone, :Interlocuteur, :Password)');
$req->execute(array(
'Societe' => $nom,
'Adresse' => $adresse,
'Courriel' => $courriel,
'Telephone' => $phone,
'Interlocuteur' => $contact,
'Password' => $password
));


// .... et ici je lis dans la base des données

$reponse = $bdd->query('SELECT * FROM base_espace_membre_bretcom');
while ($donnees = $reponse->fetch())
{
echo '<p>'. $donnees ['Societe']. '</p>';
echo '<p>'. $donnees ['Adresse']. '</p>';
echo '<p>'. $donnees ['Courriel']. '</p>';
echo '<p>'. $donnees ['Telephone']. '</p>';
echo '<p>'. $donnees ['Interlocuteur']. '</p>';
echo '<p>'. $donnees ['Password']. '</p>';
}


?>
0
DOKTEK Messages postés 28 Date d'inscription mercredi 19 novembre 2014 Statut Membre Dernière intervention 3 mai 2015
20 nov. 2014 à 01:55
Chèr Nhay
Merci pour ton aide.
Le problème en partie résolu.

Reste à faire en sorte que le code laisse passer les caractères français sans les déformer, ce qui n'est pas le cas en ce moment (exemple : le caractère "é" devient "é")

Dan ("DOKTEK")

Le nouveau code ci-après :

<?php
// Programme de test dans le but est d'écrire ou lire des données enregistrés dans une base sql
// Déclaration variables Les valeurs "$_post" sont collectés via une autre page html
$password = htmlspecialchars ($_POST['password']);
$password_2 = htmlspecialchars ($_POST['password_2']);
$nom = htmlspecialchars ($_POST['nom']);
$adresse = htmlspecialchars ($_POST['adresse']);
$courriel = htmlspecialchars ($_POST['courriel']);
$phone = htmlspecialchars ($_POST['phone']);
$contact = htmlspecialchars ($_POST['contact']);
$carlength = strlen($password);

if ($carlength <6)
echo "Attention ! Le mot de passe doit contenir au moins 6 caracteres !";

if (!preg_match("[^{$password}$]", $password_2))

{
echo "Les mots de passe ne sont pas les memes";
}

$bdd = new PDO('mysql:host = localhost;dbname=test','root','');

//A la prochaine ligne j'écris dans la base des données

$req = $bdd->prepare('INSERT INTO base_espace_membre_bretcom
(Societe, Adresse, Courriel, Telephone, Interlocuteur, Password)
VALUES(:Societe, :Adresse, :Courriel, :Telephone, :Interlocuteur, :Password)');
$req->execute(array(
'Societe' => $nom,
'Adresse' => $adresse,
'Courriel' => $courriel,
'Telephone' => $phone,
'Interlocuteur' => $contact,
'Password' => $password
));


// .... et ici je lis (vraiment) dans la base des données

$reponse = $bdd->query('SELECT * FROM base_espace_membre_bretcom');
while ($donnees = $reponse->fetch())
{
echo '<p>'. $donnees ['Societe']. '</p>';
echo '<p>'. $donnees ['Adresse']. '</p>';
echo '<p>'. $donnees ['Courriel']. '</p>';
echo '<p>'. $donnees ['Telephone']. '</p>';
echo '<p>'. $donnees ['Interlocuteur']. '</p>';
echo '<p>'. $donnees ['Password']. '</p>';
}


?>
0
DOKTEK Messages postés 28 Date d'inscription mercredi 19 novembre 2014 Statut Membre Dernière intervention 3 mai 2015
23 nov. 2014 à 15:47
Bonjour

J'ai résolu le problème avec les caractères accentué

Cdlt Dan (DOKTEK)
0