Gå til innhold

Oppdatere en tabell til en annen. Hvordan?


Anbefalte innlegg

Hei!

 

Jeg er egentlig ny innenfor PHP men vil ikke si at jeg ikke kan det heller. Har klart å lage mitt eget CMS og har et gammelt CMS som jeg har gjort forandringer på og hvor det er mulig å gjøre flere ting. Dette har ført til at tabellen er blitt noe større. Det er flere linjer i tabellen hvor dataen lagres. Jeg lurer på hva som er beste måten å scripte et script som henter ut all info fra den gamletabellen (lagret den i en fil) for så å forandre innsetting av verdier i den nye databasen.

 

Eksempel på gammel tabell:

`id` ,

`overskrift` ,

`ingress` ,

`innhold`,

`lenkeadresse`,

`lenkejanei`,

`bilde`,

`publiseringsingsdato`,

`dato_fjernes`

 

Eksempelpå ny tabell:

 

`id`,

`overskrift` ,

`forfatter`,

`dato_skrevet`,

`ingress`,

`innhold` ,

`lenkeadresse`,

`lenkejanei`,

`lenketittel`,

`bilde`,

`fotografi`,

`fil_1`,

`filnavn_1`,

`fil_2`,

`filnavn_2`,

`fil_3`,

`filnavn_3`,

`informasjonskilde`,

`publiseringsdato`,

`dato_fjernes`

 

Som dere ser så innholder den nye tabellen flere felt som jeg må fylle inn ved konvertering over til den nye tabellen. Spørsmålet hvordan starter jeg? Hvilke funksjoner må jeg ta i bruk?

 

På forhånd takk...

 

Kim..

Endret av Kim T
Lenke til kommentar
Videoannonse
Annonse

Problemet mitt er at jeg oppdatere den nye tabellen med den gamle. Når den gamle har færre linjer. Så må jeg lage et script som fyller ut de "tomme" linjene. For det er noen felt som er nødvendig å fylle inn. De kan ikke være tomme med andre ord.

 

F.eks:

Gammel tabell:

id

navn

passord

Ny tabell:

 

id

navn

passord

adresse

hobby

 

I den nye tabellen må jeg fylle ut adresse. Jeg har ikke det i den gamle tabellen og dermed må jeg lage et script som fyller ut den nødvendige informasjonen.

Lenke til kommentar

Nei og det er det jeg vil lage. F.eks,

 

Det ser jo slik ut nå:

 

INSERT INTO `pub` VALUES(43, 'overskrift',									'ingress', 'innhold', 'bilde', 'ja', 'lenkeadresse', 'dato_publisert', 'dato_skal_fjernes');

 

Den nye er jo slik:

 

INSERT INTO `pub` (`id`, `overskrift`, `forfatter`, `dato_skrevet`, `ingress`, `innhold`, `lenkeadresse`, `lenkejanei`, `lenketittel`, `bilde`, `fotografi`, `fil_1`, `filnavn_1`, `fil_2`, `filnavn_2`, `fil_3`, `filnavn_3`, `informasjonskilde`, `publiseringsdato`, `dato_fjernes`)

 

Som du ser er det jo flere felt i den nye enn den gamle. Det er noen felt som er nødvendig å fylle ut. Disse hadde jeg tenkte å lage en variabel på som er konstant og putte inn.

 

Det som jeg tror må gjøres er å finne et "system" og for så sette inn der det mangler. Og jeg lurer på hvordan jeg skal starte.

 

Dette kan da ikke være noe nytt at folk oppdaterer en mysql database med flere felt? Det som jeg trenger å vite er hvordan dere gjør det når det er flere felt i det nye enn det gamle.

 

Kim..

Lenke til kommentar

Start med å lage en funksjon som henter data fra den gamle tabellen og returnerer det som et array noe liknende:

 

Array (
 [0] - Array (
[id] - 1
[overskrift] - blabla
[ingress] - blabla
[innhold] - blabla
[lenkeadresse] - blabla
[lenkejanei] - ja
[bilde] - bilde.jpg
[publiseringsdato] - 121212
[dato_fjernes] - 412341
 )
 [1] - Array (
[id] - 2
[overskrift] - blabla
[ingress] - blabla
[innhold] - blabla
[lenkeadresse] - blabla
[lenkejanei] - ja
[bilde] - bilde.jpg
[publiseringsdato] - 121212
[dato_fjernes] - 412341
 )
)

 

så gjøre:

 

$adresse = ''

foreach ( $array as $rad )
{
 $insertString = '';

 foreach ( $rad as $k => $v )
 {
$insertString .= $k . ' = ' . $v . ', ';
 }

 $qry = "insert into nytabell set $insertString, adresse = $adresse;";
 mysql_query( $qry ) or die( $qry . ' - ' . mysql_error() );
}

 

ønsker du å lage en liste med adresser som skal settes inn kan du endre:

 

foreach ( $array as $rad )

 

til

 

foreach ( $array as $index => $rad )

 

og

 

$qry = "insert into nytabell set $insertString, adresse = $adresse;";

 

til

 

$qry = "insert into nytabell set $insertString, adresse = {$adresse[$index]};";

 

i tillegg til å gjøre om $adresse til et array med adresse strenger.

Endret av grimjoey
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...