0

Database query failed: 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 3

<?php 
ob_start();
require_once("includes/connection.php");
include_once("includes/header.php");

	//get category id according to selected record
	$category_id = $_GET['cat_id'];

	//fetch data to populate into form
	$result = get_specific_category($category_id);

	while($row = mysql_fetch_array($result))
	{
		$category_name = $row['category_name'];
		$position = $row['position'];
		$visible = $row['visible'];
	}
	
//process update
if(isset($_POST['btn_submit']))
{	
	
	$errors = array();
	
	//check all data if not set or empty
	$required_fields = array($category_name, $position, $visible);
	foreach($required_fields as $field_name)
	{
		if(!isset($_POST[$fieldname]) || (empty($_POST[$fieldname]) && ($_POST[$fieldname] != 0)))
		{
			$errors[] = $field_name;
		}
	}
	
	/*
	//make sure input is less than or equal to 30chars
	$fields_with_lengths = array($category_name => 30);
	foreach($fields_with_lengths as $fieldname => $maxlength)
	{
		if(strlen(trim(mysql_prep($_POST[$fieldname]))) > $maxlength)
		{
			$errors[] = $field_name;
		}
	}
	*/
	
	//redirect if invalid input
	if(empty($errors))
	{
		//get all data input
		$category_id = $_POST['cat_id'];
		$category_name = mysql_prep($_POST['tb_category_name']);
		$position = $_POST['position'];
		$visible = $_POST['visible'];
	
		//peform update
		$query = "UPDATE categories 
			SET category_name='$category_name', position='$position', visible='$visible' 
			WHERE category_id='$category_id'";
		$result = mysql_query($query);
		
	}
	else
	{
		//errors occured
		foreach($errors as $error)
		{
			echo $error;
		}
		//redirect_to("category_view.php");
	}
}
?>

<h1>Edit Category</h1>

	<form action="category_edit.php" method="post">
		Category Name:&nbsp;<input name="tb_category_name" type="text" value="<?php echo $category_name ?>" /> <br />
		Position:&nbsp;<select name="position">
		<?php
				
			$result_category = get_categories();
			
			$num_rows = mysql_num_rows($result_category);
			
			for ($count = 1; $count <= $num_rows; $count++)
			{
				echo "<option value=\"{$count}\"";
				if($position == $count)
				{
					echo " selected";
				}
				echo ">{$count}</options>";
			}
		?>
		</select>
		<br />
		Visible:&nbsp;<input name="visible" type="radio" value="1"	
		<?php if($visible == 1){echo "checked";}?>	/> Yes
		&nbsp;<input name="visible" type="radio" value="0" 
		<?php if($visible == 0){echo "checked";}?>/> No<br />
		<input name="cat_id" type="hidden" value="<?php echo $category_id ?>" />
		<input name="btn_reset" type="reset" value="Reset" />
		<input name="btn_submit" type="submit" value="Update" />
	</form>
	
<?php 
include_once("includes/footer.php"); 
ob_flush();
?>
2
Contributors
5
Replies
6
Views
5 Years
Discussion Span
Last Post by baig772
0

updated to this, still getting an error

<?php 
ob_start();
require_once("includes/connection.php");
include_once("includes/header.php");

	//get category id according to selected record
	$category_id = $_GET['cat_id'];

	//fetch data to populate into form
	$result = get_specific_category($category_id);

	while($row = mysql_fetch_array($result))
	{
		$category_name = $row['category_name'];
		$position = $row['position'];
		$visible = $row['visible'];
	}
	
//process update
if(isset($_POST['btn_submit']))
{	
	
	$errors = array();
	
	//check all data if not set or empty
	$required_fields = array('tb_category_name', 'position', 'visible');
	foreach($required_fields as $field_name)
	{
		if(!isset($_POST[$fieldname]) || (empty($_POST[$fieldname]) && ($_POST[$fieldname] != 0)))
		{
			$errors[] = $field_name;
		}
	}
	
	/*
	//make sure input is less than or equal to 30chars
	$fields_with_lengths = array($category_name => 30);
	foreach($fields_with_lengths as $fieldname => $maxlength)
	{
		if(strlen(trim(mysql_prep($_POST[$fieldname]))) > $maxlength)
		{
			$errors[] = $field_name;
		}
	}
	*/
	
	//redirect if invalid input
	if(empty($errors))
	{
	
		//get all data input
		$category_id = $_POST['cat_id'];
		$category_name = mysql_prep($_POST['tb_category_name']);
		$position = $_POST['position'];
		$visible = $_POST['visible'];
	
		//peform update
		$update = "UPDATE categories 
			SET category_name='$category_name', position='$position', visible='$visible' 
			WHERE category_id='$category_id'";
		$update_result = mysql_query($update);
		
	}
	else
	{
		//errors occured
		foreach($errors as $error)
		{
			echo $error;
		}
		//redirect_to("category_view.php");
	}
}
?>

<h1>Edit Category</h1>
<?php
/*
	if (!empty($message))
	{
		echo $message;
	}
	*/
?>
	<form action="category_edit.php" method="post">
		Category Name:&nbsp;<input name="tb_category_name" type="text" value="<?php echo $category_name ?>" /> <br />
		Position:&nbsp;<select name="position">
		<?php
				
			$result_category = get_categories();
			
			$num_rows = mysql_num_rows($result_category);
			
			for ($count = 1; $count <= $num_rows; $count++)
			{
				echo "<option value=\"{$count}\"";
				if($position == $count)
				{
					echo " selected";
				}
				echo ">{$count}</options>";
			}
		?>
		</select>
		<br />
		Visible:&nbsp;<input name="visible" type="radio" value="1"	
		<?php if($visible == 1){echo " checked";}?>	/> Yes
		&nbsp;<input name="visible" type="radio" value="0" 
		<?php if($visible == 0){echo " checked";}?>/> No<br />
		<input name="cat_id" type="hidden" value="<?php echo $category_id ?>" />
		<input name="btn_reset" type="reset" value="Reset" />
		<input name="btn_submit" type="submit" value="Update" />
	</form>
	
<?php 
include_once("includes/footer.php"); 
ob_flush();
?>
0

field_name has been renamed bt still getting an error

functions are included in connections for queries such as get_specific category and others.

0

category_id int 11 primary key auto increment
category_name varchar 30
position int 3
visible tinyint 1

all not null

im guessing that when i pass the hidden cat_id from form id doesnt catch by post method to be processed in submit button. if im wrong please enlighten me. thanks!

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.