Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/01/2011, 16h36   #1
Invité régulier
 
Inscription : juin 2010
Messages : 61
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : juin 2010
Messages : 61
Points : 7
Points : 7
Envoyer un message via MSN à andaman
Par défaut Insert into multiple dans même table

Bonjour,

Comment insérer plusieurs lignes à la fois dans une même table?

J'ai un champ texte et une liste déroulante pour selectionner la langue (comme ceci).

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<input class="validate[requiered,length[0,100]] text-input" type="text" id="country_fr" name="country" style="display:none" value="<?php echo $country;?>"/>
<input type="text" id="country_en" name="country" style="display:none" value="<?php echo $country;?>"/>
<input type="text" id="country_th" name="country" style="display:none" value="<?php echo $country;?>"/>
<input type="hidden" name="id" value="<?php echo $id;?>" />
<label for="lang">
<select name="lang" id="row_lang" onChange="LangCountry()" onMouseOver="LangCountry()">
		<option value="1">Français</option>
		<option value="2">Anglais</option>
		<option value="3">Thaï</option>
</select>
</p>
<p>
<label>
	<input type="submit" name="button" value="Envoyer" />
</label>
</p>
il garde bien en mémoire(javascript) les données insérées mais comment je peux insérer par "block" ces données?
Je sais que cela dois se passer dans ma requête mais je ne sais pas comment m'y prendre...

Voici mon code php

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
if($_POST['id'] == ""){
	$sql = "INSERT INTO country (name_country,lang) VALUES ('$country','$lang')";
}else{
	$sql = "UPDATE country SET name_country='$country' WHERE id_country=" .$_POST['id'];
}
$result = mysql_query($sql);
if(!$result){
	$error = "probleme_sql : " . "<br />" . $sql . "<br />" . mysql_error();	
}else{
	$data = "Votre enregistrement a bien été pris en compte.";
}
Merci d'avance de vos réponses.
andaman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2011, 17h02   #2
Membre à l'essai
 
Benjamin
Inscription : novembre 2009
Messages : 122
Détails du profil
Informations personnelles :
Nom : Benjamin

Informations forums :
Inscription : novembre 2009
Messages : 122
Points : 23
Points : 23
Je pense qu'il faut que tu fasses 2 requêtes distinctes parce que d'un côté tu veux inserer des données et de l'autre les mettre à jour, je ferais ça:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
if($_POST['id'] == ""){
	$sql = "INSERT INTO country (name_country,lang) VALUES ('".$country."','".$lang."')";
}else{
	$sql2 = "UPDATE country SET name_country='$country' WHERE id_country=" .$_POST['id'];
}
$result = mysql_query($sql);
$result2 = mysql_query($sql2);
if(!$result){
	$error = "probleme_sql : " . "<br />" . $sql . "<br />" . mysql_error();	
 if(!$result2)
        $error = "probleme_sql : " . "<br />" . $sql . "<br />" . mysql_error();
 }else{
	$data = "Votre enregistrement a bien été pris en compte.";
}
Dis moi si ça fonctionne
benjamin002 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2011, 17h39   #3
Invité régulier
 
Inscription : juin 2010
Messages : 61
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : juin 2010
Messages : 61
Points : 7
Points : 7
Envoyer un message via MSN à andaman
Je ne suis fait mal comprendre à mon avis:

Ce que je veux faire c'est insérer 3 enregistrement à la fois via un champ texte et une liste déroulante qui prends une valeur numérique.

Structure de la table

Citation:
id_country | name_country | lang
1 | Belgique | fr
2 | Belgium | en
andaman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 06h30   #4
Membre Expert
 
Inscription : août 2002
Messages : 1 036
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 1 036
Points : 1 166
Points : 1 166
Bonjour,

Pour les insertions multiples :
Code :
1
2
INSERT INTO laTable (id_country, name_country, lang)
VALUES (1, 'Belgique', 'fr'), (2, 'Belgium', 'en')
jeca est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2011, 16h51   #5
Invité régulier
 
Inscription : juin 2010
Messages : 61
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : juin 2010
Messages : 61
Points : 7
Points : 7
Envoyer un message via MSN à andaman
Merci ;-) cela fonctionne
andaman est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h56.


 
 
 
 
Partenaires

Hébergement Web