[mysql+php] Insert....select et modifications au passage
4 messages
• Page 1 sur 1
- fraid26
- WRInaute discret

- Messages: 139
- Inscription: 3 Oct 2008
[mysql+php] Insert....select et modifications au passage
Bonsoir tout le monde.
Voila déjà quelques heures que je cherche une solution à mon problème mais je ne trouve pas.
Je veux proposer aux utilisateurs la possibilité de copier un enregistrement d'une table.
Cependant je dois changer deux paramètres au passage...
mais je ne connais pas du tout la syntaxe, et les recherches ne donnent rien de pertinent...
merci !
Fred
Voila déjà quelques heures que je cherche une solution à mon problème mais je ne trouve pas.
Je veux proposer aux utilisateurs la possibilité de copier un enregistrement d'une table.
Cependant je dois changer deux paramètres au passage...
- Code: Tout sélectionner
$re = mysql_query("SELECT id_facture FROM n_factures where id_societe='$id_societe' and scenario='$scenario'") or die(mysql_error());
while ($ro = mysql_fetch_array($re, MYSQL_NUM))
{
$id_facture=$ro[0];
mysql_query("INSERT INTO n_factures ??modification du nouveau id_facture='$new_id_facture' et scenario='$new_scenario'?? SELECT ???? FROM n_factures WHERE id_facture='$id_facture'");
}
mais je ne connais pas du tout la syntaxe, et les recherches ne donnent rien de pertinent...
merci !
Fred
- jcaron
- WRInaute accro

- Messages: 2685
- Inscription: 13 Fév 2004
Re: [mysql+php] Insert....select et modifications au passage
INSERT INTO table (nom_colonne_1,nom_colonne_2...) SELECT nouvelle_valeur_pour_colonne_1,nouvelle_valeur_pour_colonne_2... FROM table WHERE conditions
nouvelle_valeur pouvant être le nom de la colonne (on reprend alors sa valeur), ou une expression quelconque.
http://dev.mysql.com/doc/refman/5.0/en/insert-select.html
Jacques.
nouvelle_valeur pouvant être le nom de la colonne (on reprend alors sa valeur), ou une expression quelconque.
http://dev.mysql.com/doc/refman/5.0/en/insert-select.html
Jacques.
- fraid26
- WRInaute discret

- Messages: 139
- Inscription: 3 Oct 2008
Re: [mysql+php] Insert....select et modifications au passage
Bonjour,
j'ai essayé INSERT INTO table (table.*) SELECT table.* FROM table WHERE conditions
mais j'ai le message d'erreur suivant :
Column count doesn't match value count at row 1
J'aimerais éviter de recopier les colonnes à la main, car c'est possible que j'en rajoute lorsque je met à jour le script, et cela m'éviterai de mettre à jour cette page (peur d'oublier !)
une idée ?
merci.
j'ai essayé INSERT INTO table (table.*) SELECT table.* FROM table WHERE conditions
mais j'ai le message d'erreur suivant :
Column count doesn't match value count at row 1
J'aimerais éviter de recopier les colonnes à la main, car c'est possible que j'en rajoute lorsque je met à jour le script, et cela m'éviterai de mettre à jour cette page (peur d'oublier !)
une idée ?
merci.
- fraid26
- WRInaute discret

- Messages: 139
- Inscription: 3 Oct 2008
Re: [mysql+php] Insert....select et modifications au passage
Bon étant un peu pressé, j'ai bidouillé une solution qui a l'air de marcher sans soucis :
Voilà, si ça peut aider !
Frederic
- Code: Tout sélectionner
// on récupère le nom des colonnes de la table
$colonnes_factures="";
$req_structure = "SHOW COLUMNS FROM n_factures ";
$re = mysql_query($req_structure) or die(mysql_error());
while ($ro = mysql_fetch_array($re, MYSQL_NUM))
{
$colonnes_factures.="$ro[0],";
}
// on supprime la dernière virgule, et la colonne 'id' qui est en auto_increment
$colonnes_factures =str_replace('id,', "", substr($colonnes_factures, 0, strlen($colonnes_factures)-1));
// on sélectionne les enregistrements à copier
$re = mysql_query("SELECT id FROM n_factures where id_societe='$id_societe' and scenario='$scenario'") or die(mysql_error());
while ($ro = mysql_fetch_array($re, MYSQL_NUM))
{
$id=$ro[0];
$id_facture_courant++;
// on modifie les deux champs que je voulais modifier (on peut passer par un tableau si bcp de champs...)
$colonnes_factures_new =str_replace('id_facture', "'$id_facture_courant'", $colonnes_factures);
$colonnes_factures_new =str_replace('scenario', "'$id_scenario'", $colonnes_factures_new);
mysql_query("INSERT INTO n_factures ($colonnes_factures) SELECT $colonnes_factures_new FROM n_factures WHERE id_societe='$id_societe' and scenario='$scenario' and id='$id'") or die(mysql_error());
}
Voilà, si ça peut aider !
Frederic
4 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Requete sql INSERT INTO + SELECT (php)
- Afficher les 10 derniere insert d'une table Mysql avec php ?
- [PHP/SQL] Associer plusieurs SELECT de tables MySQL
- PHP/MYSQL SELECT (Quelle ordre dans affichage)
- INSERT ou UPDATE : Mysql
- [MySQL] INSERT / UPDATE conditionnel
- Select where MYSQL
- Update / Select et Mysql
- fONCTION select mysql
- [MySQL] : select de 2 tables et mysql_fetch_assoc
Consultez la description détaillée des produits ou services de Google suivants : JotSpot
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
