Hi all,
I made a toy database. Two tables are "students" (a collection of student
info) and "message" (private messages I want individual students to read).
The "message" table is indexed by a student's social security number.
student
last, first, ssn, address, city, state, zip, email
message
msg1, ssn
I'm trying to update msg1, unsuccessfully. Everything *seems* to go
perfectly. The $_POST variables exist and hold what I think they should
hold, the SQL looks OK. I checked the sqlite website, and "UPDATE" is
indeed supported. I've been scratching my head a lot over this one:
The given code is (note My_Header() and My_Footer() just interject a little
HTML, like "<html>" and the like):
// We picked the class and student. Now display the current message.
//
if ( isset($_REQUEST['action']) && $_REQUEST['action'] == 'editmsg' )
{
$handle = sqlite_open($_SESSION['dbfile'])
or die("Could not open database.");
$query = "SELECT msg1 FROM message " .
"WHERE ssn = '" . sqlite_escape_string($_POST['ssn']) . "'";
$result = sqlite_query( $handle, $query );
if ( sqlite_num_rows($result) > 0 )
$msg = sqlite_fetch_single($result);
else
$msg = '';
My_Header("Messages");
?>
<form method="post" action="<? echo $_SERVER['PHP_SELF'];
?>?action=submitedit">
<textarea name="msg" cols="40" rows="8">
<? echo "+$msg+" ?></textarea>
<p><input type="hidden" name="ssn" value="<? echo $_POST['ssn']
?>"></p>
<p><input type="submit" value="Edit"></p>
</form>
<?
My_Footer();
exit(0);
}
// If we're here, it's because we want to update the message in the
// database. This performs the SQL using "UPDATE".
//
if ( isset($_REQUEST['action']) && $_REQUEST['action'] == 'submitedit' )
{
$handle = sqlite_open($_SESSION['dbfile'])
or die('Error in query: ' .
sqlite_error_string(sqlite_last_error($handle)));
$query = "UPDATE message " .
"SET msg1 = '" . sqlite_escape_string($_POST['msg']) . "' " .
"WHERE ssn = '" . sqlite_escape_string($_POST['ssn']) . "'";
sqlite_query($handle, $query)
or die('Error in query: ' .
sqlite_error_string(sqlite_last_error($handle)));
Header("Location: " . $_SERVER['PHP_SELF'] . "?action=chose");
exit(0);
}
?>
Anything wrong with this code? I've tried to write as defensively as I can.
Thanks!
Pete
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php