Exécuter les instructions SQL directement et à partir d’un textarea

Résolu
cs_didine13 Messages postés 96 Date d'inscription mardi 18 août 2009 Statut Membre Dernière intervention 14 août 2013 - 13 août 2010 à 23:34
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 - 15 août 2010 à 12:05
Bonjour,

Je suis bloqué pour exécuter les instructions SQL directement et à partir d'un textarea avec simple bouton submit

SQL:
INSERT DELAYED IGNORE INTO `jos_sections` VALUES(1000, 'Recettes', '', 'recettes', '', 'content', 'left', '', 1, 0, '2010-08-05 01:01:01', 6, 0, 57, '');


Voila mon code:
<form action="" method="post" name="form1">
<textarea name="text_all" rows="9" cols="100"></textarea>


</form>


<?php
if (isset($_POST['submit'])) {
$link = mysql_connect("localhost","root","");
$db_selected = mysql_select_db('didine_site', $link);


$var_text_all  = $_POST['text_all'];
$var_text_all = str_replace('\r\n','
',$var_text_all); 
$sql = $var_text_all;
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
  if($req)
  {
    echo("La modification à été correctement effectuée") ;
  }
  else
  {
    echo("La modification à échouée") ;
  }
mysql_close();
}
?>


Erreur SQL !
INSERT DELAYED IGNORE INTO `jos_content` VALUES(10000,\'Soupe de poisson\', \'Soupe de poisson\', \'\', \'


Pour des raisons personnelles je ne veux pas les importer à partir de mysql

Si vous pouvez m'aider SVP

6 réponses

cs_didine13 Messages postés 96 Date d'inscription mardi 18 août 2009 Statut Membre Dernière intervention 14 août 2013
14 août 2010 à 17:25
re

Voila je viens de terminé la version mysqli mais même problème Je peux exécuter qu’une seule instruction, donc retour à la case dépare

<?PHP
?>
<form action="" method="post" name="form1">

<textarea name="text_all" rows="9" cols="100">
UPDATE jos_content SET title='toto3' WHERE id=10000;
UPDATE jos_content SET title='toto4' WHERE id=10001;
</textarea>,

</form>


<?php
if (isset($_POST['submit'])) {
$dbc=mysqli_connect('localhost','ak22_akim13','*****','ak2######');
$var_text_all=($_POST['text_all']);
$var_text_all = str_replace('\r\n','
',$var_text_all); 
$sql = stripslashes($var_text_all);

$query=$var_text_all;

$result = mysqli_query($dbc, $query) or die('Encore une Erreur de merde');
mysqli_close($dbc);

}
?>
3
cs_didine13 Messages postés 96 Date d'inscription mardi 18 août 2009 Statut Membre Dernière intervention 14 août 2013
14 août 2010 à 13:20
Bonjour,

J'ai résolu le problème, mais la j'ai un autre problème quand j'exécuter une seule instruction SQL ca passe, mais je deux ou 10 ou plus Erreur


$sql =  stripslashes($var_text_all);


Deux ou plus ERREUR
UPDATE jos_content SET title ='toto2' WHERE id= 10000;


UPDATE jos_content SET title='toto2' WHERE id=10000;
UPDATE jos_content SET title='toto1' WHERE id=10001;


Erreur SQL !
UPDATE jos_content SET title ='toto2' WHERE id=10000; UPDATE jos_content SET title='toto1' WHERE id=10001;
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE jos_content SET title='toto1' WHERE id=10001' at line 2


Y a t-il un moyen de passer ce problème?
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
14 août 2010 à 13:39
Salut,

N'hésite pas à expliquer comment tu as résolu ton premier souci, ça pourra peut être servir à d'autres.
Je n'ai que parcouru, mais avec la manière dont tu procèdes tu ne peux pas passer en une seule fois plusieurs requêtes.
Le plus simple serait de boucler sur les requêtes requêtes reçues du textarea, en faisant un explode ou un preg_split dessus par exemple.


Cordialement,


Kohntark -
0
cs_didine13 Messages postés 96 Date d'inscription mardi 18 août 2009 Statut Membre Dernière intervention 14 août 2013
14 août 2010 à 13:47
Salut kohntark

J'ai resolut le probleme grace a stripslashes()
$sql = stripslashes($var_text_all);



Je sais qu'il faut un explode pour le ;
et une boucle
Mais je suis un super upper newbie dans PHP/MYSQL

Je vais continuer a me documenté, je vous tien au courant

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_didine13 Messages postés 96 Date d'inscription mardi 18 août 2009 Statut Membre Dernière intervention 14 août 2013
14 août 2010 à 18:40
resolu
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
15 août 2010 à 12:05
si tu utilises mysqli tu as un 'query_multi' qui existe il me semble.
S.
0
Rejoignez-nous