...

View Full Version : simple rating script errors Warning: mysql_num_rows(): supplied argument is not a val



farkewie
06-07-2007, 02:46 PM
Hi have am new to php this is one of my first hand writen script its just a basic rating script, im getting some errors i cant work out, any help would be great. google says it may be because the script cant find the database but it is because it told me it couldnt find some colums, but when i got rid of the spelling mistakes im still getting errors.

below is my code and erors


<?php
$id = $_POST['id'];

//Grabing the details from the name table

$connection=mysql_connect("localhost","username", "password") or die("Unable to connect!"); /* change this! */

mysql_select_db("database") or die("Unable to select database!"); /* change this! */

$result = "SELECT * FROM name WHERE id='$id'";
$numrow = mysql_num_rows ($result);

// converting thenm into objects
$row = mysql_fetch_array($result);

$domain = GetHostByName($REMOTE_ADDR);
$submit_rating = $_POST['rate'];
$num_votes = $row["num_votes"];
$votes_total = $row["votes_total"];
$new_num_votes = ($num_votes + 1);
$new_votes_total = ($votes_total + $submit_rating);
$rating = (new_votes_total / $new_num_votes);


$query2 = "UPDATE name SET `num_votes` = '$new_num_votes',
`votes_total` = '$new_votes_total',
`rating` = '$rating'" ;


$result2=mysql_query($query2) or die("Error in query:".mysql_error());
//if ($result)
//echo mysql_affected_rows()." row inserted into the database effectively.";

// CLOSE CONNECTION --->

header ("Location:".$_SERVER['HTTP_REFERER']." ");



mysql_close($connection);
?>


errors:


Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/tyspicsc/public_html/posthate/rating_action.php on line 11

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/tyspicsc/public_html/posthate/rating_action.php on line 14

Warning: Cannot modify header information - headers already sent by (output started at /home/tyspicsc/public_html/posthate/rating_action.php:11) in /home/tyspicsc/public_html/posthate/rating_action.php on line 36

CFMaBiSmAd
06-07-2007, 04:31 PM
Somewhere prior to the mysql_num_rows(...) statement, there needs to be a mysql_query(...) statement -

$result = "SELECT * FROM name WHERE id='$id'";
$numrow = mysql_num_rows ($result);

daemonkin
06-07-2007, 05:51 PM
yeah do:


$sql = "SELECT * FROM name WHERE id='$id'";
$result = mysql_query($result)
$numrow = mysql_num_rows ($result);


Hope this helps.

D.

Fumigator
06-07-2007, 05:57 PM
Be sure to check the query to make sure it succeeded too.


$sql = "SELECT * FROM name WHERE id='$id'";
$result = mysql_query($sql);
if (!$result) {
die("SQL Error! $sql<br />".mysql_error());
}
$numrow = mysql_num_rows ($result);

CFMaBiSmAd
06-07-2007, 09:55 PM
It would also help if the $sql variable was used instead of $result in the mysql_query(...) function call in the above two posts.

farkewie
06-07-2007, 10:48 PM
thank you so much everyone it is working perfect now



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum