Select password i opdatering af projekttekstengreenspun.com : LUSENET : WebdesignII : One Thread |
Jeg har problemer med min sidste fil i øvelse 10. Det er den fil, hvor det indtastede password sammenlignes med password'et fra databasen. Problemet består i selve selektionen. Jeg har forsøgt med både 'database_to_tcl_string' og 'catch'-kommandoen, men de fejler begge to.# Min kode ser således ud:
set_the_usual_form_variables
set db [ns_db gethandle]
set query "select password from projekt where projekt_titel='$projekt_titel'"
set password [database_to_tcl_string $db $query]
# "passw" er navnet på variablen fra indtastningsformularen
if { $passw !=$password } { ns_return 200 text/html "Dit password er forkert..." return } else { set db [ns_db gethandle] ns_db dml $db "update projekt set projekt_tekst = '$projekt_tekst' where projekt_titel = '$projekt_titel' " }
# Redirect the user to the comments page ns_returnredirect "projekt.tcl"
#Fejlkoden som returneres ser sådeledes ud:
Database operation "1row" failed (exception NSINT, "Query did not return a row.") while executing "ns_db 1row $db $sql" (procedure "database_to_tcl_string" line 3) invoked from within "database_to_tcl_string $db $query" invoked from within "set password [database_to_tcl_string $db $query] " (file "/web/jj/www/oevelse10/opdater_projekt.tcl" line 7) invoked from within "source $file"
-- Joacim Jeppesen (jj@it-c.dk), April 17, 2001
fejlmeddelelsen betyder, at der ikke er nogen række i tabellen projekt der har en projekttitel som den ud indtastede, eller måske at tabellen projekt slet ikke findes.Prøv at udføre din select manuelt i sql-promptet og få det til at virke der - og husk commit hvis du ændrer på databasen.
-- Niels Hallenberg (nh@it-c.dk), April 18, 2001.