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

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

Votre réponse

9 réponses

Meilleure réponse
Messages postés
54
Date d'inscription
vendredi 10 septembre 2004
Dernière intervention
15 octobre 2009
- 23 avril 2007 à 19:50
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

Merci nemetos 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Commenter la réponse de nemetos
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Dernière intervention
29 juin 2010
- 23 avril 2007 à 19:13
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
Dernière intervention
15 octobre 2009
- 23 avril 2007 à 19:22
0
Merci
ça marche pas

Pizza Dude
Commenter la réponse de nemetos
Messages postés
15
Date d'inscription
mercredi 18 avril 2007
Dernière intervention
28 septembre 2007
- 3 mai 2007 à 02:51
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
Dernière intervention
29 juin 2010
- 3 mai 2007 à 06:51
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
Dernière intervention
28 septembre 2007
- 3 mai 2007 à 09:45
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
Dernière intervention
28 septembre 2007
- 3 mai 2007 à 10:10
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
Dernière intervention
29 juin 2010
- 3 mai 2007 à 18:53
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
Dernière intervention
28 septembre 2007
- 4 mai 2007 à 02:31
0
Merci
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.