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

Messages postés
54
Date d'inscription
vendredi 10 septembre 2004
Statut
Membre
Dernière intervention
15 octobre 2009
- - Dernière réponse : cs_stefh
Messages postés
15
Date d'inscription
mercredi 18 avril 2007
Statut
Membre
Dernière intervention
28 septembre 2007
- 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

Meilleure réponse
Messages postés
54
Date d'inscription
vendredi 10 septembre 2004
Statut
Membre
Dernière intervention
15 octobre 2009
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 213 internautes nous ont dit merci ce mois-ci

Commenter la réponse de nemetos
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
0
Merci
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
Messages postés
54
Date d'inscription
vendredi 10 septembre 2004
Statut
Membre
Dernière intervention
15 octobre 2009
0
Merci
ça marche pas

Pizza Dude
Commenter la réponse de nemetos
Messages postés
15
Date d'inscription
mercredi 18 avril 2007
Statut
Membre
Dernière intervention
28 septembre 2007
0
Merci
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
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
0
Merci
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
Messages postés
15
Date d'inscription
mercredi 18 avril 2007
Statut
Membre
Dernière intervention
28 septembre 2007
0
Merci
meri jojo..j x essayer;)
Commenter la réponse de cs_stefh
Messages postés
15
Date d'inscription
mercredi 18 avril 2007
Statut
Membre
Dernière intervention
28 septembre 2007
0
Merci
  
  
<?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
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
0
Merci
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
Messages postés
15
Date d'inscription
mercredi 18 avril 2007
Statut
Membre
Dernière intervention
28 septembre 2007
0
Merci
oui merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiii.<<jojo>>
Commenter la réponse de cs_stefh