ictys Skrevet 16. oktober 2007 Skrevet 16. oktober 2007 $query = "select * from $data where bok='$bok AND 'kapittel'=$kapittel AND linjenr=$linjenr Si at jeg skal lage en database som inneholder en bok. Hver enkelt linje får en egen plass i databasen. Nøkkelen er bok+kapittel+linjenr. Det går greit å sortere og skrive ut hele boka, men hva hvis jeg ønsker å velge bare en enkelt linje? spørringen blir sånn omentrent som over, men hvorfor virker den ikke? Jeg prøvde å finne ut om man kunne bruke AND, men det fant jeg ikke noe om. Hvilken kommando kan ellers brukes?
Manfred Skrevet 16. oktober 2007 Skrevet 16. oktober 2007 Fullstendig feilplasserte ' Hvis du får feilmelding så må du SKRIVE ut sql'en slik den ser ut, så kan du prøve å kjøre den rett i phpMyAdmin eller noe.
blackbrrd Skrevet 16. oktober 2007 Skrevet 16. oktober 2007 $query = "select * from $data where bok='$bok AND 'kapittel'=$kapittel AND linjenr=$linjenr Rett før $bok har du en ', hvor er den andre? Strengt tatt hører det her hjemme i php-forumet. Elementær debugging av SQL skrevet i kode vil være å skrive ut SQL-en før du kjører den, så du kan teste den rett i f.eks phpMyAdmin eller ett annet verktøy, for å få feilmeldingene der og rette den opp før du koder videre...
Manfred Skrevet 16. oktober 2007 Skrevet 16. oktober 2007 Hva med de rundt "kapittel"? i teit mysql-stil skal vel det være ` eller noe... og ikke '
phpp Skrevet 17. oktober 2007 Skrevet 17. oktober 2007 Ser ut som du trenger litt mer info angående basic mysql.. Tekst omgitt av ' blir sett på som nemlig. "Tekst" Mens tekst omgitt av ` blir sett på som en rad\tabell. Din spørringe burde være noe mer lik: SELECT * FROM $date WHERE `bok`='$bok' AND `kapittel`='$kapittel' AND `linjenr`='$linjenr' Men du trenger ikke alltid `. For mysql skjønner lett hva det er. Jeg bruker personlig bare ` når jeg har et felt med "reservert" navn. F.eks om jeg har et felt i min database med navnet "SELECT" så er det og en reservert tekst så kan ikke skrive: SELECT * FROM tabell WHERE select=10 Siden "SELECT" er reservert og en kommando. Rette løsning ville vært: SELECT * FROM tabell WHERE `select`=10 Også som nevnt over ser du at du mangler en fnutt etter $bok, du har også tekstfnutter (') rundt kapittel, de må være rundt $kapittel istede. ugyldig: select * from $data where bok='$bok AND 'kapittel'=$kapittel AND linjenr=$linjenr gyldig: select * from $data where bok='$bok' AND kapittel='$kapittel' AND linjenr=$linjenr
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå