[PHP/MySQL] copy van tabellen + 1 variabele

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • EVILSalami
  • Registratie: Februari 2001
  • Laatst online: 16-09 08:53

EVILSalami

Wat kijk je nou?

Topicstarter
Kon geen betere titel verzinnen helaas. Maar hopelijk duidelijke uitleg :P

Ik wil dus van een oude tabel naar een nieuwe tabel kopieren. new_table heeft 1 veld meer dan old_table

dat ziet er dus alvolgt uit:

new_table ( groupid, name, age)
old_table (name, age)

Normaal gesproken kan dat met stukje code als deze.
SQL:
1
INSERT INTO new_table (name, age) SELECT name, age FROM old_table

Maar ik wil met PHP een variabele meegeven aan groupid. Na uitvoeren van de SQL statement zijn er meerdere rijen die gekopieerd moeten kunnen worden.

Dus als voorbeeld:

old_table (kees, 50)
old_table (piet, 40)

moet worden bij een groupid variabele van bijvoorbeeld 5

new_table (5, kees, 50)
new_table (5, piet, 40)

Ik heb al heel wat SQL tutorials doorgelopen maar er zijn er weinig tot geen die dieper op het kopieren tussen tabbelen ingaan. Ergens heb ik ook een stukje gezien waarbij ze gingen kopieren met SELECT INTO. In principe maakt het me niet uit hoe en wat. De vraag is alleen of het eigelijk wel kan. Misschien kent iemand anders andere oplossingen. Ik ben al een tijdje bezig met php/sql maar dit is de eerste keer dat een echt bruikbaar script aan het maken ben.

Acties:
  • 0 Henk 'm!

  • JeRa
  • Registratie: Juni 2003
  • Laatst online: 30-04 10:28

JeRa

Authentic

Bedoel je niet gewoon zoiets?

SQL:
1
INSERT INTO new_table (groupid, name, age) SELECT 5, name, age FROM old_table

[ Voor 5% gewijzigd door JeRa op 11-05-2006 01:45 ]

ifconfig eth0 down


Acties:
  • 0 Henk 'm!

  • EVILSalami
  • Registratie: Februari 2001
  • Laatst online: 16-09 08:53

EVILSalami

Wat kijk je nou?

Topicstarter
Neej die de groupid, moet door php worden verzorgd. Dus op die plek moet $groupid staan. Zodat deze door de pagina in de DB gezet kan worden.

Acties:
  • 0 Henk 'm!

  • JeRa
  • Registratie: Juni 2003
  • Laatst online: 30-04 10:28

JeRa

Authentic

EVILSalami schreef op donderdag 11 mei 2006 @ 01:48:
Neej die de groupid, moet door php worden verzorgd. Dus op die plek moet $groupid staan. Zodat deze door de pagina in de DB gezet kan worden.
Je zou de hele tabel in een array kunnen stoppen, per gebruiker de goede groupid invullen en dan met één grote INSERT in de nieuwe tabel kunnen inserten?

ifconfig eth0 down


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Waarom maak je niet gewoon een kopie van de eerste tabel met phpMyAdmin, om vervolgens een veld toe te voegen aan de structuur? Vervolgens hoef je je in je PHP-script alleen maar bezig te houden met het vullen van dat groupid. SELECT INTO kan geloof ik alleen maar als de tabelstructuur gelijk is, maar dat weet ik niet zeker.

Als je alle records gevuld hebt, dan kun je trouwens daarna natuurlijk dingen als indexes of NOT NULL-typeringen toevoegen aan het veld in kwestie.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • EVILSalami
  • Registratie: Februari 2001
  • Laatst online: 16-09 08:53

EVILSalami

Wat kijk je nou?

Topicstarter
Opzich is dat een mogelijkheid. Maar ik dacht misschien kan het ook wel met 1 (goeie :P) sql query dan ben ik in 1 keer klaar. Scheelt stukje coding en server belasting.
Het is niet zo dat dit eenmalig moet gebeuren. Het is onderdeel van het script, vandaar. En SELECT INTO kan wel gebruikt worden bij verschillende structuren, dit heb ik nog nagezocht. Maar ik vrees dat wat ik wil niet mogelijk is hiermee te combineren.

Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 18-09 14:42
Als he tonderdeel is van je script, en dit geen backup oplossing is, vrees ik dat het tijd wordt om je database eens te normaliseren..
Heb je in je new_table niet voldoende aan het een verwijzing naar de PK in je old_table?
Pagina: 1