Avatar billede SimonBStoevring Nybegynder
15. marts 2010 - 20:19 Der er 4 kommentarer og
1 løsning

Find sidste indsat i databasen

Hej.

Jeg har lavet en lille upload-side, hvorpå jeg vil dele tekstdokumenter med mine venner. Til selve upload delen benytter jeg JAVA appletten, JumpLoader.

Filerne vises i en liste sorteret efter nyeste øverst. Jeg vil gerne, at hvis brugeren uploader mere end én fil adgangen, vises resten som tilhørende første fil. Altså som "underpunkter". Dette forestiller jeg mig at gøre ved at tildele resten af filerne den førstes ID. Resten ordnes under udskrivning.

Det er mig et problem at hive den førstes ID ud. Den opfører sig, som har den ingen værdi.

Systemet kan ses på http://drop.mbftp.dk/

Koden jeg benytter er:

$last_sub = 0;

for( $i = 0; $all_in_place && $i < $partition_count; $i++ ) {
    //
    //    read partition file
    $partition_file = $stage_dir . $client_id . "." . $file_id . "." . $i;
    $partition_file_handle = fopen( $partition_file, "rb" );
    $contents = fread( $partition_file_handle, filesize( $partition_file ) );

    $set_tod = time()+(14*24*3600);

    if($i == 0)
        mysql_query("INSERT INTO drops SET file = '$file_name', tod = '$set_tod', ip = '$ip', host = '$host'");
        $last_sub = mysql_insert_id();
    }
    else {
        mysql_query("INSERT INTO drops SET file = '$file_name', tod = '$set_tod', sub = '$last_sub', ip = '$ip', host = '$host'");
    }

    fclose( $partition_file_handle );
    //
    //    write to reconstruct file
    fwrite( $file_handle, $contents );
    //
    //    remove partition file
    unlink( $partition_file );
}

"sub" feltet er sat til typen INT og får automatisk værdien 0, hvis ikke den er sat via scriptet. Er den ikke sat i scriptet, er der altså også kun uploadet én fil.

På forhånd tak.
Simon B. Støvring
Avatar billede majbom Novice
15. marts 2010 - 21:30 #1
du bruger din insert forkert...

mysql_query("INSERT INTO drops SET file = '$file_name', tod = '$set_tod', ip = '$ip', host = '$host'");

skal være:

mysql_query("INSERT INTO drops(file, tod, ip, host) VALUES('".$file_name."', '".$set_tod."', '".$ip."', '".$host."')");
Avatar billede SimonBStoevring Nybegynder
15. marts 2010 - 21:45 #2
Det er rigtigt. Sådan bør den nok være, men værdierne bliver indsat - "sub" bliver bare ikke sat. Jeg bør bestemt ændre det, men det vil næppe løse problemet. Eller vil det?
Avatar billede SimonBStoevring Nybegynder
15. marts 2010 - 21:46 #3
Hov. Ovenstående skulle naturligvis ikke have været et svar.
Avatar billede majbom Novice
15. marts 2010 - 22:12 #4
det ved jeg ikke, jeg ved bare at du gør det forkert :)

det er vel et forsøg værd - jeg ville ændre koden uanset hvad...
Avatar billede majbom Novice
08. maj 2010 - 09:20 #5
fik du løst dit problem?
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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