On Aug 13, 1:29 pm, Rik <luiheidsgoe...@hotmail.comwrote:
On Mon, 13 Aug 2007 21:21:11 +0200, Big Moxy <bigm...@gmail.comwrote:
On Aug 13, 12:44 pm, burgermeiste...@gmail.com wrote:
On Aug 13, 12:53 pm, Big Moxy <bigm...@gmail.comwrote:
Can someone please advise me on how to implement this?
The data entered by a user on form 1 on page1.php is posted to
delete.php to remove that row from a table. After the SQL operation
the user is returned to page1.php.
How can I determine the success or failure of the SQL operation so I
can display an appropriate response message to the user?
Thank you!
Another option is this:
mysql_query() will return false if an error occurs, so if you put your
execute statement in an if statement as following you can get a
boolean success/failure response:
if(mysql_query()){
return "Yay! Success";}else{
return "Failure";
}
Additionally, mysql_error() can tell you what went wrong.
Apparently today is not my lucky day. When no row is deleted the URL
is pointing to my delete.php and not page1.php yet the browser display
seems to refresh.
BTW I got the same result with the mysql_affected_rows().
Here is a snippet of the delete.php code -
$Result1 = mysql_query($deleteSQL, $emailmanager) or
die(mysql_error());
if (mysql_query()) {
The previous code was just an illustration. In this case it should be:
$Result1 = mysql_query($deleteSQL, $emailmanager);
if($Result1 && mysql_affected_rows()){
$_SESSION["mysql_query_result"] = "Your email address has been
successfully removed";
}
else {
$_SESSION["mysql_query_result"] = "Your email address was not
found. Please try again";
}
$deleteGoTo = "/casper/emailmanager.php";
if (isset($_SERVER['QUERY_STRING'])) {
$deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
$deleteGoTo .= $_SERVER['QUERY_STRING'];
header(sprintf("Location: %s", $deleteGoTo));
Actually, you should try to get a full URL in the redirect (possibly by
using 'http://'.$_SERVER['HTTP_HOST'].$deleteGoTo). Officially it's
required, allthough most user agents can handle relative URL's quite well
one shouldn't rely on it.
--
Rik Wasmus- Hide quoted text -
- Show quoted text -
Well, perhaps I'm getting closer. The URL is now page1.php but now
results message is not displayed. I've passed $_SESSION variables
forward before but not back. The method I used for forward passing is
session_start();
foreach ($_POST as $key =$value) {
$_SESSION[$key] = $value;
}
I tried that but it did not work in this scenario.
Here is the delete code -
if (mysql_query($deleteSQL,$emailmanager) &&
mysql_affected_rows()>0) {
$_SESSION["mysql_query_result"] = "Your email address has been
successfully removed";
}else {
$_SESSION["mysql_query_result"] = "Your email address was not
found. Please try again";
}
$deleteGoTo = "/casper/page1.php";
if (isset($_SERVER['QUERY_STRING'])) {
$deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
$deleteGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", "http://".$_SERVER['HTTP_HOST'].
$deleteGoTo));
Here is the page1 code -
$result_message = "";
if ((isset($_SESSION['mysql_query_result'])) &&
($_SESSION['mysql_query_result'] != "")) {
$result_message = $_SESSION['mysql_query_result'];
}
....
<td align="center" colspan="2">
<?php
echo $result_message;
?>
</td>