pgdx Skrevet 4. mai 2004 Del Skrevet 4. mai 2004 Hei... Holder på å legge til noen epostadresser i en tabell, og lurer på hva den letteste måten er å sjekke om epostadressen allerede er lagt til i feltet ´epost´. Noen som har noen forslag? Mvh Pål Drange Lenke til kommentar
LoS Skrevet 4. mai 2004 Del Skrevet 4. mai 2004 (endret) $q=mysql_query("SELECT mail FROM tabell WHERE mail = $mail"); if(mysql_num_rows($q) > 0){ echo "feilmelding hvis e-posten finnes"; } Mener denne er ganske bra jeg edit: eller kanskje ikke? lar den stå ihvertfall. edit2: glemte semikolon Endret 4. mai 2004 av LoS Lenke til kommentar
pgdx Skrevet 4. mai 2004 Forfatter Del Skrevet 4. mai 2004 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /customers/adresse on line 27 Lenke til kommentar
LoS Skrevet 4. mai 2004 Del Skrevet 4. mai 2004 (endret) har du lagt til den semikolon greia jeg tydeligvis klarte å glemme? http://no2.php.net/manual/en/function.mysql-num-rows.php edit: og selvfølgelig skrevet spørringen helt riktig da Endret 4. mai 2004 av LoS Lenke til kommentar
???????? Skrevet 4. mai 2004 Del Skrevet 4. mai 2004 Mye enklere å gjøre feltet unikt - da setter du bare en test på queryen for å sjekke at den er true - fordelen er at du slipper du å kjøre flere spørringer enn nødvendig. Lenke til kommentar
LoS Skrevet 4. mai 2004 Del Skrevet 4. mai 2004 Det er tydelig at jeg har mye å lære Lenke til kommentar
pgdx Skrevet 4. mai 2004 Forfatter Del Skrevet 4. mai 2004 Mye enklere å gjøre feltet unikt - da setter du bare en test på queryen for å sjekke at den er true - fordelen er at du slipper du å kjøre flere spørringer enn nødvendig. God idé! At jeg ikke tenkte på det! Men hvordan blir det med feilmeldinger da? Kommer det bare en mysql_error() ? LoS: Det var ihvertfall en god tanke... Og, ja, merket ;-feilen, og fant den før lang tid var gått... Lenke til kommentar
???????? Skrevet 4. mai 2004 Del Skrevet 4. mai 2004 Du burde alltid sjekke om en spørring, spesielt INSERT, ble gjennomført. Ellers vet du ikke om data en besøkende registrerer blir lagret. Bruk f.eks. mysql_affected_rows(). Bruk den sammen med mysql_errno så kan du informere brukeren om hvorfor data ikke ble lagret. Lenke til kommentar
Nervetattoo Skrevet 5. mai 2004 Del Skrevet 5. mai 2004 Eller bare: if (mysql_query("INSERT INTO ........")) Lenke til kommentar
???????? Skrevet 5. mai 2004 Del Skrevet 5. mai 2004 Eller bare:if (mysql_query("INSERT INTO ........")) Nope Det er mange som gjøre det, men det er en dårlig måte å sjekke på. Den returnerer kun false dersom det er en error. Glem ikke at det kan finnes andre årsaker til at data ikke blir lagret. Lenke til kommentar
Nervetattoo Skrevet 5. mai 2004 Del Skrevet 5. mai 2004 Er ikke en bra metode. Men den absolutt enkleste. Den vil returnere true om data blir lagret, og false om de ikke blir lagret. Grunnen til at de ikke blir lagret får du jo ikke vite da. Personlig har jeg sjelden behov for grunnen, enten er det pga måten mysql tabellen er bygd opp med unike felt som gjør at det ikke kan lagres. Eller så er det en feil i spørringen. Feil i spørringen rettes kjapt opp. Hvilke andre grunner kan det være at spørringen ikke "lykkes" da? Ellers så bruker jeg mysql_affected_rows om jeg må være virkelig sikker på at en post faktisk ble endret/skrevet. Men vil ikke si at du ikke kan gjøre det med metoden jeg nevnte. Lenke til kommentar
???????? Skrevet 5. mai 2004 Del Skrevet 5. mai 2004 På den delen med unike felter vil den fungere, men som du selv sier "Er ikke en bra metode". Når du har utviklet en den større scripts vil du fort finne ut at ting er ikke alltid like stabile når de har mange besøkende. Grunner til at en query ikke returnerer false kan være alt fra at du har sletter $query, bruker feil query til at det rett og slett oppstår en feil mellom php og mysql - som du sikkert skjønner så finnes det utallige muligheter. Du kan gjerne bruke if($result, men hvorfor gjøre det når den ikke er like effektiv? Lenke til kommentar
Nervetattoo Skrevet 5. mai 2004 Del Skrevet 5. mai 2004 Jeg regner ikke feil i koden som feil. Jeg tenker på det ferdige produktet. Skal du først være sikker så bør man jo også da hente ut kolonnen man skrev, for så å sjekke den mot det man ønsket å skrive. Men det må nesten tilpasses etter hvor viktig akkurat den spørringen er. Og i visse tilfeller, så kan det holde å bruke den enkle if setning metoden. Men er nok ikke så mye å diskutere egentlig. Tror egetnlig vi mener omtrent det samme uansett 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å