mysql_fetch_assoc() fehler

alex130

Erfahrenes Mitglied
Hi
Ich hab wieder mal ein Problem und zwar bekomme ich immer folgende Meldung:
Code:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /var/www/web14/html/onlineshop/includes/config.inc.php on line 20
Und hier ist mein Code:
PHP:
<?php
include("../includes/config.inc.php");
include("../includes/class.inc.php");

	if($_GET['id'])
	{
		if(!is_numeric($_GET['id']))
		{
			echo $error['invalid_id'];
		}
	}// überprüft die id auf ihre gültigkeit

//connect($mysql_host, $mysql_user, $mysql_pass, $mysql_db); // baut die datenbank verbindung auf

if($_GET['do'] == 'delete' && $_GET['id'] !== '')
{
	$sql = 'DELETE * FROM `'.$mysql_table_categories.'` WHERE `category_id` = "'.$_GET['id'].'"';
	mysql_query($sql) or die(mysql_error());
	echo "Der Eintrag wurde gelöscht!";
}

if(isset($_POST['insert']))
{
	$sql2 = 'INSERT INTO `'.$mysql_table_categories.'` (`category_name`, `category_type`) VALUES ("'.mysql_real_escape_string($_POST['category_name']).'", "'.mysql_real_escape_string($_GET['type']).'")';
	mysql_query($sql2) or die(mysql_error());
	echo "Der Eintrag wurde erstellt!";
}

if(isset($_POST['update']))
{
		$update = 'UPDATE `'.$mysql_table_categories.'` SET
		`category_name` = \''.mysql_real_escape_string($_POST['category_name']).'\'
		WHERE `category_id`= '.$_POST['category_id'];
		mysql_query($update) or die(mysql_error());
		echo $update;
}

if($_GET['type'] == 'main')
{
	$sql3 = mysql_query('SELECT * FROM `'.$mysql_table_categories.'` WHERE `category_type` = "0"');
}
elseif($_GET['type'] == 'sub')
{
	$sql3 = mysql_query('SELECT * FROM `'.$mysql_table_categories.'` WHERE `category_type` = "1"');	
}
else
{
	echo $error['invalid_type'];
}

echo '<table width="550">';
while($row = mysql_fetch_assoc($sql3))
{
	echo '<tr><td><form action="" method="post" name="update"><input type="hidden" name="category_id" value="'.$row['category_id'].'" /><input type="text" name="category_name" value="'.$row['category_name'].'" size="30" /></td><td><a href="index.php?site=branchen&amp;do=delete&amp;id='.$row['category_id'].'"><img src="'.$config['site_url'].'images/icons/25x25/delete.png" /></a> <input type="image" name="update" src="'.$config['site_url'].'images/icons/25x25/save.png" /></form></td></tr>';
}
echo '</table>';


if($_GET['type'] == 'main') 
{
	echo '<form action="" method="post">
	<input type="text" name="category_name" size="30" />
	<input type="submit" name="insert" value="hinzufügen" />
	</form>';
}
elseif($_GET['type'] == 'sub')
{
	echo '<form action="" method="post">
	<input type="text" name="category_name" size="30" />
	<input type="submit" name="insert" value="hinzufügen" />
	</form>';
}
else
{
	echo $error['invalid_type'];
}



//close($mysql_db); // trennt die datenbank verbindung

?>
ich hoffe ihr könnt mir wieder mal helfen.
Danke
 
Die vorausgehende Abfrage schlug fehl. Lass dir mal die MySQL-Fehlermeldung (mysql_error()) ausgeben.
 
Hi
Komisch jetzt hab ich es irgendwie hinbekommen..., aber nun habe ich das Problem, dass das Update nicht funktoniert, siehst du da einen Fehler?
Danke

//edit und beim Eintrag löschen kommt:
Code:
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 '* FROM `categories` WHERE `category_id` = "2"' at line 1
Hier mein neuer Code:
PHP:
 <a href="?type=main">Hauptkategorien</a> | <a href="?type=sub">Unterkateogrien</a>

<?php
include("../includes/config.inc.php");
include("../includes/class.inc.php");

	if($_GET['id'])
	{
		if(!is_numeric($_GET['id']))
		{
			echo $error['invalid_id'];
		}
	}// überprüft die id auf ihre gültigkeit

//connect($mysql_host, $mysql_user, $mysql_pass, $mysql_db); // baut die datenbank verbindung auf

if($_GET['do'] == 'delete' && $_GET['id'] !== '')
{
	$sql = 'DELETE * FROM `'.$mysql_table_categories.'` WHERE `category_id` = "'.$_GET['category_id'].'"';
	mysql_query($sql) or die(mysql_error());
	echo $error['delete_entry'];
}

if(isset($_POST['insert']))
{
	$sql2 = 'INSERT INTO `'.$mysql_table_categories.'` (`category_name`, `category_type`) VALUES ("'.mysql_real_escape_string($_POST['category_name']).'", "'.mysql_real_escape_string($_GET['type']).'")';
	mysql_query($sql2) or die(mysql_error());
	echo $error['create_entry'];
}

if(isset($_POST['update']))
{
		$update = 'UPDATE `'.$mysql_table_categories.'` SET
		`category_name` = \''.mysql_real_escape_string($_POST['category_name']).'\'
		WHERE `category_id`= '.$_POST['category_id'];
		mysql_query($update) or die(mysql_error());
		echo $update;
}

if($_GET['type'] == 'main')
{
	$sql3 = mysql_query('SELECT * FROM `'.$mysql_table_categories.'` WHERE `category_type` = "0"');
}
elseif($_GET['type'] == 'sub')
{
	$sql3 = mysql_query('SELECT * FROM `'.$mysql_table_categories.'` WHERE `category_type` = "1"');	
}
else
{
	echo $error['invalid_type'];
}

echo '<table width="550">';
while($row = mysql_fetch_assoc($sql3))
{
	echo '<tr><td><form action="" method="post" name="update"><input type="hidden" name="category_id" value="'.$row['category_id'].'" /><input type="text" name="category_name" value="'.$row['category_name'].'" size="30" /></td><td><a href="index.php?site=branchen&amp;do=delete&amp;id='.$row['category_id'].'"><img src="'.$config['site_url'].'images/icons/25x25/delete.png" /></a> <input type="image" name="update" src="'.$config['site_url'].'images/icons/25x25/save.png" /></form></td></tr>';
}
echo '</table>';


if($_GET['type'] == 'main') 
{
	echo '<form action="" method="post">
	<input type="text" name="category_name" size="30" />
	<input type="submit" name="insert" value="hinzufügen" />
	</form>';
}
elseif($_GET['type'] == 'sub')
{
	echo '<form action="" method="post">
	<input type="text" name="category_name" size="30" />
	<input type="submit" name="insert" value="hinzufügen" />
	</form>';
}
else
{
	echo $error['invalid_type'];
}



//close($mysql_db); // trennt die datenbank verbindung

?>
 
Ok, danke nun funktoniert das löschen, aber das update funktoniert immer noch nicht :(
Ich hoffe ihr könnt mir noch helfen.
danke
 
Es kommt eben keine, das is ja so komisch, ich hab auch gemacht echo $update; aber da wird auch nix ausgegeben.
 
Was ja automatisch bedeuten würde das die Variable...
PHP:
$_POST['update']
...nicht definiert ist.
Eigentlich kein Wunder wenn ich mir das jetzt mal anschaue:
Code:
<input type="image" name="update" src="'.$config['site_url'].'images/icons/25x25/save.png" />
Da kein value definiert ist wird zwar das input und das dazugehörige Image angezeigt aber es wird nichts übergeben. Zumindest ist das der letzte Stand meiner HTML-Kenntnisse kann auch sein das funktioniert, nur in diesem Fall eben irgendwie nicht... :rolleyes:

Versuch mal da ein value einzubauen, ist ja egal was drin steht hauptsache es wird etwas übergeben, wird eh nur geprüft ob die Variable definiert ist.
 
Zurück