Optimisation de code et caractère spéciaux

Tipx -  
Neliel Messages postés 7012 Statut Contributeur -
Bonjour,

J'ai suivi un tuto PHP pour l'inscription dans une base de donnée et l'affichage de ces données sur une page web.
J'ai du l'adapter à ma sauce pour qu'il corresponde à mes besoins. Seulement ce code ne me parraît absolument pas propore, et je pense que de nombreuses lignes pourraient être raccourci.
Etant un grand débuant en PHP je n'y arrive pas sans aide, voici le code, pouvez vous m'indiquer ce qui pourrait etre amélioré ?

<?php
//connect a la db
include 'connexion.php';

//recup des valeurs du formulaire
$plat1=$_POST['Plat1'];
$date1=$_POST['Date1'];

$plat2=$_POST['Plat2'];
$date2=$_POST['Date2'];

$plat3=$_POST['Plat3'];
$date3=$_POST['Date3'];

$plat4=$_POST['Plat4'];
$date4=$_POST['Date4'];

$plat5=$_POST['Plat5'];
$plat6=$_POST['Plat6'];
$date5=$_POST['Date5'];

//insertion dans la bdd
$insert1="INSERT INTO f1(Plat, Date) VALUES ('$plat1','$date1');";
$insert2="INSERT INTO f2(Plat, Date) VALUES ('$plat2','$date2');";
$insert3="INSERT INTO f3(Plat, Date) VALUES ('$plat3','$date3');";
$insert4="INSERT INTO f4(Plat, Date) VALUES ('$plat4','$date4');";
$insert5="INSERT INTO f5(Plat, Plat2, Date) VALUES ('$plat5','$plat6','$date5');";

mysql_query($insert1) or die("Erreur dans l'inscription dans la base de données".mysql_error());
mysql_query($insert2) or die("Erreur dans l'inscription dans la base de données".mysql_error());
mysql_query($insert3) or die("Erreur dans l'inscription dans la base de données".mysql_error());
mysql_query($insert4) or die("Erreur dans l'inscription dans la base de données".mysql_error());
mysql_query($insert5) or die("Erreur dans l'inscription dans la base de données".mysql_error());

//affichage du contenu
echo "Les données sont envoyées. ";
echo '<p><a href="#">Retour à l accueil.</a></p>';

//fermeture de la connection
mysql_close($lien);
?>

De plus lorque j'insère des caractère de type ' ou ", des erreurs MySql surviennent, je comprend pourquoi mais n'arrive pas non plus à le corriger....

Merci d'avance!!

A voir également:

2 réponses

Neliel Messages postés 7012 Statut Contributeur 1 696
 
Bonjour,

Ce code est propre... je vois pas trop comment tu pourrais l'amélioré.

Pour les caractères ' et ", c'est tout à fait normal, ce sont des caractère utilisé en PHP... il faut utiliser "/" suivi du caractère pour échapper le caractère et pouvoir s'en servir.

Il y a aussi une fonction... mais je ne me souviens plus de son nom qui permet d'utiliser ses caractères dans une chaîne... je vais jeter un oeil.

"Trotti Trotta, Monsieur P, y'a des anges qui veulent un bisou..."
0
Neliel Messages postés 7012 Statut Contributeur 1 696
 
La fonction se nomme htmlentities()...
0
Tipx
 
Ah merci mais j'ai trouvé pour les caractères spéciaux:
$insert1="INSERT INTO f1(Plat, Date) VALUES ('".mysql_real_escape_string($plat1)."','".mysql_real_escape_string($date1)."');";

Bon par contre si tu me dis que le code est bien je vais te croire mais je pensais qu'il était possible de le raccourcir.
0
Neliel Messages postés 7012 Statut Contributeur 1 696
 
Tu pourrai peut-être condensé les requêtes sql en une seule (quoique j'ai un doute avec Insert) mais tu perdras plus en lisibilité qu'autre chose...
0