Update klappt durch Variable nicht? Falsch eingebunden?

  • Themenstarter Themenstarter ByeBye 8492
  • Beginndatum Beginndatum
B

ByeBye 8492

PHP:
<?php
	require		"../../inhalt.php";
	require 	"funktionen.php";
	$action 	= 	$_GET["action"];
	$cat		=	$_GET["cat"];
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="design.css">
</head>
<body>
<?php
		
		if(!empty($gesendet))
		{
					$sql 	=	"UPDATE `kategorie` SET `name` = '$name', `position` = '$position', `text` = '$beschr' WHERE `id` = $cat";
					$result	= 	mysql_query($sql);
					erfolgreich($result);
		}

Das ist der Code.

Nun meine Frage, wenn ich anstatt $cat in den Query reinschreibe '1' dann macht er es. Aber Variable geht es irgendwie nicht, mir kommt es vor als wenn er die Variable Cat nur in die IF schleife reinsetzt ( dann kommt nen Formular), aber in die Else schleife kommt es nicht ..... :(.

Hab auch schon mit '$cat' probiert, hat auch nicht geklappt.

Warum nicht?
 
Es ist immer am besten den code selbst zu debuggen, so könntest du nach
PHP:
$cat        =    $_GET["cat"];

z.b. ein

PHP:
echo $cat;

reinschreiben, um zu überprüfen ob in dieser Variable überhaupt etwas drinsteht.

Du könntest dir auch das komplette Query ausgeben lassen.

Achja, warum speicherst du $_GET['cat'] eigentlich in einer extra variable, und benutz diese nicht direkt?
 
Original geschrieben von Devil Noxx
Es ist immer am besten den code selbst zu debuggen, so könntest du nach
PHP:
$cat        =    $_GET["cat"];


z.b. ein

PHP:
echo $cat;


reinschreiben, um zu überprüfen ob in dieser Variable überhaupt etwas drinsteht.

Du könntest dir auch das komplette Query ausgeben lassen.

Achja, warum speicherst du $_GET['cat'] eigentlich in einer extra variable, und benutz diese nicht direkt?


ich hab echo $cat gemach t;).
Er hat nichts ausgegeben, das wundert mich ja.

Wie kann ich nen kompletten Query ausgeben lassen?
 
Zuletzt bearbeitet von einem Moderator:
Original geschrieben von Muffinmampfer
Wie kann ich nen kompletten Query ausgeben lassen?

nach
PHP:
$sql 	=	"UPDATE `kategorie` SET `name` = '$name', `position` = '$position', `text` = '$beschr' WHERE `id` = $cat";

einfach ein

PHP:
echo $sql;

Wo bekommst du eigentlich $_GET['cat'] genau her?
 
Original geschrieben von Devil Noxx
nach
PHP:
$sql 	=	"UPDATE `kategorie` SET `name` = '$name', `position` = '$position', `text` = '$beschr' WHERE `id` = $cat";


einfach ein

PHP:
echo $sql;


Wo bekommst du eigentlich $_GET['cat'] genau her?

Das kriege ich von der Verwaltungsseite, mittles einem Link darauf
http://localhost/firma2/cms/admin/kategorie_edit.php?action=text&cat=1
wird es auf die Kategorieedit weitergeleitet und soll dann da verarbeitet werden.

Ich hab es jetzt nochmal genauer getestet. Er zeigt echo $cat; in der Else schleife, also mit dem Query nicht an ... Warum auch immer.

EDIT: Heißt beim Query fehlt die Zahl natürlich auch, weshalb es ja nicht klappen kann :(
 
Zuletzt bearbeitet von einem Moderator:
PHP:
<?php
	require		"../../inhalt.php";
	require 	"funktionen.php";
	
	$action 	= 	$_GET["action"];
	$cat		=	$_GET["cat"];
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="design.css">
</head>
<body>
<?php

		if(!empty($gesendet))
		{
					$sql 	=	"UPDATE `kategorie` SET `name` = '$name', `position` = '$position', `text` = '$beschr' WHERE `id` = ".$cat."";
					$result	= 	mysql_query($sql);
					erfolgreich($result);
					echo $sql;
		}
		
		
		Else
		{
			
			$sql	= "select id, name as Name, position, text from kategorie where id = $cat";
			$result	= mysql_query($sql);
		
			while($data	= mysql_fetch_assoc($result))
			{
				
			echo "		<form action=". $PHP_SELF." method=\"post\">
					<table width=\"600\" align=\"center\" class=\"aussen\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
					<tr>
					   	<td class=\"top\" width=\"100\">Kategoriename</td>
						<td class=\"top\" width=\"50\">Position</td>
						<td class=\"top\" width=\"250\">Kategorietext</td>
					</tr>
					<tr>
					  	<td class=\"editieren\"><input class=\"input_medium\" type=\"text\" name=\"name\" value=".$data["Name"]."></td>
					  	<td class=\"editieren\"><input class=\"input_small\" type=\"text\" name=\"position\" value=".$data["position"]."></td>
					  	<td class=\"editieren\"><textarea class=\"big\" name=\"beschr\">".$data["text"]."</textarea></td>
					</tr>
					<tr>
						<td colspan=\"4\"><input type=\"submit\" value=\"Kategorie editieren\" name=\"gesendet\">
					</td>
					 </tr>
					</table>
					</form>";
			}
		}
?>
</body>
</html>

Das ist die ganze Datei. In dem Query in der Else Anweisung geht $cat, aber in der Anweisung nicht?
 
So ich hab jetzt einfach mal ne andere Variable eingesetzt und es geht auch nciht ....

Kann es sein das Update keine Variablen unterstützt bei where
 
Natürlich unterstützt UPDATE Variablen .. da UPDATE SQL
ist und von PHP den Wert der Variablen unterstützt.

Probier mal :

PHP:
$sql = "UPDATE `kategorie` SET `name` = '".$name."', `position` = '".$position."', `text` = '".$beschr."' WHERE `id` = ".$cat."";

Und gib $sql bitte mal per echo aus und poste es in dein
MySQL Verwaltungsprogramm .. phpmyadmin oder was du
auch immer benutzt. Wenn er da einen Fehler zurückgibt
liegt es an deinem SQL Befehl.

Jona
 
Original geschrieben von Nils Adomeit
Natürlich unterstützt UPDATE Variablen .. da UPDATE SQL
ist und von PHP den Wert der Variablen unterstützt.

Probier mal :

PHP:
$sql = "UPDATE `kategorie` SET `name` = '".$name."', `position` = '".$position."', `text` = '".$beschr."' WHERE `id` = ".$cat."";


Und gib $sql bitte mal per echo aus und poste es in dein
MySQL Verwaltungsprogramm .. phpmyadmin oder was du
auch immer benutzt. Wenn er da einen Fehler zurückgibt
liegt es an deinem SQL Befehl.

Jona

Hat auch nicht geklappt, den MYSQL Query poste ich wenn ich wieder in Windows bin, nur soviel:

Er hat keine Variable die nicht aus dem Formular stand angenommen.
Also hab ich einfach per input type=hidden die ID in den Query transferiert und siehe da es klappt :p
 
Zurück