Update MySQL error: mysql_fetch_row(): supplied argument is not a valid MySQL result resource

This is a page where I edit content from the database. And when I push the edit button: btn-edit I get this error:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /usr/local/psa/home/vhosts/monstera.se/httpdocs/admin/edit_promotor.php on line 31

I cut and paste this code from another update page I built and there it works on that database table.
Can it be the encoding or something that is wrong or the header("location: playlist.php"); is wrong?




<?php
	include_once('inc/inc_top.php');
	if(!isset($_SESSION['userid'])) header('location: index.php');
	
	$id = @$_GET['id'];
	
	
	if(isset($_POST['btn-edit'])) {
		$club_name			= ($_POST['club_name']);
		$pro_name			= ($_POST['pro_name']);
		$pro_address		= ($_POST['pro_address']);
		$pro_postnr			= ($_POST['pro_postnr']);
		$pro_contact		= ($_POST['pro_contact']);
		$pro_tel			= ($_POST['pro_tel']);
		$pro_mail			= ($_POST['pro_mail']);
		$pro_web			= ($_POST['pro_web']);
		$pro_vat			= ($_POST['pro_vat']);
		$pro_orgnr			= ($_POST['pro_orgnr']);
		$capacity			= ($_POST['capacity']);
		$pro_city			= ($_POST['pro_city']);
		
		if(@mysql_query("UPDATE venue SET club_name '$club_name', pro_name = '$pro_name', pro_address ='$pro_address', pro_postnr = '$pro_postnr', pro_contact = '$pro_contact', pro_tel = '$pro_tel', pro_mail = '$pro_mail', pro_web = '$pro_web', pro_vat = '$pro_vat', pro_org = '$pro_org', capacity = '$capacity', pro_city = '$pro_city' WHERE id = $id;")) {
			mysql_close();
			header("location: playlist.php");
		}
	}
	
	$sql = "SELECT club_name, pro_name, pro_address, pro_postnr, pro_contact, pro_tel, pro_mail, pro_web, pro_vat, pro_org, capacity, pro_city FROM venue WHERE id = $id";
 
	$rows = mysql_query($sql);
	while ($row = mysql_fetch_row($rows)){
		$club_name			= $row[0];
		$pro_name			= $row[1];
		$pro_address		= $row[2];
		$pro_postnr			= $row[3];
		$pro_contact		= $row[4];
		$pro_tel			= $row[5];
		$pro_mail			= $row[6];
		$pro_web			= $row[7];
		$pro_vat			= $row[8];
		$pro_org			= $row[9];
		$capacity			= $row[10];
		$pro_city			= $row[11];
	}
	?>

Open in new window

stalbergparAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Cornelia YoderArtistCommented:
Most likely, your connection to the database is wrong.

Follow the query with this:

echo mysql_error();

That will tell you more precisely what the problem is.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
darron_chapmanCommented:
SET club_name '$club_name',

should be
SET club_name='$club_name',
0
dr_dedoCommented:
it is really a bad idea to develop your application while suppressing errors !
@mysql_query and not using or die to print error message, this way, you will never know what's wrong
0
stalbergparAuthor Commented:
Solved it! Tnx !

It was a combination of things not just the club_name =...

And yes the code I posted was just a desperate cut and paste from another working application...
This is how the sql query is looking right now with a die print... and this is what I use...



if(@mysql_query($sql)) {
			mysql_close();
			header("location: playlist.php");
		} else {
			die(mysql_error());
		}

Open in new window

0
Cornelia YoderArtistCommented:
And while you're at it, fix this!!  This leaves you WIDE OPEN to SQL Injection hacking!!!

$id = @$_GET['id'];

@mysql_query("UPDATE venue SET .....WHERE id = $id;"))

If you don't know what SQL Injection hacking is, google it and do some reading until you understand, then use something like mysql_real_escape_string() to protect yourself.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
PHP

From novice to tech pro — start learning today.