Plusieurs insert into dans une seule requête [Résolu]

nemetos 54 Messages postés vendredi 10 septembre 2004Date d'inscription 15 octobre 2009 Dernière intervention - 23 avril 2007 à 19:02 - Dernière réponse : cs_stefh 15 Messages postés mercredi 18 avril 2007Date d'inscription 28 septembre 2007 Dernière intervention
- 4 mai 2007 à 02:31
bonjour,
je voudrais faire un truc du genre :

$query="insert into table (nom) value ('monnom1')";
$query.="insert into table (nom) value ('monnom2')";
$query.="insert into table (nom) value ('monnom3')";

$mysql_result = mysql_query($query,$mysql_link);

c'est à dire passer plusieurs mises à jour de table en une seule requête. Ce code marche pas. je voudrais savoir comment faire pour que ça marche.
Merci.

Pizza Dude
Afficher la suite 

9 réponses

Répondre au sujet
nemetos 54 Messages postés vendredi 10 septembre 2004Date d'inscription 15 octobre 2009 Dernière intervention - 23 avril 2007 à 19:50
+3
Utile
J'ai trouvé. Voilà l'astuce :
$query="insert into table (nom) value ('monnom1'),";
$query.="('monnom2'),";
$query.="('monnom3')";

$mysql_result = mysql_query($query,$mysql_link);

Pizza Dude
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de nemetos
JoJo738 1267 Messages postés mercredi 7 juillet 2004Date d'inscription 29 juin 2010 Dernière intervention - 23 avril 2007 à 19:13
0
Utile
Hello :p

Essaye de mettre des ; entre les requetes :p
$sql'INSERT INTO table (nom) VALUES("val") ; INSERT INTO table SET nom "val2"';

$query = mysql_query($sql) or die(mysql_error());
NB : tu peux aussi bien utiliser le SET nom "val", nom2 "val2" que le (nom, nom2) VALUES("val1", 20)

<hr />Si ma reponse te convient, merci de l'accepter ! 
Commenter la réponse de JoJo738
nemetos 54 Messages postés vendredi 10 septembre 2004Date d'inscription 15 octobre 2009 Dernière intervention - 23 avril 2007 à 19:22
0
Utile
ça marche pas

Pizza Dude
Commenter la réponse de nemetos
cs_stefh 15 Messages postés mercredi 18 avril 2007Date d'inscription 28 septembre 2007 Dernière intervention - 3 mai 2007 à 02:51
0
Utile
salut
j'ai un pb.j vx inserer mes donné en meme temp dans 2tables different .par ex: j vx ajouter à table1==>  le   nom et le prenom;
ajouter à table2=> login
 pb que j besoin de les ajouter on meme temp.j'ai aucune idée:s!!!ouups
aidez moi
Commenter la réponse de cs_stefh
JoJo738 1267 Messages postés mercredi 7 juillet 2004Date d'inscription 29 juin 2010 Dernière intervention - 3 mai 2007 à 06:51
0
Utile
Lu steph

Essaye comme ca (j'ai modifié pour avoir la même methode par rapport à mon precedent post ^^)

$sql= 'INSERT INTO table (nom1) VALUES("val1") ;INSERT INTO table2 (nom2, nom3) VALUES("val2", "val3") ';

$query = mysql_query($sql) or die(mysql_error());

<hr />Si ma reponse te convient, merci de l'accepter ! 
Commenter la réponse de JoJo738
cs_stefh 15 Messages postés mercredi 18 avril 2007Date d'inscription 28 septembre 2007 Dernière intervention - 3 mai 2007 à 09:45
0
Utile
meri jojo..j x essayer;)
Commenter la réponse de cs_stefh
cs_stefh 15 Messages postés mercredi 18 avril 2007Date d'inscription 28 septembre 2007 Dernière intervention - 3 mai 2007 à 10:10
0
Utile
  
  
<?php
$host = "localhost";
$user = "root";
$pass = "";
$bdd = "testbase";


@mysql_connect($host,$user,$pass)
   or die("Impossible de se connecter");
@mysql_select_db("$bdd")
   or die("Impossible de se connecter");
if ( isset($_POST["nom"]) && isset($_POST["email"]) )
{

$pseudo=""; if(!empty($_POST["pseudo"]))
   $pseudo=addslashes($_POST["pseudo"]);
$login=""; if(!empty($_POST["login"]))
   $login=$_POST["login"];
// Ajoute la nouvelle fiche
$sql= 'INSERT INTO test (pseudo) VALUES("$pseudo") ;INSERT INTO test2 (login) VALUES("$login") ';
$result = mysql_query($sql);
}
mysql_close();
?>


<form method="post">

</form>



</html>

rieeeeeeeeen.....je fait ce code mé rien s'ajout dans ma bas
N.B: ce codejuste pr tester
aaidez-moi
Commenter la réponse de cs_stefh
JoJo738 1267 Messages postés mercredi 7 juillet 2004Date d'inscription 29 juin 2010 Dernière intervention - 3 mai 2007 à 18:53
0
Utile
Lu

<?php

// @ http://tw.apinc.org/weblog/2004/02/24/36-php-magic-quotes-et-getpostcookie
// Aller, la premiere fontion qui me tombe sous la main (merci google ^^)

function set_magic_quotes_gpc_recursive($value, $new_setting) {
 if (is_array($value)) {
  $return = array();
  foreach ($value as $key => $val)
   $return[$key] = set_magic_quotes_gpc_recursive($val, $new_setting);
  return $return;
 } else
  return $new_setting ? addslashes($value) : stripslashes($value);
}

function set_magic_quotes_gpc($new_setting) {
 if (get_magic_quotes_gpc() == !$new_setting) {
  $_GET = set_magic_quotes_gpc_recursive($_GET, $new_setting);
  $_POST = set_magic_quotes_gpc_recursive($_POST, $new_setting);
  $_COOKIE = set_magic_quotes_gpc_recursive($_COOKIE, $new_setting);
  $_REQUEST = set_magic_quotes_gpc_recursive($_REQUEST, $new_setting);
 }
}

set_magic_quotes_gpc(false);
// Avec cette fonction on supprime le magic quote, ce qui permet de ne plus avoir des \' à tout vent :p
// Agit automatiquement sur toutes les variables $_GET, $_POST, $_COOKIE, $_REQUEST
?>
<html>
 
<?php

$host = 'localhost';
$user = 'root';
$pass = '';
$bdd  = 'testbase';
// Utilise de préférence les simple queote ' aux doubles ", c'est plus rapides et plus propre (je trouve)

mysql_connect($host, $user, $pass) or die('Impossible de se connecter');
mysql_select_db($bdd) or die('Impossible de se connecter');

if ( isset($_POST['nom'], $_POST['email']) )  {
 // Avantage de la fontion isset(), tu peux tester plusieurs variable en une seule fonction, sépare jsute par des virgules :)

 $pseudo = ( !empty($_POST['pseudo'])) ? htmlspecialchars(addslashes($_POST['pseudo'])) : null;
 // Forme  $var = CONDITION ? ALORS : SINON, c'est un IF/ELSE
 // On renforce la sécurité avec un htmlspecialchars()
 // Par contre, met un filtre pour gerer le magic_quote (\' automatique)
 
 $login = ( !empty($_POST['login'])) ? htmlspecialchars(addslashes($_POST['login'])) : null;

 // Ajoute la nouvelle fiche
 $sql  = 'INSERT INTO test (pseudo) VALUES("' . $pseudo . '") ;';
 $sql .= 'INSERT INTO test2 (login) VALUES("' . $login . '") ';
 // Tu as fait une erreur ... regarde bien tes ' et "
 //  '... ("$pseudo")  ... ("$login") ' -> Ici en metant au debut un ' l'utilisation directe des varaibles dans la chaine n'est pas possible ...
 // Tu fois daire un : ' ... ' . $var . ' ... '
 // Moi, je découpe les requete par la concatenation de la variable $var = ''; $var .= 'suite'; $var .= 'Encore suite ...';
 // C'est plus claire come ça

 $result = mysql_query($sql);

}
mysql_close();

?>

  <form method="post">
   
    <!-- Je rend compatible XHtml en encadrant les de la balise

-->
   
   
   
  

  </form>

</html>
Voila, ca devrait marcher ^^
<hr />Si ma reponse te convient, merci de l'accepter ! 
Commenter la réponse de JoJo738
cs_stefh 15 Messages postés mercredi 18 avril 2007Date d'inscription 28 septembre 2007 Dernière intervention - 4 mai 2007 à 02:31
0
Utile
oui merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiii.<<jojo>>
Commenter la réponse de cs_stefh

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.