madompa Skrevet 26. januar 2007 Skrevet 26. januar 2007 (endret) Si jeg har for eksempel skal finne ut om det allerede finnes et brukernavn i en tabell i databasen som har madompa som innhold, hvordan kan jeg gjøre det på en enkelst mulig måte? Jeg kan jo bruke løkker og sjekke alle radene "manuelt", eller jeg kan gjøre noe lignende $finnes = false; $resultat = @mysql_query("select brukernavn from brukere where brukernavn = 'madompa';", $tilkobling); while ( $rad = @mysql_fetch_array($resultat) ) { $finnes = true; } if ( $finnes == true ) { osv. } men det må da finnes en enklere måte ? På forhånd takk ^^ Endret 26. januar 2007 av madompa
Gjest Slettet+142 Skrevet 26. januar 2007 Skrevet 26. januar 2007 (endret) $finnes = false; $resultat = @mysql_query("select brukernavn from brukere where brukernavn = 'madompa';", $tilkobling); if ( @mysql_num_rows($resultat) > 0 ) { $finnes = true; } if ( $finnes == true ) { osv. } denne skal virke? ellers kan du bare lage brukernavn-feltet unikt edit: du hadde en @ der ja.. Endret 26. januar 2007 av Slettet+142
PHPdude Skrevet 26. januar 2007 Skrevet 26. januar 2007 (endret) Kan vel gjøre noe sånt: <?php $res = $db->query("SELECT * FROM tabell WHERE username = 'brukernavn'"); $finnes = ($res->num_rows > 0); ?> Endret 26. januar 2007 av PHPdude
Ståle Skrevet 26. januar 2007 Skrevet 26. januar 2007 $resultat = @mysql_query("select brukernavn from brukere where brukernavn = 'madompa';", $tilkobling); if(mysql_num_rows($resultat) != 0) { $finnes = true; osvosv } else $finnes = false; kanskje?
Gjest Slettet+142 Skrevet 26. januar 2007 Skrevet 26. januar 2007 (endret) man kan vel korte den enda mer.. men blir en lang linje da: if( mysql_num_rows( ( $resultat = @mysql_query( "select brukernavn from brukere where brukernavn = 'madompa';", $tilkobling ) ) ) != 0){ //osv. } hvis den over skaper feilmelding, virker kanskje denne bedre? if( mysql_num_rows( @mysql_query( "select brukernavn from brukere where brukernavn = 'madompa';", $tilkobling )) != 0){ //osv. } Endret 26. januar 2007 av Slettet+142
PHPdude Skrevet 26. januar 2007 Skrevet 26. januar 2007 (endret) Jøss, nå har fire brukere svart på det samme spørsmålet her... Vil tro at en er nok? Jaja, da har han hvertfall fått mye å velge i Registrerer også at dere legger til @ foran mysql_* funksjoner, hvorfor? Blir jo bare tull å fjerne en og en eventuell feilmelding. Kjører man på localhost for å teste så ønsker man jo å se feilmeldinger for å finne feilen. Kjører man på en produksjons-server så tar man heller og skrur av all visning av feilmeldinger med "error_reporting(0);" http://no2.php.net/manual/en/function.error-reporting.php Endret 26. januar 2007 av PHPdude
Gjest Slettet+142 Skrevet 26. januar 2007 Skrevet 26. januar 2007 mhm.. mye å ta i der sa du noe jeg aldri har tenkt på til serveren min.. error_reporting(0).. takker
madompa Skrevet 26. januar 2007 Forfatter Skrevet 26. januar 2007 Takk for alle svar Selvlagde feilmeldinger er fortsatt irriterende selv om man kjører på localhost Men ser jo pointet ditt
PHPdude Skrevet 26. januar 2007 Skrevet 26. januar 2007 Så klart det er irriterende, men hvordan har du tenkt å løse det vis du ikke ser hva feilen er, eller at det er en feil i hele tatt? Feilmeldingene lages ikke for å pynte heller, de lages for å fortelle at noe er feil og må fikses. Under utviklingen (på localhost) så bør man sette error_reporting(E_ALL | E_STRICT); så man ser alle feilene og kan luke dem ut med en gang. Mange småfeil her og der, blir et gigantisk problem en dag.
madompa Skrevet 26. januar 2007 Forfatter Skrevet 26. januar 2007 (endret) Så klart det er irriterende, men hvordan har du tenkt å løse det vis du ikke ser hva feilen er, eller at det er en feil i hele tatt? Feilmeldingene lages ikke for å pynte heller, de lages for å fortelle at noe er feil og må fikses.Under utviklingen (på localhost) så bør man sette error_reporting(E_ALL | E_STRICT); så man ser alle feilene og kan luke dem ut med en gang. Mange småfeil her og der, blir et gigantisk problem en dag. 7806630[/snapback] Ja, så klart. Men mener at når man vet, og når det er "meningen" for å få frem riktig resultat, at det skal skje en feil som i eksemplene tidligere i tråden, så er det jo greit å luke de ut ved å bruke @. Mener nå jeg. Edit: Off-topic btw Endret 26. januar 2007 av madompa
Gjest Slettet+142 Skrevet 26. januar 2007 Skrevet 26. januar 2007 vel.. du har fått svaret du trengte sant? du har ikke sagt om det virket slik som du ville men det som PHPdude sier er jo riktig. holder på å lage siden min på nytt for tredje gang på rad nå, og hver gang har jeg laget den på localhost.. når jeg har lagt den ut, popper det plutselig feilmeldinger på alt. enten inkluderes ikke en side, ellers så mengler det "plutselig" et tegn her og der =/
madompa Skrevet 26. januar 2007 Forfatter Skrevet 26. januar 2007 (endret) vel.. du har fått svaret du trengte sant? du har ikke sagt om det virket slik som du ville 7807093[/snapback] Ja, det funket flott Som sagt; takk takk men det som PHPdude sier er jo riktig. holder på å lage siden min på nytt for tredje gang på rad nå, og hver gang har jeg laget den på localhost.. når jeg har lagt den ut, popper det plutselig feilmeldinger på alt. enten inkluderes ikke en side, ellers så mengler det "plutselig" et tegn her og der =/ 7807093[/snapback] Ja, jeg er fortsatt enig, men som jeg har sagt så er ikke alltid @ dumt å bruke. Det er sikkert alltid måter å unngå det, men det kan jo ofte gå mye raskere hvis man bruker det. Ta fra eksemplene ovenfor; if( mysql_num_rows( ( $resultat = @mysql_query( "select brukernavn from brukere where brukernavn = 'madompa';", $tilkobling ) ) ) != 0){ //osv. } Hadde ikke det vært en @ foran mysql_query'en, ville det ha kommet en feilmelding hvis brukeren ikke fantes. Dette vet jeg, derfor kan jeg sette en @ foran, fordi det er meningen at spørringen ikke skal fungere hvis ikke brukeren finnes. Da er det bare irriterende med en feilmelding som popper opp. Det er i slike tilfeller jeg mener @ kan brukes, ser ingen skade ved det? Men uansett, det var ikke det denne tråden handlet om, hvis noen vil lage en krøllalfa-tråd så får de gjøre det God natt Edit: Skrivefeil en sen fredagskveld.. Endret 26. januar 2007 av madompa
PHPdude Skrevet 26. januar 2007 Skrevet 26. januar 2007 Ja, så klart. Men mener at når man vet, og når det er "meningen" for å få frem riktig resultat, at det skal skje en feil som i eksemplene tidligere i tråden, så er det jo greit å luke de ut ved å bruke @. Mener nå jeg. 7807030[/snapback] Meningen å lage feil? Vis du koder på en måte som lager feil med vilje bør du virkelig tenke deg om igjen. I hvilke situasjoner skulle det være smart? Eksempler? mariyo: Du for prøve å få det riktig den tredje gangen da! Vil tro at alle erfarne utviklere har vært gjennom det samme. Husker at jeg etter lang tids strev endelig begynte å bli "ferdig" med et prosjekt da jeg en uke etterpå fant ut at jeg trengte mer funksjonalitet og at koden var så dårlig strukturert at det bare var å begynne på nytt... Etter at den samme historien gjentok seg så tok jeg to måneder pause hvor jeg fordypet meg i teori og studerte gode designvaner. Etterpå designet jeg prosjektet fra bånn av og har siden ikke hatt behov for særlig endring i grunnsystemet. Min gyldne regel: For hver time med teori, sparer man to timer med koding!
Gjest Slettet+142 Skrevet 26. januar 2007 Skrevet 26. januar 2007 heh.. 14 år, lest én bok.. bør jeg lese flere? jeg klarer absolutt ikke design og har ikke peiling på hva funksjonen av siden skal være, men har eget domene og server, så.. rart egentlig
madompa Skrevet 1. februar 2007 Forfatter Skrevet 1. februar 2007 Meningen å lage feil? Vis du koder på en måte som lager feil med vilje bør du virkelig tenke deg om igjen. I hvilke situasjoner skulle det være smart? Eksempler? Nå mener jeg bare i spesifikke ting som jeg synes det er hensiktsmessig å la det kunne bli feil, slik at som kommer koden under ikke vil bli utført. Hvis jeg f.eks. ikke skulle ha brukt @ i koden nedenfor, ville jeg ha fått en feilmelding hvis brukeren ikke fantes. Da er altså ikke eksemplene som jeg har fått ovenfor brukbare, siden de baserer seg på om spørringen kan utføres eller ikke; ergo vil vise en feilmelding hvis den ikke kan utføres. Rett meg hvis jeg har feil. if( mysql_num_rows( @mysql_query( "select brukernavn from brukere where brukernavn = 'madompa';", $tilkobling )) != 0){ //osv. }
PHPdude Skrevet 1. februar 2007 Skrevet 1. februar 2007 Nå vil koden i eksempelet ditt ikke egentlig lage noen feil da, bare vis du kjøre en eldgammel versjon av mysql, har vertfall ikke klart å produsere noen feil på min server. Hadde også skrevet en forklaring på hvorfor det du skriver er feil og hvilke alternativer du har, men teksten forsvant og orker ikke skrive den igjen, nå vertfall.
madompa Skrevet 1. februar 2007 Forfatter Skrevet 1. februar 2007 Nå vil koden i eksempelet ditt ikke egentlig lage noen feil da, bare vis du kjøre en eldgammel versjon av mysql, har vertfall ikke klart å produsere noen feil på min server. Hadde også skrevet en forklaring på hvorfor det du skriver er feil og hvilke alternativer du har, men teksten forsvant og orker ikke skrive den igjen, nå vertfall. 7850378[/snapback] Mulig jeg da kjørte en gammel versjon, eller at det var noe annet som gjorde at jeg gjorde fikk feil den gangen jeg prøvde det første gangen. Ser at det funker nå. Men står fortsatt inne for at jeg synes at bruk av @ kan gå an. Selv om dere innlysende har mer innsikt enn meg på dette feltet.. Det viktigste er vel at det virker. Men gidder ikke henge meg opp i det nå, det var ikke det tråden var om, og jeg har fått svar på det jeg lurte på.
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å