patingfree
Messages postés48Date d'inscriptionvendredi 13 novembre 2009StatutMembreDernière intervention30 septembre 2010
-
2 juin 2010 à 11:40
Zut13
Messages postés50Date d'inscriptiondimanche 6 mai 2007StatutMembreDernière intervention14 novembre 2011
-
2 juin 2010 à 14:22
Bonjour à tous,
pour l'apprentissage de php j'avais installé easyphp 5.3.2i pour interfaçer une base de données mysql(base)renseignée à l'aide d'un formulaire php.Les insertions,les suppressions et les MAJ se faisaient sans problème.Après quoi,J'ai donc décidé de désinstaller easyphp et d'installer séparement apache 2.2.15,php 5.3.2 sur un poste et mysql 5.1.45 sur un autre et d'acceder à ma base depuis un troisième ordi.l'installation a été un succès et j'arrive à interfaçer la base ,y faire des maj et des modifications mais pas d'insertion.Suis je confronté à une erreur de configuration?
J'avoue que j'ignore quelle est la nature du problème.Please help me!!!!!!!!!!!!!
je vous fait voir le code du formulaire et d'insertion dans la base modifié just au niveau de la connexion à la base qui marchait parfaitement sous easyphp.
<html>// code du formulaire
<HEAD>
<TITLE>Formulaire Etudiant</TITLE>
</HEAD>
Veuillez saisir les coordonnées de l'etudiant
<form name = "insertion" method="POST" action="affich_dans_tabl.php">
Nom ,
,
----
Prénom ,
,
----
Classe ,
,
----
Age ,
,
----
</form>
</html>
// code d'insertion et d'affichage
<HTML>
<HEAD>
<TITLE>Insertion de données et Affichage du contenu de la base</TITLE>
</HEAD>
Liste des etudiants
<?php
//on se connecte à MySQL
$connect = mysql_connect('192.168.1.102', 'patrick', 'asunta');
// on sélectionne la base
mysql_select_db('base',$connect);
//on recupère les valeurs des champs
//nom
$nom1= $_POST['nom'];
//prenom
$prenom1=$_POST['prenom'];
//classe
$classe1=$_POST['classe'];
//age
$age1=$_POST['age'];
if (($nom1!="")&&($prenom1!="")&&($classe1!="")&&($age1!=""))
{
// on crée la requête SQL
$sql1= "INSERT INTO etudiant(Matricule,Nom,Prenoms,Classe,Age) VALUES ('','$nom1','$prenom1','$classe1','$age1')";
// on exécute la requête
$req1 = mysql_query($sql1) ;
if ($sql1)
{
echo("
L'insertion à été correctement effectuée
") ;
}
else
{
echo("
L'insertion a échouée
") ;
}
}
//Affichage des données
// on crée la requête SQL
$sql2 ='SELECT * FROM etudiant ORDER BY Nom';
patingfree
Messages postés48Date d'inscriptionvendredi 13 novembre 2009StatutMembreDernière intervention30 septembre 2010 2 juin 2010 à 13:32
Après avoir enlevé le '', il affiche l'erreur suivante après tentative d'insertion:
Erreur SQL !
INSERT INTO etudiant VALUES ('AZE','AZE','AZE','10')
Column count doesn't match value count at row 1
patingfree
Messages postés48Date d'inscriptionvendredi 13 novembre 2009StatutMembreDernière intervention30 septembre 2010 2 juin 2010 à 14:17
merci indefiniment car l'insertion est un succès.
Je peux avoir une petite explication sur le mysql_real_escape_string?
j'ai aussi un petit souci avec les accents.
Zut13
Messages postés50Date d'inscriptiondimanche 6 mai 2007StatutMembreDernière intervention14 novembre 2011 2 juin 2010 à 14:22
En fait mysql_real_escape_string c'est pour éviter les injection sql et donc te faire pirater ton site et ta bdd. Fait attention la sécurité est très importante, et les failles de débutant facilement exploitables.
Pour les accents vérifie que l'encodage de ta page est le même que celui de ta base de données.