Help Please

Hi All,

I really need these 2 scripts to work. What I need them to do is for them to provide individual ratings for each different picture. Can anyone please tell me/show me where I’m going wrong:

Heres the rating script:

<?php 
	
	include ("viewgallery.php");
	
?>
<?php

	// Connects to your Database
	mysql_connect("localhost", "root", "") or die(mysql_error());
	mysql_select_db("####") or die(mysql_error()); 
	
	// Get the radio button values 
		
	
	// Insert record 
		if ((isset($_POST['photo_id'])) && (is_numeric($_GET['photo_id']))){
			
					$photo_id = $_GET['photo_id'];
			
		} elseif ((isset($_POST['photo_id'])) && (is_numeric($_POST['photo_id']))) {
																
					$photo_id = $_GET['photo_id'];
			
		} else {
			
			echo "Error!";
			
		exit();
		
		}

		
	// What if the don't like yours
	if (!isset($_POST['idly'])) {
	$update_idy = mysql_query("UPDATE co_rate SET votes = votes +1, total = total +1 WHERE photo_id = $id")
	or die (mysql_error());
	} else { 
	
		// Update the data
	$update = mysql_query("UPDATE co_rate SET dly = dly +1, total = total +1")
	or die (mysql_error());
	}

	// Put it into an array 
	$array = mysql_query("SELECT * FROM co_rate ") 
	or die (mysql_error());
	
	
	// Loop Through the data 
	while ($rate = mysql_fetch_array($array)) {
									  
	//This calculates the sites ranking and then outputs it - rounded to 1 decimal
	$current =  $rate[votes] / $rate[total] * 100; 
	echo "Current Rating: " . round($current, 1) . "&#37; <br>"; 
	}

?>

and heres the display pics script

<?php
	include("config.inc.php");
	
	// initialization
	$result_array = array();
	$counter = 0;

	$cid = (int)($_GET['cid']);
	$pid = (int)($_GET['pid']);
	

	// Category Listing

	if( empty($cid) && empty($pid) )
	{
		$number_of_categories_in_row = 4;

		$result = mysql_query( "SELECT c.category_id,c.category_name,COUNT(photo_id)
						FROM gallery_category as c
						LEFT JOIN gallery_photos as p ON p.photo_category = c.category_id
						GROUP BY c.category_id" );
		while( $row = mysql_fetch_array( $result ) )
		{
			$result_array[] = "<a href='viewgallery.php?cid=".$row[0]."'>".$row[1]."</a> "."(".$row[2].")";
		}
		mysql_free_result( $result );	

		$result_final = "<tr>\
";

		foreach($result_array as $category_link)
		{
			if($counter == $number_of_categories_in_row)
			{	
				$counter = 1;
				$result_final .= "\
</tr>\
<tr>\
";
			}
			else
			$counter++;

			$result_final .= "\	<td>".$category_link."</td>\
";
		}

		if($counter)
		{
			if($number_of_categories_in_row-$counter)
			$result_final .= "\	<td colspan='".($number_of_categories_in_row-$counter)."'>&nbsp;</td>\
";

			$result_final .= "</tr>";
		}
	}


	// Thumbnail Listing

	else if( $cid && empty( $pid ) )
	{
		$number_of_thumbs_in_row = 5;

		$result = mysql_query( "SELECT photo_id,photo_caption,photo_filename FROM gallery_photos WHERE photo_category='".addslashes($cid)."'" );
		$nr = mysql_num_rows( $result );

		if( empty( $nr ) )
		{
			$result_final = "\	<tr><td>No Category found</td></tr>\
";
		}
		else
		{
			while( $row = mysql_fetch_array( $result ) )
			{
				$result_array[] = "<a href='viewgallery.php?cid=$cid&pid=".$row[0]."'><img src='".$images_dir."/tb_".$row[2]."' border='0' alt='".$row[1]."' /></a>";
			}
			mysql_free_result( $result );	

			$result_final = "<tr>\
";
	
			foreach($result_array as $thumbnail_link)
			{
				if($counter == $number_of_thumbs_in_row)
				{	
					$counter = 1;
					$result_final .= "\
</tr>\
<tr>\
";
				}
				else
				$counter++;

				$result_final .= "\	<td>".$thumbnail_link."</td>\
";
			}
	
			if($counter)
			{
				if($number_of_photos_in_row-$counter)
			$result_final .= "\	<td colspan='".($number_of_photos_in_row-$counter)."'>&nbsp;</td>\
";

				$result_final .= "</tr>";
			}
		}
	}

	// Full Size View of Photo
	else if( $pid )
	{
		$result = mysql_query( "SELECT photo_caption,photo_filename FROM gallery_photos WHERE photo_id='".addslashes($pid)."'" );
		list($photo_caption, $photo_filename) = mysql_fetch_array( $result );
		$nr = mysql_num_rows( $result );
		mysql_free_result( $result );	

		if( empty( $nr ) )
		{
			$result_final = "\	<tr><td>No Photo found</td></tr>\
";
		}
		else
		{
			$result = mysql_query( "SELECT category_name FROM gallery_category WHERE category_id='".addslashes($cid)."'" );
			list($category_name) = mysql_fetch_array( $result );
			mysql_free_result( $result );	

			$result_final .= "<tr>\
\	<td>
						<a href='viewgallery.php'>Categories</a> > 
						<a href='viewgallery.php?cid=$cid'>$category_name</a></td>\
</tr>\
";

			$result_final .= "<tr>\
\	<td align='center'>
					<br />
					<img src='".$images_dir."/".$photo_filename."' border='0' alt='".$photo_caption."' />
					<br />
					$photo_caption
					$photo_rating
					<br /><br />
					<form action=report.php method=post/>
					<input type=submit name=report value=Report />
					</form>
					<form name=rate action=rate.php method=post>
<b>Pick Only one Please!</b>
<br />
<input type=hidden name=photo_id value=$pid >
<INPUT TYPE=checkbox NAME=vote
onClick=return KeepCount()> I Do Like Yours
<br />
<INPUT TYPE=checkbox NAME=idly
onClick=return KeepCount()> I Don't Like Yours
<br />
<input type=submit name=rateit value=Rate It />

</FORM>
					
					
					</td>
					</tr>";
		}
	}


// Final Output
echo <<<__HTML_END

<html>
<head>
	<title>Gallery View</title>
</head>
<body>
<table width='100%' border='0' align='center' style='width: 100%;'>
$result_final

</table>
</body>
</html>

__HTML_END;
?>

I want these two scripts to update each picture and provide individual ratings, I have my sql database and the form has the hidden field.

Any help?

What exactly is the problem?

Sorry, the problem is when I rate a picture the total percentage stays the same for all, when it should be different for each picture for example picture a has a rating of 65% picture b 72% and so on,

I don’t know if it is the reason why your script doesn’t do what you want it to do, but in this part you’re mixing up gets and posts a bit :slight_smile:


if ((isset($_POST['photo_id'])) && (is_numeric($_GET['photo_id']))){
            
                    $photo_id = $_GET['photo_id'];
            
        } elseif ((isset($_POST['photo_id'])) && (is_numeric($_POST['photo_id']))) {
                                                                
                    $photo_id = $_GET['photo_id'];
            
        }

This is an error message I’m getting.

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 ‘’ at line 1

$update_idy = mysql_query("UPDATE co_rate SET votes = votes +1, total = total +1 WHERE photo_id = $id")

Where do you set $id?

To check if your queries are what you expect them to be, try this construction:


  $sql = "UPDATE co_rate SET votes = votes +1, total = total +1 WHERE photo_id = $id";
  $update_idy = mysql_query($sql) or die ("mysql error: " . mysql_error() . " in query: " .  $sql);

Sorry it’s meant 2 say $photo_id?

Don’t ask me, it’s your script :lol:
But yeah, I guess so.