TalkPHP

TalkPHP (http://www.talkphp.com/forums.php)
-   Absolute Beginners (http://www.talkphp.com/absolute-beginners/)
-   -   the reate code douesnt work SOS plz (http://www.talkphp.com/absolute-beginners/1925-reate-code-douesnt-work-sos-plz.html)

webtuto 01-10-2008 02:42 PM

the reate code douesnt work SOS plz
 
why this code douesnt work !!!!!!!!
PHP Code:

<form method="post" action="">
<b>Rate this tutorial</b> <select value="rate">
<option name=1>1</option>
<option name=2>2</option>
<option name=3>3</option>
<option name=4>4</option>
<option name=5>5</option>
<input type="submit" value="rate" name="value">
</form>
<?php
if($_POST['value']){
$sql="insert into `tutorialz`.`tuto` SET `rate`='$_POST[rate]' WHERE `id`='$get'";
$res mysql_query($sql) or die('Database error: ' mysql_error());
if(
$res) {
  echo
"Thanks for rating<br><br>";
}else{echo
"it was a problem in the rate plz try again!<br><br>";}
}

I use it to rate the tutorialz in my script

and it gives error =>
Database error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `id`='5'' at line 1

RobertK 01-10-2008 03:22 PM

From what I see, your tables are set wrongly for rating tutorials. What you'd want is a new table like this:
sql Code:
CREATE TABLE `ratings`
(
  tut_id INT UNSIGNED NOT NULL,
  rating  TINYINT UNSIGNED NOT NULL
);

Then you'd insert the rating:
sql Code:
INSERT INTO `ratings` VALUES ($get, $rate);

You can get a rating by a subquery, like so:
sql Code:
SELECT
  *,
  (
    SELECT
      AVG(`rating`)
    FROM
      `ratings`
    WHERE
      `ratings`.`tut_id` = `tutorials`.`id`
  )
AS
  `rating`
FROM
  `tutorialz`;

Understand that I haven't tested this so I might have made a mistake, but this should work for you. :-)

webtuto 01-10-2008 04:53 PM

thanks but see the error =>

Database error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '3)' at line 1

SOCK 01-10-2008 04:55 PM

webtuto> An INSERT statement cannot use a WHERE clause. You either perform an INSERT and it inserts data (imagine that) or you perform an UPDATE where you can define columns to update WHERE some condition is met.

MySQL Manual : SQL Statement Syntax : INSERT syntax | UPDATE syntax

Also, please read the MySQL Tutorial.
SQLZoo is also a good reference.

webtuto 01-10-2008 05:17 PM

thanks i solve the problem


All times are GMT. The time now is 11:25 AM.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0