Exécuter les instructions SQL directement et à partir d'un t

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Exécuter les instructions SQL directement et à partir d'un t

Re: Exécuter les instructions SQL directement et à partir d'un t

par AB » 14 août 2010, 18:59

Ok merci, je signale à un modo de mettre résolu :wink:

Re: Exécuter les instructions SQL directement et à partir d'un t

par Akim » 14 août 2010, 18:52

Je ne peux pas placer ce topic en résolut car quand j’ai posté le message je n’étais pas encore membre.

Sinon AB tu es un maitre Merci à toi et toute ton équipe
Merci a toi aussi xTG

Re: Exécuter les instructions SQL directement et à partir d'un t

par AB » 14 août 2010, 18:41

Etant donné que tu es inscrit, tu peux toi même cocher résolu en choisissant la réponse qui te convient (il doit y avoir un coche pour accepter une réponse).

Sinon pour être honnête bah des fois on envoies aussi vers un lien qui concerne le pb en question quand c'est bien expliqué . Mais là c'était un petit problème et j'avais un peu de temps. Disons que tu es tombé au bon moment :)

Re: Exécuter les instructions SQL directement et à partir d'un t

par Akim » 14 août 2010, 18:38

Je ne trouve pas le moyen de placer ce topic resolu

[RESO] Exécuter les instructions SQL directement et à partir

par Akim » 14 août 2010, 18:28

Exact

Alors 1000 merci car je galère depuis 3 jours à lire et a faire des testes
Je ces ou m'adressé maintenant et un lien sera poster sur mon site des l'ouverture pour que les webmasters et les débutant car sur les autres forums voila ce que l’on vous dit quand vous poster une question.

De la lecture :
http://un_lien

Je vous remercie encore
Cordialement,

Re: Exécuter les instructions SQL directement et à partir d'un t

par AB » 14 août 2010, 18:19

J'ai édité le code de mon précédent message, essaies de voir ce que tu peux faire avec.

(en remplaçant $nom_de_ta_base par le nom de ta base ;) )

Re: Exécuter les instructions SQL directement et à partir d'un t

par xTG » 14 août 2010, 18:18

L'erreur se trouve quelques lignes plus haut, la connexion à la base de donnée.
Tu lui as inventé des paramètres à la fonction. ^^
/* N'est pas correct
$dbc = mysql_connect('localhost','ak22_akim13','*****','ak2######');
*/

// Correct :
$dbc = mysql_connect('localhost','ak22_akim13','*****');
mysql_select_db('ak2######',$dbc);

Re: Exécuter les instructions SQL directement et à partir d'un t

par Akim » 14 août 2010, 18:11

excuse moi de t'embêté encore mais j'ai une erreur dans la même ligne


Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/ak22/public_html/db1.php on line 29
Erreur SQL !
UPDATE jos_content SET title='toto2' WHERE id=10000;

Re: Exécuter les instructions SQL directement et à partir d'un t

par xTG » 14 août 2010, 18:02

Essayes avec cela :
$req = mysql_query($requete,$dbc) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());

Re: Exécuter les instructions SQL directement et à partir d'un t

par Akim » 14 août 2010, 17:55

merci de m'avoir AB

rien ne ce passe pour le moment j'ai ce message

Erreur SQL !
UPDATE jos_content SET title='toto2' WHERE id=10000;
No database selected

Re: Exécuter les instructions SQL directement et à partir d'un t

par AB » 14 août 2010, 17:39

Ou tu peux faire quelque chose comme ça.
Dans cet exemple c'est le retour à la ligne dans le textarea (non pas automatique mais effectué par la touche entrée) qui sépare deux requêtes.
<?php

if(isset($_POST['Envoyer'],$_POST['text_all']))
	{
		function Verif_magicquotes ($chaine)
		{
			if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);
			
			return $chaine;
		} 
		
		$var_text_all  = Verif_magicquotes($_POST['text_all']);
		$tab_requete = explode("\r\n",$var_text_all);
		
                // Enlève les éléments vides
		$tab_requete = array_filter($tab_requete);
		
		//code de connexion au serveur
                $dbc = mysql_connect('localhost','ak22_akim13','*****');
                
               if(!$dbc) exit('la connexion au serveur à échouée');

               // Sélection de ta base de donnée
               $select_base = mysql_select_db($nom_de_ta_base, $dbc);
		
                if ($select_base)
                {
		foreach ($tab_requete as $requete)
			{
				$req = mysql_query($requete) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());
				
				  if($req)
				  {
					echo("La modification à été correctement effectuée") ;
				  }
				  else
				  {
					echo("La modification à échouée") ;
				  }
			}
		}
                else echo 'la connexion à la base de donnée a échoué';
	}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>

</head>

<body>
<form id="form1" action="#" method="post">
 
  <textarea name="text_all" cols="65" rows="12"></textarea>
  <input name="Envoyer" type="submit" value="Envoyer" />

</form>

</body>
</html>

Re: Exécuter les instructions SQL directement et à partir d'un t

par Akim » 14 août 2010, 17:27

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">
<table>
<tr><td>  
<p><input type="text" name="champ_product_sku" value=""></p>
<p><input type="text" name="champ_product_publish" value=""></p>
<p><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></p></td></tr>
<input type="submit" name="submit">
</table></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','<br />',$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);

}
?>

Re: Exécuter les instructions SQL directement et à partir d'un t

par Akim » 14 août 2010, 13:49

Salut xTG

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

Re: Exécuter les instructions SQL directement et à partir d'un t

par xTG » 14 août 2010, 13:21

Pour ma part je pencherai pour un explode() sur le point virgule et une boucle sur les requêtes.

Re: Exécuter les instructions SQL directement et à partir d'un t

par Akim » 14 août 2010, 13:16

Bonjour,

Merci a toi
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);
UPDATE jos_content SET title='toto2' WHERE id=10000;
Deux ou plus ERREUR
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?