Problem mit PHP Datenbank

Hallo, habe folgendes Problemchen.

Habe auf einem Server eine Webseite. Dort integriert ist auch eine Datenbank.
Nach dem Hochladen meiner Seite ( die ich zunächst heruntergeladen und dann verändert habe ) kommt auf der Seite mit der Datenbankabrage folgende Fehlermeldung :

Es ist ein Fehler beim Senden einer Abfrage an die Datenbank aufgetreten.
Fehler: Der Server hat das folgende Kommando nicht akzeptiert:

select ort from orte where id = and anzeigen = ‚ja‘

Die Datenbank meldete folgenden Fehler:

1064: 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 ‚and anzeigen = ‚ja‘‘ at line 1Es ist ein Fehler aufgetreten:

Wo ( in welchem Ordner … oder so ) liegte der Fehler.
Kenne mich mit php leider überhaupt nicht aus !

Webseite wurde mit AdobeGoLive bearbeitet
Wer sich dies gern einmal live ansehen möchte. www.imkerverein-vechta.de dann auf Imker in Ihrere Nähe und aus Ort auswählen. Dann erscheint die Fehlermeldung.

Verändert hatte ich lediglich die Seiten Aktuelles ( neu hinzugefügt) und den Vorstand nach Neuwahl auf Stand gebracht.

Hab die Seite leider nicht erstellt ( sonst könnte ich wohl auch den Fehler finden.)

Ist aber sicherlich nur ein kleines Problemchen, für jemanden, der sich mit PHP auskennt.

Riesiges Dankeschön schon mal vorweg !!!
Gruß
Manfred

Hallo Manfred,

post mal bitte die datei Text/Texte/imker_orte.php

Gruß

Hallo Manfred,

wie Phillip schon andeutet hat, liegt der Fehler in der Datei imker_orte.php. Suche bitte dort die Stelle, an der das Statement für die genannte Abfrage zusammengebaut wird.

select ort from orte where id = and anzeigen = 'ja'

Du wirst feststellen, dass das Statment in etwa so zusammengebaut wird:

"select ort from orte where id =".$id." and anzeigen = 'ja'"

Die Variable $id ist leer, dies könnte daran liegen, dass bei Lesen des übergebenen Parameters

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

ein Tippfehler sich eingeschlichen hat (z.B. ‚Id‘).

MfG Georg V.

<?php setlocale (LC_ALL, 'de_DE');
$id = $\_REQUEST["id"]; include("../../includes/general.inc.php"); $sql1 = "select ort from ".TAB\_ORTE." where id = $id and anzeigen = 'ja'"; $res1 = db\_get($sql1); $dat = mysql\_fetch\_row($res1); $ortsname = $dat[0]; $sql = "select \* from ".TAB\_IMKER." where umgebung = $id and anzeigen = 'ja' order by name asc"; $res = db\_get($sql); ?\>Geschichte des Imkervereins Vechta e.V. body, textarea { color:#ffffff; scrollbar-base-color:#ffffff; scrollbar-arrow-color:#849D59; scrollbar-darkshadow-color:#ffffff; scrollbar-face-color:#849D59; scrollbar-highlight-color:#849D59; scrollbar-shadow-color:#849D59; scrollbar-track-color::#849D59; } .HL { color: #4d4d4d; font-size: 11pt; font-family: Arial; font-weight: bold; line-height: 14pt } .F { color: #fff; font-size: 8pt; font-family: verdana; line-height: 11pt ; text-decoration: none; } .Punkte { font-size: 9pt; font-family: Arial; line-height: 11pt } #Texthintergrund { background-color: #849d59; height: 100%; width: 100%; left: 0; top: 0; position: absolute; visibility: visible; } a {color:#FFF; } a:hover {text-decoration:underline; } Imker aus " echo $ortsname;?\>" (Anordnung in alphabetischer Reihenfolge) while($daten = mysql\_fetch\_array($res)) { $titel = !empty($daten["titel"]) ? $daten["titel"] : ""; if(strlen($titel)\>1) {$name\_ausg = $titel." "; } $name\_ausg .= $daten["vorname"]." ".$daten["name"]; $name\_ausg = trim($name\_ausg); echo ' '.$name\_ausg.' '. $daten["adresse"].', '.$daten["ort"].' '. $daten["telefon"].' '; if($daten["sonstiges"]) { if(substr($daten["sonstiges"],0,3) == "www") { echo '['.$daten["sonstiges"].'](http://'.%2524daten%255B) '; } else { echo $daten["sonstiges"].' '; } } echo ' '; $prod\_id = $daten["produkte"]; if($prod\_id) { $prod\_liste = zerlegeAutoren($prod\_id); } if(count($prod\_liste) \>0) { echo $prod\_liste; } echo ' '; $name\_ausg = ''; } ?\> [zurück](javascript:history.back())

Hallo Manfred,

tausch mal die beiden Zeilen

$id = $_REQUEST[„id“];
include("…/…/includes/general.inc.php");

in

include("…/…/includes/general.inc.php");
$id = mysql_real_escape_string($_REQUEST[„id“]);

könnte mir vorstellen das in der general.inc.php die variable $id überschrieben wird.

Gruß

Hallo

tausch mal die beiden Zeilen

$id = $_REQUEST[„id“];
include("…/…/includes/general.inc.php");

in

include("…/…/includes/general.inc.php");
$id = mysql_real_escape_string($_REQUEST[„id“]);

könnte mir vorstellen das in der general.inc.php die variable
$id überschrieben wird.

Da diese Datei zuvor funktioniert hat, nehme ich eher an, dass es jetzt einen Link auf diese Seite gibt, in der der Parameter id fehlt. Man sollte also einen Standardwert vorgeben.

$id = (empty($\_REQUEST["id"])) ? : mysql\_real\_escape\_string($\_REQUEST["id"]);

Der Befehl mysql_real_escape_string() dient zur Verhinderung von MySQL-Injections. Damit er richtig wirkt, solltest du aber die id in der Abfrage noch mit ’ versehen. Also nicht

$sql1 = "select ort from ".TAB\_ORTE." where id = $id and anzeigen = 'ja'";

sondern

$sql1 = "select ort from ".TAB\_ORTE." where id = '$id' and anzeigen = 'ja'";

Gruß Johannes