Modifier base de données
Résolu
haikei00X
Messages postés
67
Date d'inscription
Statut
Membre
Dernière intervention
-
haikei00X Messages postés 67 Date d'inscription Statut Membre Dernière intervention -
haikei00X Messages postés 67 Date d'inscription Statut Membre Dernière intervention -
Me voilà encore.
J'ai déjà posé cette question mais je n'ai pas eu de réponses donc je vais reposer la question autrement.Peut être que je n'étais pas très claire.
Je veux modifier ma base de données qui se trouve sur phpMyadmin à l'aide d'un code php.
J'ai réussi à faire cela sauf que j'ai trouvé un soucis en ce qui concerne l'ajout d'une ligne.
Le problème c'est que lorsque la ligne que je veux ajouter figure dans une table où les valeurs des colonnes sont des int/float... l'ajout s'effectue parfaitement.Mais lorsque cet ajout se fait dans une table comme par exemple table clients où on a nom prénom ... (des chaines de caractères) la ligne ne s'ajoute pas.J'ai ce même problème dans la suppression et la modification , il doit sûrement avoir la même source .
Voilà mon code
J'attend impatiemment votre aide.Je bloque vraiment sur ce truc depuis des jours et j'arrive pas avancer.
J'ai déjà posé cette question mais je n'ai pas eu de réponses donc je vais reposer la question autrement.Peut être que je n'étais pas très claire.
Je veux modifier ma base de données qui se trouve sur phpMyadmin à l'aide d'un code php.
J'ai réussi à faire cela sauf que j'ai trouvé un soucis en ce qui concerne l'ajout d'une ligne.
Le problème c'est que lorsque la ligne que je veux ajouter figure dans une table où les valeurs des colonnes sont des int/float... l'ajout s'effectue parfaitement.Mais lorsque cet ajout se fait dans une table comme par exemple table clients où on a nom prénom ... (des chaines de caractères) la ligne ne s'ajoute pas.J'ai ce même problème dans la suppression et la modification , il doit sûrement avoir la même source .
Voilà mon code
<html> <?php $link=mysql_connect("localhost","root",""); if(!$link) { die('Erreur connexion'.mysql_error()); } $Db_Select=mysql_select_db('shop',$link); if(!$Db_Select) { die('Base non trouvée'.mysql_error()); } $tab=$_POST['Table']; $val1=$_POST['Value1']; $val2=$_POST['Value2']; $val3=$_POST['Value3']; $val4=$_POST['Value4']; $val5=$_POST['Value5']; if( empty($tab) || empty($val1) || empty($val2) || empty($val3) || empty($val4) || empty($val5) ) { echo 'Champ vide' ; } else { $sql= "INSERT INTO ".$tab." VALUES (".$val1." ,".$val2." ,".$val3." ,".$val4." ,".$val5." ) " or die ('SQL ERROR'.$sql.mysql_error() ); $req=mysql_query($sql); if(isset($req) ) { echo 'Ajout effectué'; } else { echo 'Erreur Ajout non effectué'; } } ?> <form Method="POST" Action="ajout.php"> <input type=submit name=bouton value="Go Back"> </form> <form Method="POST" Action="connect.php"> <input type=submit name=bouton value=Menu> </form> </html>
J'attend impatiemment votre aide.Je bloque vraiment sur ce truc depuis des jours et j'arrive pas avancer.
A voir également:
- Modifier base de données
- Fuite données maif - Guide
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Base de registre - Guide
- Modifier story facebook - Guide
3 réponses
Salut,
Les chaines doivent être entourés de guillemet simple dans une requête SQL :
PS : ne pas oublier mysql_real_escape_string() pour contrer les injections sql, ou passer à PDO avec une requête préparée.
Bonne journée
Les chaines doivent être entourés de guillemet simple dans une requête SQL :
INSERT INTO table VALUES (45, 'toto', 'chaine')
PS : ne pas oublier mysql_real_escape_string() pour contrer les injections sql, ou passer à PDO avec une requête préparée.
Bonne journée
Bonjour,
Juste après ta requête
Juste après ta requête
$req=mysql_query($sql);peut-tu faire un p'tit
echo $sql."<br />".mysql_error();et nous communiquer les deux lignes affichés ?
bonjour Nhay. Je tiens d'abord à vous remercier d'avoir pris la peine de lire mon code.
J'ai fait ce que vous m'avez demandé de faire, je n'ai eu aucun message d'erreur et toujours le même problème,aucune ligne ne s'ajoute à ma base.
J'ai fait ce que vous m'avez demandé de faire, je n'ai eu aucun message d'erreur et toujours le même problème,aucune ligne ne s'ajoute à ma base.
Bonjour,
il manque toujours les quottes entres les chaines de caractère comme l'as dit PITET.
Le problème est que votre instruction INSERT est déjà encapsuler par une quotte.
Il suffit de faire ceci:
Remarquez le "
C'est une façon de faire, il y en a d"'autres.
Cordialement
il manque toujours les quottes entres les chaines de caractère comme l'as dit PITET.
Le problème est que votre instruction INSERT est déjà encapsuler par une quotte.
Il suffit de faire ceci:
$sql= "INSERT INTO ".$tab." VALUES ('".$val1."' ,'".$val2."' ,'".$val3."' ,'".$val4."' ,'".$val5."' ) " or die ('SQL ERROR'.$sql.mysql_error() );
Remarquez le "
C'est une façon de faire, il y en a d"'autres.
Cordialement
j'ai fait ce que vous m'avez recommandé mais toujours le même problème je remet le code pour que vous puissiez voir si c'est ce que je dois faire.
<html>
<?php
$link=mysql_connect("localhost","root","");
if(!$link)
{
die('Erreur connexion'.mysql_error());
}
$Db_Select=mysql_select_db('shop',$link);
if(!$Db_Select)
{
die('Base non trouvée'.mysql_error());
}
$tab=$_POST['Table'];
$val1=$_POST['Value1'];
$val2=$_POST['Value2'];
$val3=$_POST['Value3'];
$val4=$_POST['Value4'];
$val5=$_POST['Value5'];
if( empty($tab) || empty($val1) || empty($val2) || empty($val3) || empty($val4) || empty($val5) )
{
echo 'Champ vide' ;
}
else
{
$val1=mysql_real_escape_string($val1) ;
$val2=mysql_real_escape_string($val2) ;
$val3=mysql_real_escape_string($val3) ;
$val4=mysql_real_escape_string($val4) ;
$val5=mysql_real_escape_string($val5) ;
$sql= 'INSERT INTO '.$tab.' VALUES ('.$val1.' ,'.$val2.' ,'.$val3.' ,'.$val4.' ,'.$val5.' ) ' or die ('SQL ERROR'.$sql.mysql_error() );
$req=mysql_query($sql);
if(isset($req) )
{
echo 'Ajout effectué';
}
else
{
echo 'Erreur Ajout non effectué';
}
}
?>
<form Method="POST" Action="ajout.php">
<input type=submit name=bouton value="Go Back">
</form>
<form Method="POST" Action="connect.php">
<input type=submit name=bouton value=Menu>
</form>
</html>