Select password i opdatering af projektteksten

greenspun.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

Answers

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.


Moderation questions? read the FAQ