Abfrage mit Variablen

Jar Jar

Grünschnabel
Hallo,

habe mal wieder ein Problem.
Von der Vorseite habe ich eine Variable ($hersteller) und die wollte ich in der nächsten Datenbankabfrage mit einbeziehen. Leider gibt er mir nur einen Fehler aus:

Unknown column 'Kawasaki' in 'where clause'

Der PHP Code lautet

Code:
echo $hersteller." ";

// Abfrage
$abfrage = "SELECT DISTINCT ccm FROM trw where hersteller=$hersteller";

//Ergebnis
$ergebnis = mysql_Query($abfrage) or die ( mysql_error() );

kann auch sein das ich den Wald vor lauter Bäumen nicht sehe?
 
Und schon wieder eine Frage:

Nun habe ich auf der ersten Seite den Hersteller ausgewählt, auf der zweiten den Hubraum und nun soll er mir auf der dritten aus den beiden die Typen auflisten. Aber er hat den Hersteller "vergessen".

Code:
// Abfage
$abfrage = "SELECT DISTINCT typ FROM trw where hersteller='$hersteller' AND ccm='$ccm'";

selbst mit echo $hersteller kommt keine Ausgabe.
Ich verwende "post". Oder muß ich die Variable "erneuern"?
 
Variablen verfallen, wenn das Skript beendet wird(es sei denn, du speicherst sie in Sessions/Cookies).

Einfachste Lösung: Packe in das Formular auf Seite 2. ein verstecktes Feld mit dem Wert von $hersteller....
PHP:
<input type="hidden" name="hersteller" value="<?php echo ((isset($_POST['hersteller']) ? htmlentities($_POST['hersteller']) : '');?>">
 
Worauf Gumbo hinaus will: Bevor du $hersteller im QUERY nutzt, prüfe genau, welche Werte diese Variable überhaupt haben kann...ist ein Wert dabei, den du nicht vorgesehen hast, breche die ganze Sache ab, ...ansonsten wäre es einem Angreifer möglich, von ausserhalb das Query nach Gusto zu manipulieren.
 
Hallo nochmal...

klappt alles soweit ganz klasse, oder besser klappte ganz klasse.
Seit heute bekomme ich eine Fehlermeldung:
---------------
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 ''trw'' at line 1
--------------

Das komische ist das ich am Quellcode für die Datenbankabfrage nicht geändert habe.
Auch das löschen der Datenbank und ein erneutes aufspielen brachte keine besserung.
Weiß jemand zufällig wonach ich suchen muß bzw kann mir einen Tip geben?

Gruß

Jar Jar
 
Code:
<?php

			$db = mysql_connect ("xxxxxxx", "xxxxxxx", "xxxxxxx")
  			or die ("keine Verbindung möglich: " .mysql_error());

			// Auswahl der Datenbank
			mysql_select_db("xxxxxxxxxx") or die ("Die Datenbank existiert nicht");

			// Abfage
			$abfrage = "SELECT 'hersteller' FROM 'trw'";

			//Ergebnis
			$ergebnis = mysql_Query($abfrage) or die ( mysql_error() );

			//Ausgabe
			echo"<form method=\"post\" action=\"trw2.php\"><br>";
			
			echo"<select name=hersteller size=10>";
			while($row = mysql_fetch_assoc($ergebnis)) {
        		echo"<option>".$row['hersteller'];
 			}
			echo"</select>";
			echo" "."<input type=submit value=\"Auswahl\">";

    
			// Verbindung beenden
			mysql_close ($db);

			?>
 
Zurück