ummairt Skrevet 21. april 2007 Del Skrevet 21. april 2007 (endret) Jeg har laget et registrerings felt for siden, hadde tidligere problemer med å legge til en bruker ( nærmere bestemt oppdatere et kundenummer i databasen ) som nå er fikset. Problemet nå er at jeg ønsker å sjekke imor databasen ( tabellen kundenavn ) å sjekke om kunden allerede er registrert.. Koden trenger en del oppussing.... Klikk for å se/fjerne innholdet nedenfor $query1="select * from kundenavn"; // tabell kundenavn med atributter kundeid, . //kundenavn og kundepassord $stmt = baseQuery($conn, $query1); // hva skal jeg gjøre etter dette Endret 29. april 2007 av ummairt Lenke til kommentar
Peter Skrevet 21. april 2007 Del Skrevet 21. april 2007 (endret) Hva slags info har du om kunden? Dvs. hvilken info vil du sjekke om allerede finnes? For å sjekke om f.eks. emailadressen allerede er registrert kan du gjøre slik: PHP <?php /* LIMIT 1 er egentlig bare optimalisering ettersom vi vet at emailadressen bare er registrert èn gang (for det er vel poenget her), og trengs egentlig ikke dersom email f.eks. har attributen UNIQUE (noe den burde ha dersom du vil at emailadresser bare skal brukes èn gang) */ $res = mysql_query( "SELECT email FROM kunde WHERE email = '".$ny_email."' LIMIT 1 " ); if( mysql_num_rows( $res ) > 0 ) echo 'emailen eksisterer allerede'; else echo 'emailen er ikke registrert i databasen'; ?> Endret 21. april 2007 av Nazgul Lenke til kommentar
ummairt Skrevet 22. april 2007 Forfatter Del Skrevet 22. april 2007 Takk for svar, Men problemet her er at jeg ikke er kjent med bruk av mySQL, ( det er vel noe forskjell mellom syntaksen til SQL og mysql , og jeg tror ikke UiO sin database server støtter mySQL.... Jeg prøvde med syntaksen du ga .. men det fungerte uheldigvis ikke ... feilmeldingen jeg fikk var.... Klikk for å se/fjerne innholdet nedenfor Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /uio/aristoteles/s02/ummairt/www_docs/php/webformskrivutinndata.php on line 16 Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /uio/aristoteles/s02/ummairt/www_docs/php/webformskrivutinndata.php on line 16 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /uio/aristoteles/s02/ummairt/www_docs/php/webformskrivutinndata.php on line 17 emailen er ikke registrert i databasenGratulerer, du kan nå logge deg på med ummairt som brukernavn, og bestille deg mat Lenke til kommentar
Peter Skrevet 22. april 2007 Del Skrevet 22. april 2007 8444933[/snapback] uio støtter mysql, brukte det selv i fjor Ellers har de også oracle. men den syntaksen jeg har skrevet over er ANSI-sql, det eneste er at kallene kanskje må byttes it med oracle-ekvivalente. Sjekk ut http://www.php.net/oci8 Lenke til kommentar
magicgunnar Skrevet 22. april 2007 Del Skrevet 22. april 2007 Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /uio/aristoteles/s02/ummairt/www_docs/php/webformskrivutinndata.php on line 16 Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /uio/aristoteles/s02/ummairt/www_docs/php/webformskrivutinndata.php on line 16 8444933[/snapback] Ser ut for meg som du ikke får koblet til databasen, kan det hende at socket-filen ikke ligger der du tror den ligger? Googlet feilmeldingen din, kanskje dette er trikset: http://www.tech-recipes.com/mysql_tips762.html Sjansene er store for at det har noe med oppsettet til UiO å gjøre og at det lett kan fikses! Du må bare finne riktig person å spørre, kanskje en termvakt? Lenke til kommentar
ummairt Skrevet 23. april 2007 Forfatter Del Skrevet 23. april 2007 Fant opp en annen måte å løse problemet på ... men jaggu meg så dukka det atter opp et nytt problem ( løsningen var forøvrig å ha kundenummer definert som UNIQUE i tabellen ) Jeg klarer nå å få en oci_excecute protestasjon ..... Det jeg ønsker nå er et denne meldingen ikke dukker opp , altså at det bare skrives at brukernavnet allerede er i bruk , prøv med noe annet .... Koden har fått følgende utforming $check = oci_execute($statement); if(!$check){ print "$navn er allerede i bruk"; header(registrer.php); } else{ print "Gratulerer, du kan nå logge deg på med $navn som brukernavn, og bestille deg mat"; } */ feilmeldingen jeg ønsker å fjerne er Warning: oci_execute() [function.oci-execute]: ORA-00001: unique constraint (UMMAIRT.SYS_C00399297) violated in /uio/aristoteles/s02/ummairt/www_docs/php/webformskrivutinndata.php on line 32 */ Lenke til kommentar
magicgunnar Skrevet 23. april 2007 Del Skrevet 23. april 2007 Fant opp en annen måte å løse problemet på ... men jaggu meg så dukka det atter opp et nytt problem ( løsningen var forøvrig å ha kundenummer definert som UNIQUE i tabellen ) Warning: oci_execute() [function.oci-execute]: ORA-00001: unique constraint (UMMAIRT.SYS_C00399297) violated in /uio/aristoteles/s02/ummairt/www_docs/php/webformskrivutinndata.php on line 32 [/code] 8452698[/snapback] Prøver du å sette inn en verdi i databasen som må være unik og allerede eksisterer? Tror du kan fjerne feilmeldingen ved å sette @ foran kommandoen som genererer den, men dette er ikke spesielt pent, for per definisjon er det en feil med koden din. Du bør kanskje sjekke om verdien du skal sette inn i databasen allerede eksisterer og hvis den ikke gjør det kan du sette inn verdien. 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å