PHP Fehlersuche

Tix

Erfahrenes Mitglied
PHP:
	 $sql = "UPDATE
 			bloe_immo_vermietung
 			 SET
 			objectnumber = ".$_REQUEST[objectnumber1]."
 			mietart = ".$_REQUEST[mietart]."
 			stadtteil = ".$_REQUEST[stadtteil1]."
 			strasse = ".$_REQUEST[strasse1]."
 			hausnummer = ".$_REQUEST[hausnummer1]."
 			hausart = ".$_REQUEST[hausart1]."
 			baujahr = ".$_REQUEST[baujahr1]."
 			garage = ".$_REQUEST[garage1]."
 			mietpreis = ".$_REQUEST[mietpreis1]."
 			bezugsfrei = ".$_REQUEST[bezugsfrei1]."
 			ausstattung = ".$_REQUEST[ausstattung1]."
 			qm = ".$_REQUEST[qm1]."
 			raumanzahl = ".$_REQUEST[raumanzahl1]."
 			WHERE
 			objectnumber LIKE ".$_SESSION[objectnumber]." ";
 
 mysql_query($sql,$link) or die(mysql_error());

Das ist der Quelltext und hier die passende Fehlermeldung

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 'mietart = stadtteil = strasse = hausnummer = ha

Was mach ich denn da falsch?
 

Dr Dau

ich wisch hier durch
Hallo!

Auf den ersten Blick..... versuch es mal so:
PHP:
objectnumber = '".$_REQUEST[objectnumber1]."',
Die anderen Einträge im SET genauso, beim letztem allerdings ohne Komma.

Gruss Dr Dau
 

Tix

Erfahrenes Mitglied
...
PHP:
		  $sql = "UPDATE
 			bloe_immo_vermietung
 			 SET
 			 objectnumber = '".$_REQUEST[objectnumber1]."', 
 			mietart = '".$_REQUEST[mietart]."', 
 			stadtteil = '".$_REQUEST[stadtteil1]."', 
 			strasse = '".$_REQUEST[strasse1]."', 
 			hausnummer = '".$_REQUEST[hausnummer1]."', 
 			hausart = '".$_REQUEST[hausart1]."', 
 			baujahr = '".$_REQUEST[baujahr1]."', 
 			garage = '".$_REQUEST[garage1]."', 
 			mietpreis = '".$_REQUEST[mietpreis1]."', 
 			bezugsfrei = '".$_REQUEST[bezugsfrei1]."', 
 			ausstattung = '".$_REQUEST[ausstattung1]."', 
 			qm = '".$_REQUEST[qm1]."', 
 			raumanzahl = '".$_REQUEST[raumanzahl1]."'
 			WHERE
 			objectnumber LIKE '".$_SESSION[objectnumber]."' ";
 
 mysql_query($sql,$link) or die(mysql_error());
...

Der Quelltext sieht jetzt so aus, der SQL-Fehler kommt zwar nicht mehr, allerdings ändert er die Datenbank auch nicht ab.

Irgendeiner ne Idee
 

Gumbo

Erfahrenes Mitglied
Probier mal Folgendes:
PHP:
<?php

	…
	$sql = "
		UPDATE
		        `bloe_immo_vermietung`
		  SET
		        `objectnumber` = '".mysql_real_escape_string($_REQUEST['objectnumber1'])."',
		        `mietart`      = '".mysql_real_escape_string($_REQUEST['mietart'])."',
		        `stadtteil`    = '".mysql_real_escape_string($_REQUEST['stadtteil1'])."',
		        `strasse`      = '".mysql_real_escape_string($_REQUEST['strasse1'])."',
		        `hausnummer`   = '".mysql_real_escape_string($_REQUEST['hausnummer1'])."',
		        `hausart`      = '".mysql_real_escape_string($_REQUEST['hausart1'])."',
		        `baujahr`      = '".mysql_real_escape_string($_REQUEST['baujahr1'])."',
		        `garage`       = '".mysql_real_escape_string($_REQUEST['garage1'])."',
		        `mietpreis`    = '".mysql_real_escape_string($_REQUEST['mietpreis1'])."',
		        `bezugsfrei`   = '".mysql_real_escape_string($_REQUEST['bezugsfrei1'])."',
		        `ausstattung`  = '".mysql_real_escape_string($_REQUEST['ausstattung1'])."',
		        `qm`           = '".mysql_real_escape_string($_REQUEST['qm1'])."',
		        `raumanzahl`   = '".mysql_real_escape_string($_REQUEST['raumanzahl1'])."'
		  WHERE
		        `objectnumber` LIKE '".mysql_real_escape_string($_SESSION['objectnumber'])."'
		";
	mysql_query($sql, $link)
		or die('<dl><dt><strong>Datenbankabfrage schlug fehl!</strong></dt><dd>'.htmlspecialchars(mysql_error())'.</dd><dd><pre>'.htmlspecialchars($sql).'</pre></dd></dl>');
	echo '<p>'.mysql_affected_rows().' Datensätze sind von der vorhergehenden MySQL-Anfrage betroffen.</p>';
	…

?>
 

Tix

Erfahrenes Mitglied
0 Datensätze sind von der vorhergehenden MySQL-Anfrage betroffen.

Das gibt der dann aus? Weißt du dann weiter?
 

Gumbo

Erfahrenes Mitglied
Es bedeutet, dass kein Datensatz von der Abfrage betroffen ist, was wiederum bedeutet, dass es keinen Datensatz mit dem „objectnumber“-Attributwert ähnlich dem $_SESSION['objectnumber']-Wert gibt. Kannst du das bestätigen oder widerlegen?
 

Mamphil

Erfahrenes Mitglied
Nope, dass kann auch bedeuten, dass alle passenden Datensätze schon den Wert haben, der gesetzt werden soll - dann sind diese Zeilen nämlich nicht vom UPDATE betroffen und werde nicht gezählt...

Mamphil
 

Tix

Erfahrenes Mitglied
*gg* so langsam verlier ich den überblick

Also, folgendes ist die 1. Datei:

PHP:
//Verbindung zum Datenbankserber mit
   //Hostname, UserID, Passwort
   $link = mysql_connect("localhost","xxx","xxx");
   
   //Datenbank auswählen
   mysql_select_db("usr_kmm611_1",$link);
   
   //SQL-Statement formulieren
   $sql = "SELECT * from bloe_immo_vermietung";
   
   //Statement an die Datenbank schicken
   $result = mysql_query($sql,$link);
   
   //Anzahl der Zeilen holen
   $rowcount = mysql_num_rows($result);
   
   //Zeilenweise Ausgeben in Tabelle
   
   
   
   for($row=0;$row<$rowcount;$row++){
   	$zeile = mysql_fetch_array($result);
   echo ("<table border=0>\n");
   
   echo ("<tr><td>\n");
   echo ("<b>" . $zeile["objectnumber"] . ".</b>&nbsp;&nbsp;");
   echo ("</td></tr>\n");
   
 echo ("<tr><td><b>" . $zeile["stadtteil"] . "</b>, " . $zeile["strasse"] . " " . $zeile["hausnummer"] . "</td></tr>\n");
 echo ("<tr><td><b>" . $zeile["hausart"] . "</b>, " . $zeile["raumanzahl"] . " Raum</td></tr>\n");
   echo ("<tr><td>Baujahr " . $zeile["baujahr"] . "</td></tr>\n");
   echo ("<tr><td>" . $zeile["ausstattung"] . "</td></tr>\n");
   echo ("<tr><td>" . $zeile["mietart"] . ": " . $zeile["mietpreis"] . " €, " . "</td></tr>\n");
   echo ("<tr><td>Bezugsfrei: " . $zeile["bezugsfrei"] . "</td></tr>\n");
   echo ("</table><p>\n");
   }
   
   echo ("<form method=\"POST\" action=\"aendern.php\">");
   echo ("<input type=\"text\" name=\"drop\">");
   echo ("<input type=\"submit\" value=\"Löschen\">");
   echo ("</form>");
   
   echo ("<form method=\"POST\" action=\"aendern.php\">");
   echo ("<input type=\"text\" name=\"edit\">");
   echo ("<input type=\"submit\" value=\"Ändern\">");
   echo ("</form>");


Und das ist die zweite Datei:

PHP:
$drop = $_REQUEST[drop];
   $edit = $_REQUEST[edit];
   
   $link = mysql_connect("localhost","xxx","xxx");
   mysql_select_db("usr_kmm611_1",$link);
   
   
   
   if($drop>0){
   $sql = "DELETE FROM `bloe_immo_vermietung` WHERE `objectnumber` = " . $drop . " LIMIT 1";
   mysql_query($sql,$link);
   header("Location: admin.php");}
   
   
   elseif($edit>0){
    $sql = "SELECT
 			objectnumber, mietart, stadtteil, strasse, hausnummer, hausart, baujahr, garage, mietpreis, bezugsfrei, ausstattung, qm, raumanzahl
   			FROM
   		 bloe_immo_vermietung
   		   WHERE
   		`objectnumber` = " . $edit;
   		
   $result = mysql_query($sql,$link);
   
   if (mysql_num_rows ($result) > 0) {
    // Benutzerdaten in ein Array auslesen.
    $data = mysql_fetch_array ($result);
    // Sessionvariablen erstellen und registrieren
    $_SESSION["nummer"] = $edit;
    $_SESSION["objectnumber"] = $data["objectnumber"];
    $_SESSION["mietart"] = $data["mietart"];
    $_SESSION["stadtteil"] = $data["stadtteil"];
    $_SESSION["strasse"] = $data["strasse"];
    $_SESSION["hausnummer"] = $data["hausnummer"];
    $_SESSION["hausart"] = $data["hausart"];
    $_SESSION["baujahr"] = $data["baujahr"];
    $_SESSION["garage"] = $data["garage"];
    $_SESSION["mietpreis"] = $data["mietpreis"];
    $_SESSION["bezugsfrei"] = $data["bezugsfrei"];
    $_SESSION["ausstattung"] = $data["ausstattung"];
    $_SESSION["qm"] = $data["qm"];
    $_SESSION["raumanzahl"] = $data["raumanzahl"];}
   
   
   
    echo("<form action=\"aendern.php?aendern=1\" method=\"POST\">\n
   		<table>
 		<tr><td width=\"100\">Objektnummer: </td><td width=\"200\"><input type=\"text\" value=\"" . $_SESSION["objectnumber"] . "\" name=\"objectnumber1\"></td></tr>
 		<tr><td width=\"100\">Mietart: </td><td width=\"200\"><input type=\"text\" value=\"" . $_SESSION["mietart"] . "\" name=\"mietart1\"></td></tr>
 		<tr><td width=\"100\">Stadtteil: </td><td width=\"200\"><input type=\"text\" value=\"" . $_SESSION["stadtteil"] . "\" name=\"stadtteil1\"></td></tr>
 		<tr><td width=\"100\">Straße: </td><td width=\"200\"><input type=\"text\" value=\"" . $_SESSION["strasse"] . "\" name=\"strasse1\"></td></tr>
 		<tr><td width=\"100\">Hausnummer: </td><td width=\"200\"><input type=\"text\" value=\"" . $_SESSION["hausnummer"] . "\" name=\"hausnummer1\"></td></tr>
 		<tr><td width=\"100\">Hausart: </td><td width=\"200\"><input type=\"text\" value=\"" . $_SESSION["hausart"] . "\" name=\"hausart1\"></td></tr>
 		<tr><td width=\"100\">Baujahr: </td><td width=\"200\"><input type=\"text\" value=\"" . $_SESSION["baujahr"] . "\" name=\"baujahr1\"></td></tr>
 		<tr><td width=\"100\">Garage: </td><td width=\"200\"><input type=\"text\" value=\"" . $_SESSION["garage"] . "\" name=\"garage1\"></td></tr>
 		<tr><td width=\"100\">Mietpreis: </td><td width=\"200\"><input type=\"text\" value=\"" . $_SESSION["mietpreis"] . "\" name=\"mietpreis1\"></td></tr>
 		<tr><td width=\"100\">Bezugsfrei: </td><td width=\"200\"><input type=\"text\" value=\"" . $_SESSION["bezugsfrei"] . "\" name=\"bezugsfrei1\"></td></tr>
 		<tr><td width=\"100\">Ausstattung: </td><td width=\"200\"><input type=\"text\" value=\"" . $_SESSION["ausstattung"] . "\" name=\"ausstattung1\"></td></tr>
 		<tr><td width=\"100\">Größe in qm: </td><td width=\"200\"><input type=\"text\" value=\"" . $_SESSION["qm"] . "\" name=\"qm1\"></td></tr>
 		<tr><td width=\"100\">Raumanzahl: </td><td width=\"200\"><input type=\"text\" value=\"" . $_SESSION["raumanzahl"] . "\" name=\"raumanzahl1\"></td></tr>
   		</table>
   		<input type=\"submit\"></form>");}
   	
   
   
   
   elseif($aendern>0){
   
   $link = mysql_connect("localhost","xxx","xxx");
   mysql_select_db("usr_kmm611_1",$link);
   
   	
   $sql = "
   		UPDATE
   				`bloe_immo_vermietung`
   		  SET
 			 `objectnumber` = '".mysql_real_escape_string($_REQUEST['objectnumber1'])."',
 			 `mietart`	 = '".mysql_real_escape_string($_REQUEST['mietart'])."',
 			 `stadtteil`	= '".mysql_real_escape_string($_REQUEST['stadtteil1'])."',
 			 `strasse`	 = '".mysql_real_escape_string($_REQUEST['strasse1'])."',
 			 `hausnummer` = '".mysql_real_escape_string($_REQUEST['hausnummer1'])."',
 			 `hausart`	 = '".mysql_real_escape_string($_REQUEST['hausart1'])."',
 			 `baujahr`	 = '".mysql_real_escape_string($_REQUEST['baujahr1'])."',
 			 `garage`	 = '".mysql_real_escape_string($_REQUEST['garage1'])."',
 			 `mietpreis`	= '".mysql_real_escape_string($_REQUEST['mietpreis1'])."',
 			 `bezugsfrei` = '".mysql_real_escape_string($_REQUEST['bezugsfrei1'])."',
 			 `ausstattung` = '".mysql_real_escape_string($_REQUEST['ausstattung1'])."',
 			 `qm`		 = '".mysql_real_escape_string($_REQUEST['qm1'])."',
 			 `raumanzahl` = '".mysql_real_escape_string($_REQUEST['raumanzahl1'])."'
   		  WHERE
   			    `objectnumber` LIKE '".($_REQUEST['edit'])."'
   		";
   	mysql_query($sql, $link)
 		or die('<dl><dt><strong>Datenbankabfrage schlug fehl!</strong></dt><dd>'.htmlspecialchars(mysql_error()).'</dd><dd><pre>'.htmlspecialchars($sql).'</pre></dd></dl>');
 	echo '<p>'.mysql_affected_rows().' Datensätze sind von der vorhergehenden MySQL-Anfrage betroffen.</p>';}
   
   else{
   echo("Es ist ein Fehler aufgetreten, bitte melde dich bei dem Administrator");}

Ich hoffe das ist übersichtlich für dich, wäre echt supernett wenn du dich irgendwie mal per icq melden könntest, steht hier nämlich voll auf dem Schlauch....

Meine ICQ: 330823259

Bin dir aber auch so schon voll dankbar dass du dir den ganzen Käse hier durchliest.

Tix