Welcome to WebmasterWorld Guest from 54.156.56.73

Forum Moderators: coopster & jatar k

Message Too Old, No Replies

UPDATE coming back successful but not changing db

     
5:47 pm on May 11, 2005 (gmt 0)

Preferred Member

10+ Year Member

joined:Apr 29, 2003
posts:424
votes: 0


Here is my code.
echo '<p>item updated successfully!</p>'; is triggered but db is not changed.
$_POST verriables are successfully passed to the PHP verriables.

if (isset($_POST['change'])): //if updates have been entered and need to be
$date=$_POST['date'];
$maincourse=$_POST['maincourse'];
$veggie=$_POST['veggie'];
$veggie2=$_POST['veggie2'];
$fruit=$_POST['fruit'];
$dessert=$_POST['dessert'];
$drink=$_POST['drink'];
$bread=$_POST['bread'];
$fromwhere=$_POST['fromwhere'];
$xdate=$_POST['xdate'];
$zdate=$_POST['zdate'];

$ok1 = @mysql_query("UPDATE $fromwhere SET
day='$day',
maincourse='$maincourse',

veggie='$veggie',
veggie2='$veggie2',
fruit='$fruit',
bread='$bread',
dessert='$dessert',
drink='$drink'
WHERE id='$id'");
if ($ok1) {
echo '<p>item updated successfully!</p>';
} else {
echo '<p>Error updating item in database!<br />'.
'Error: ' . mysql_error() . '</p>';
}

6:19 pm on May 11, 2005 (gmt 0)

Moderator

WebmasterWorld Administrator ergophobe is a WebmasterWorld Top Contributor of All Time 10+ Year Member Top Contributors Of The Month

joined:Apr 25, 2002
posts:8490
votes: 224


echo your query and see if it's what you want. For example, assuming that $id is not getting set properly you'll have

WHERE id='';

That is valid and will be successful as far as MySQL is concerned, but since it won't find a row with an id of '', no rows will be updated.

7:18 pm on May 11, 2005 (gmt 0)

New User

10+ Year Member

joined:Apr 8, 2004
posts:12
votes: 0


Add this to your code. This is what the end of it should look like.

WHERE id='$id'") or trigger_error(mysql_error());

This will give you an idea on if your program is erroring on the mysql query and on what part of the query.

The reason your program always says it's successful is because you have it checking if a variable has any information in it just after you assign it all kinds of information. It will always be true.

If you want to check to see if the query actually completes, do an if statement on the mysql_affected_rows().

if (mysql_affect_rows > 0) instead of $ok1 .

7:24 pm on May 11, 2005 (gmt 0)

Preferred Member

10+ Year Member

joined:Apr 29, 2003
posts:424
votes: 0


The problem was that i didn't pass the id to it... opps guess that was kind of important.

Now the only problem I have is that the day seems to set itself to 0000-00-00.

7:42 pm on May 11, 2005 (gmt 0)

New User

10+ Year Member

joined:Apr 8, 2004
posts:12
votes: 0


I messed up in my post too.

It's mysql_affected_rows() not what I put above

On your problem, how are you getting the date? Is the date row in your table set to DATE in MySQL?

If so, it needs to fit a certain structure.

It's YYYY-MM-DD

[dev.mysql.com...]

EDIT: Didn't notice you had it that way already. I would make sure it's submitting correctly though.

2:47 pm on May 12, 2005 (gmt 0)

Preferred Member

10+ Year Member

joined:Apr 29, 2003
posts:424
votes: 0


Got the Date working. I changed the structure for display when quering to read something like Tue, Oct. 8. When I copied and pasted the sql query
(hey it was a long query and I'm to lazy to retype it) I had to delete that
 

Join The Conversation

Moderators and Top Contributors

Hot Threads This Week

Featured Threads

Free SEO Tools

Hire Expert Members