Da vil du få trøbbel med at databasen ikke forstår hva du vil sortere ut i fra. Så vidt jeg vet sorterer den kun ut i fra tall (jeg har faktisk aldri hatt behov for å sortere alfabetisk, så jeg aner ikke om det funker). Jeg bruker alltid et felt kalt "id" i starten av et recordset (i excel-eksempelet vil første celle i et recordset tilsvare alle feltene i kolonnen A). Hvis du ser for deg en tabell med flere kolonner (A, B, C, D...) og du vil sortere disse så forstår ikke databasen hvilket felt du vil sortere etter. Derfor trenger du et felt som heter for eksempel "tall". Eller "id".
Et kjempetrisk er å alltid reservere første celle i recordsettet for et tall som står på auto_increment. Dette er en innstilling du kan sette på et integerfelt som gjør at det stiger med 1 for hvert recordset som blir lagt til i databasen. "Integer" vil si at cellen inneholder en ren tallverdi (1, 2, 12, 567 - IKKE "1A", "67G"). Når du skrur på auto_increment så trenger du ikke fylle ut feltet en gang, du setter bare inn verdier i de andre cellene så går resten av seg selv. Grunnen til at jeg gjør dette er at jeg, som sagt, kan hente ut alle data sortert etter tidspunktet de ble lagt til på, også kan jeg ha et referansetall for dataene. Du vet aldri når du får bruk for et tall.
Du trenger ikke sortere dataene hvis du ikke føler for det. Spørringen vil da se sånn ut:
Kode
$sql = mysql ( "select * from tabell" ) or die ( mysql_error() );
Nå henter vi bare alt sammen i den rekkefølgen de står i. Eldste data først. Men sett at jeg har lyst til å hente ut kun ett recordset da?
Kode
$sql = mysql ( "select * from tabell where tall = '5'" ) or die ( mysql_error() );
Legg merke til bruken av ' rundt 5-tallet. Denne spørringen (queryet) vil hente ut recordsetet som inneholder verdien 5 i kolonnen som heter "tall". Hvis den ikke finnes får du trøbbel.
For å utvide dette til å omfatte trådstarters problem:
Kode
$sql = mysql ( "select * from tabell where ip = '$ip'" ) or die ( mysql_error() );
Denne spørringen kan brukes til å sjekke om en IP-adresse allerede finnes i databasen din. Ved å putte en if-løkke dette kan du skrive ut en error hvis IP-adressen allerede eksisterer eller oppdatere innholdet i recordsetet som tilhører IP-en.
Sist endret av Moff; 7. september 2007 kl. 22:39.