arnizzz Skrevet 16. november 2004 Del Skrevet 16. november 2004 Hei jeg har en del tabeller og felter jeg gjerne skulle laget et søkescript for. jeg kan desverre ikke nok MySQL til å lage det. Hvordan vil spørringen se ut hvis jeg vil gjøre noe som dette: søk i Tabell hvor Felt1, Felt2 og Felt3 er lik $variabel. Dette gjelder søk av artikler. Takk for hjelpen Lenke til kommentar
casualtie Skrevet 16. november 2004 Del Skrevet 16. november 2004 SELECT artikkeltittel FROM artikler WHERE artikkeltekst LIKE '%$variabel%' er et eksempel på en søk query. For sikkerheten sin skyld bør du ta en titt på funksjonen addslashes() Lenke til kommentar
Dagga Skrevet 16. november 2004 Del Skrevet 16. november 2004 Ikke lett å lage en SELECT setning ut av dette, og tråden hører vel mer innunder SQL. Når du skal søke i en SQL database bygger du setningen opp slik SELECT (Felt navn, ta med alle feltene du skal vise. om du har flere tabeller med like feltnavn, skriv på formen tabell.felt eller om du vil ha med alle tilgjengelige felt bruk *) from (tabelnavn. Ta med alle tabellene du skal bruke) where (her sammenlikner du verdier, f.eks felt1=$variabel e.l.) Problemet med utgangspunktet ditt er at det ville resultert i følgende spørring: SELECT * from tabell where felt1=$variabel and felt2=variabel and felt3=variabel Dette ville sansynligvis ikke gitt et eneste resultat, så sant ikke felt1, felt2 og felt3 er helt like, og det skal være spesielle tilfeller hvor dette har noe poeng. Lenke til kommentar
arnizzz Skrevet 16. november 2004 Forfatter Del Skrevet 16. november 2004 Ah. Skjønner hva du mener. Men når jeg skrev LIK, så mente jeg ikke _akkurat_ lik. Bare at teksten inneholdt noe som liknet det søkeordet. men hva med en slik spørring? SELECT * FROM artikler WHERE felt1 LIKE '%$variabel% OR felt2 LIKE '%$variabel%' felt3 LIKE '%$variabel% Er litt usikker på om det går ann å bruke OR. Er det veldig kritisk med addslashes() med tanke på sikkerheten? Skjønnte ikke helt hvorfor det øker sikkerheten. Lenke til kommentar
casualtie Skrevet 16. november 2004 Del Skrevet 16. november 2004 (endret) Jo du kan bruke OR. Addslashes er en funskjon som legger til \ ved spesielle tegn. Dette kan være tegn som quotes ". Men altså, det denne funksjonen har som hennsikt i dette tilfellet er å hindre i at brukere søker på "Skumle" ting. Når du direkte setter inn en variabel i et query så er det meget lett å trå feil. Får hvis brukeren skriver inn en mysql kode i søke boksen, blir denne lagt inn i querien, og dermed kan div. handlinger bli utført av brukeren. Men ved å skrive: $variabel = ddslashes($variabel); Før selve querien, blir alt meget sikrere. For som sagt blir da disse spesiall tegnene (som brukeren må skrive inn for å få en komplett kode) bli "slashet" bort, om du kan si det på den måten Håper du forstår Endret 16. november 2004 av casualtie Lenke til kommentar
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å