Avatar billede dingkee Nybegynder
15. januar 2005 - 12:29 Der er 7 kommentarer

Ny id pr. billed

På min side har jeg lavet en hel liste med billeder.
Udfor hvert billed er der et afkrydsningsfelt, og en kommentarboks.

Alle de billeder man har afkrydset i afkrydsningsfeltet, skal have oprettet sin egen id i tabellen "billeder"

Hvordan gør jeg det?? Er det en loop funktion?
Avatar billede jakoba Nybegynder
15. januar 2005 - 12:38 #1
Hvis du bruger en database som fx MySQL kan du få sådan et unikkt tal for hvert billede ved at have et auto-increment felt i din tabel. Det er en simpel og effektiv måde, og det skulle ikke undre mig om du har sådan et felt allerede i den tabel.
    http://dev.mysql.com/doc/mysql/en/example-AUTO_INCREMENT.html
Avatar billede dingkee Nybegynder
15. januar 2005 - 12:51 #2
Problemet er jo, at billederne ligger på en side, også når jeg trykker på submit sender den jo alle billederne på engang.

Så der skal jo gerne stå et eller andet sted i koden, at hvergang der kommet et nyt billed så skal den starte med en ny id (en ny række i tabellen)
Avatar billede jakoba Nybegynder
15. januar 2005 - 21:37 #3
må vi se den side
Avatar billede dingkee Nybegynder
15. januar 2005 - 22:33 #4
Jeg har ikk lige et sted at lægge den op her nu...

Men på siden er der følgende:

----------

Billed 1    Afkrydsningsboks 1    Tekstfelt 1
Billed 2    Afkrydsningsboks 2    Tekstfelt 2
Billed 2    Afkrydsningsboks 2    Tekstfelt 2

Submit knap

---------
Når jeg så trykker på submit, skal den tilføje følgende i tabellen "billeder", hvor id er auto-inctement.
----------
ID    Billed    Tekst
1    1        Hej
2    2        Dav
3    3        Hello
-----------

Hvis jeg så ikke f.eks. afkrydser i boks nr. 2, skal der stå følgende i databasen:
-----------
ID    Billed    Tekst
1    1        Hej
2    3        Hello
-----------
Avatar billede jakoba Nybegynder
15. januar 2005 - 23:02 #5
OK
$altal_afkrydsningsfelter = 20;  // eller hvormange der nu er i din form
$antal = 0;          // tæller hvormange billeder skal indsættes
$sql_kommando = "
    INSERT INTO dintabelsnavn
          ( Billed, Tekst )
    VALUES ";

for ( $i=0; $i<$altal_afkrydsningsfelter; $i++ ) {
    if( isset( $_POST['afkrydsningsfelt_1'] ) ) {
        $antal++;                          // tæl een op.
        $sql_kommando .= "( '" .addslashes($_POST['Billed_'.$i] )
                        ."', ' .addslashes($_POST['Tekstfelt_'.$i] ) ."' )";
    }
}
if ( $antal > 0 ) {                        // hvis noget var afkrydset
    $ok = mysql_query( $sql_kommando );    // så indsæt de billeder
}

Bemærk at der ikke står en lyd om dit autoincrementfelt i den kommando der bliver genereret. mysql sørger selv for at indsætte værdier i ID, og sørger også for at værdierne i ID alle bliver forskellige.

mvh JakobA
Avatar billede jakoba Nybegynder
15. januar 2005 - 23:04 #6
ups. der mangler en " i anden halvdel af linien:

        $sql_kommando .= "( '" .addslashes($_POST['Billed_'.$i] )
                        ."', '" .addslashes($_POST['Tekstfelt_'.$i] ) ."' )";
Avatar billede jakoba Nybegynder
15. januar 2005 - 23:13 #7
Ups igen, der skal komma , imellem de datasæt der indsættes
        $sql_kommando .= ( $antal==1 ? "" : "," )
                        ."( '"  .addslashes($_POST['Billed_'.$i] )
                        ."', '" .addslashes($_POST['Tekstfelt_'.$i] ) ."' )";
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