Avatar billede webcreator Nybegynder
11. september 2004 - 22:08 Der er 8 kommentarer og
1 løsning

Overføre data mellem tabeller vha. lille PHP script

Hej Eksperter.

Jeg har lavet et script, som skulle overføre alle mine brugere samt filer fra to ældre tabeller til to nyere. Men af en eller anden grund bliver de rigtige filer ikke tilknyttet de rigtige brugere (fx har brugeren 'test' kun 4 opgaver i sin liste (og så er det endda de forkerte - der skulle også ligge 19 filer).

Hvad er galt :


$query1 = mysql_query("SELECT * FROM OLDusers") or die(mysql_error());
while ($output1 = mysql_fetch_array($query1)) {
   
    $username    = $output1["user"];
    $password    = $output1["pass"];
    $email        = $output1["mail"];
    $usertype    = 0;
    $points        = $output1["poin"];
    $auto        = "";
    $active        = $output1["acti"];
    $subscribe    = 1;
    $stylesheet    = 0;
    $ip            = $output1["IPnr"];
    $time        = $output1["dato"];
   
    $insertSQL = "INSERT INTO users (`username`, `password`, `email`, `usertype`, `points`, `auto`, `active`, `subscribe`, `stylesheet`, `ip`, `time`) values ('$username', '$password', '$email', '$usertype', '$points', '$auto', '$active', '$subscribe', '$stylesheet', '$ip', '$time')";
    mysql_query($insertSQL) or die (mysql_error());
   
    unset($username, $password, $email, $usertype, $points, $auto, $active, $subscribe, $stylesheet, $ip, $time);
   
}


$query1 = mysql_query("SELECT * FROM OLDuploads") or die(mysql_error());
while ($output1 = mysql_fetch_array($query1)) {
   
    $query2 = mysql_query("SELECT `id` FROM OLDusers WHERE `user` = '".$output1["user"]."'") or die(mysql_error());
    $output2 = mysql_fetch_array($query2);
   
    $owner            = $output2["id"];
    $subject        = $output1["kate"];
    $level            = $output1["opgn"];
    $type            = $output1["opgt"];
    $mark            = $output1["kara"];
    $class            = $output1["aarg"];
    $headline        = slash($output1["emne"]);
    $pages            = $output1["side"];
    $description    = slash($output1["besk"]);
    $file            = $output1["file"];
    $filesize        = $output1["fstr"];
    $price            = $output1["pris"]*25;
    $hits            = $output1["dnld"];
    $checked        = 0;
    $time            = $output1["dato"];
   
    $insertSQL = "INSERT INTO files (`owner`, `subject`, `level`, `type`, `mark`, `class`, `headline`, `pages`, `description`, `file`, `filesize`, `price`, `hits`, `checked`, `time`) values ('$owner', '$subject', '$level', '$type', '$mark', '$class', '$headline', '$pages', '$description', '$file', '$filesize', '$price', '$hits', '$checked', '$time')";
    mysql_query($insertSQL) or die (mysql_error());
   
    unset($owner, $subject, $level, $type, $mark, $class, $headline, $pages, $description, $file, $filesize, $price, $hits, $checked, $time);
   
}
Avatar billede webcreator Nybegynder
11. september 2004 - 22:09 #1
Når jeg siger "filer", så mener jeg ikke den slags, som ligger på harddisken - jeg mener faktisk poster. Men sandheden er, at hver post er tilknyttet en fil på serveren - så jeg betegner det samlet som "filer" :)
Avatar billede webcreator Nybegynder
11. september 2004 - 22:09 #2
- så ja - det er et upload-system :)
Avatar billede detox Nybegynder
11. september 2004 - 22:11 #3
Den nemmeste måde at overføre data til en ny tabel med samme struktur er nok med en forespørgsel som denne:

INSERT INTO users SELECT * FROM OLDusers
Avatar billede webcreator Nybegynder
11. september 2004 - 22:13 #4
tabellerne har langt fra samme struktur. Har re-organiseret hele min side :)
Avatar billede webcreator Nybegynder
11. september 2004 - 22:21 #5
Tyder det på en fejl eller mangel i min database ?
Avatar billede webcreator Nybegynder
11. september 2004 - 22:33 #6
Jeg har muligvis fået løst problemet nu. Tester lige lidt frem og tilbage.
Jeg valgte at hente brugerens ID fra den nye usertabel frem for den gamle.
Avatar billede webcreator Nybegynder
11. september 2004 - 22:48 #7
Yeps, fandt ud af det på ovenstående måde - tak alligevel.
Avatar billede detox Nybegynder
11. september 2004 - 22:51 #8
Godt du fik det løst :O)
Avatar billede webcreator Nybegynder
12. september 2004 - 01:11 #9
Yepper :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester