Problème de traitement d'une base MySQL
Résolu
DOKTEK
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
DOKTEK Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
DOKTEK Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
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>';
}
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:
- Problème de traitement d'une base MySQL
- Base de registre - Guide
- Reconsidérer le traitement de vos informations à des fins publicitaires - Accueil - Réseaux sociaux
- Traitement de texte gratuit - Guide
- Ce traitement de texte gratuit et léger est parfait pour remplacer Word, même sur un vieux PC - Guide
- Formules mathématiques de base - Télécharger - Études & Formations
3 réponses
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
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
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>';
}
?>
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>';
}
?>
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>';
}
?>