I cant understand why this update script is not working, everything seems ok but it always return the error "could not update post". Does anyone know why, here is the script I am using <?php $id = (int) $_GET["id"]; require_once("./common.php"); $submitx = $_POST["sx"]; $connect = @mysql_connect(CONNECT_HOST,CONNECT_USERNAME,CONNECT_PASSWORD) or die ("Could not connect to the host server"); $database = @mysql_select_db(DB_USERNAME) or die ("Could not connect to the database"); $select_post = @mysql_query("SELECT text, h1 FROM `".DB_TABLE_POSTS."` WHERE (`id`='$id') LIMIT 0,1") or die ("Could not find post"); $row_cat = mysql_fetch_array($select_post); $post = $row_cat["text"]; $h1 = $row_cat["h1"]; @mysql_free_result($select_post); if ($submitx) { $text = $_POST["t"]; $cmts = (int) $_POST["c"]; $show = (int) $_POST["s"]; $feed = (int) $_POST["f"]; trim($text); $full_post = $post.' '.$text; $add = @mysql_query("UPDATE `".DB_TABLE_POSTS."` SET `text` = '".$full_post."', `comment_status` = '".$cmts."', `show` = '".$show."', `feed` = '".$feed."' WHERE (`id` = '$id') LIMIT 0,1") or die ("Could not update post"); @mysql_free_result($add); @header("location:./s.php"); exit(); } @mysql_close($connect); @header("cache-control:no-cache,no-store,must-revalidate"); @header("pragma:no-cache"); ?><form action="./mobyadd.php?id=<?php echo($id); ?>" method="post"> <?php echo($h1); ?> <textarea name="t"></textarea> Comments <input type="text" name="c" size="1" maxlength="1" value="1"/> Show <input type="text" name="s" size="1" maxlength="1" value="1"/> Feed <input type="text" name="f" size="1" maxlength="1" value="1"/> <input type="submit" name="sx" value="SUBMIT"/> </form> PHP:
I think its the "LIMIT 0,1". The update statement expects only a row count after LIMIT, not start and end rows like select. Try changing it to "LIMIT 1"
nah its not that, i have tried it before and have just tried it again, i dont get it everything looks fine! but it doesnt work, aargh
Toss in a mysql_error(); Maybe that'll help .. $add = @mysql_query("UPDATE `".DB_TABLE_POSTS."` SET `text` = '".$full_post."', `comment_status` = '".$cmts."', `show` = '".$show."', `feed` = '".$feed."' WHERE (`id` = '$id') LIMIT 0,1") or die ("Could not update post". mysql_error()); PHP: EDIT: ah .... to late ...
Rederick you are a star! I was about to pull all my hair out then! Eventhough I said it was working I found out it was only working for some of the posts, you tip found the solution. I was not adding addslashes which caused the query to break on some updates. You wont believe how pleased I am right this minute, been trying to get a solution for ages. Right now I feel like smooching you, and hell, I'm not even gay.