Hallo liebe Forumsmitglieder
als relativer SQL-Neuling wende ich mich heute mit einer Frage an Euch, in der Hoffnung dass ihr mir helfen könnt.
Gegeben:
eine MySQL-Datenbank namens "boxermodelle" mit folgenden Spalten: siehe Bild
» LINK
Desweiteren ein Dropdown-Menü, welches verschiedene Motorrad Modelle zur Auswahl stellt.
Die Modelle im Dropdown-Menü entsprechen den Spaltennamen in der Datenbank. Diese Spalten enthalten die Anzahl an Artikeln, die benötigt werden
Was ich gerne hätte:
- Im Dropdown-Menü ein Modell auswählen, dann einen Suchbegriff eingeben und erhalte durch "suchen" die zum Bauteil passende Artikelnummer (und umgekehrt) sowie die ANZAHL des Artikels. Und das alles passend zu dem jeweiligen Motorrad-Modell.
Beispiel:
- Auswahl: Modell R69s, Suchbegriff: 0000035 (Artikel-Nr) -> gewünschte Ausgabe: MOTOR Kpl., Anzahl: 1
Ein Screenshot zeigt hier das Script in Aktion:
» LINK
Ich habe bereits ein wenig herum experimentiert und ein Großteil des Codes funktioniert (Abfrage nach Bezeichnung ODER Artikelnummer).
Was nicht funktioniert (mein eigentliches Problem):
- Die Auswahl des Motorradmodells gibt eine Variable vor ($modell), mit der ich eine spezielle SPALTE in der Datenbank auswählen möchte (gleichnamig zur Auswahl). Und diese Spalte wird partout nicht angesprochen bzw es werden keine Zahlen (passend zur Zeile mit dem Suchbegriff) ausgegeben. Irgendwo hab ich da den Wurm drin ... :-/
Verzeiht mir bitte diese evtl lächerliche Frage, aber ich stecke noch in den Kinderschuhen mit dem Thema SQL-Abfragen.
Ich bedanke mich bereits im Voraus für Eure Hilfe
Viele Grüße
Ravey76
Mein Script im Detail ...
Das Formular
Code:
<form action="" method="GET" >
<select name="filter_modell">
<option value="r50" selected="selected">BMW R50</option>
<option value="r60">BMW R60</option>
<option value="r502">BMW R50/2</option>
<option value="r602">BMW R60/2</option>
<option value="r50s">BMW R50 S</option>
<option value="r69">BMW R69</option>
<option value="r69s">BMW R69 S</option>
</select>
<input name="suchbegriff" type="text" size="50" value="Bestell-Nr. oder Begriff eingeben" onfocus="if(this.value==\'Bestell-Nr. oder Begriff eingeben\') this.value=\'\'" />
<input type="submit" name="suche" value="suchen" />
</form>
Die Variablen:
Code:
$tabelle_name = "boxermodelle"; // Name der Tabelle
$bezeichnung = "teilbezeichnung"; // Name der Spalte in der gesucht werden soll
$nummer = "teilenr"; // Name der Spalte in der gesucht werden soll
$daten_pro_seite = 7; // Anzeige der Datensaetze pro Seite
$modell = mysql_real_escape_string($_GET["filter_modell"]); // Welches FZ Modell
$begriff = mysql_real_escape_string($_GET["suchbegriff"]); // Der Suchbegriff
Zusammensetzung der DB-Abfrage:
Code:
$suche = " WHERE ((`" . $bezeichnung . "` LIKE '%" . $begriff . "%') OR (`" . $nummer . "` LIKE '%" . $begriff . "%')) ";
Den Inhalt der Spalte anzeigen
Code:
$datensaetze = mysql_query("SELECT " . $modell . ",hauptgruppe,untergruppe,teilenr,bildnr,teilbezeichnung,info FROM " . $tabelle_name . $suche . " LIMIT " . $start . ", " . $daten_pro_seite);
Ausgabe in Tabellenform
Code:
echo " <br><br>";
echo "<table width='640' align='left' cellpadding='5' cellspacing='0' border='0' style='font-family: Arial; font-size: 9pt; margin-left: -3px;>";
echo "<tr align='left' valign='top'>";
echo "<td width='110' bgcolor='#CCCCCC' align='left' valign='middle' style='border-top:1px solid #000000;border-left:1px solid #000000;border-top-left-radius: 5px;'><strong>Modell</strong></td>";
echo "<td width='155' bgcolor='#CCCCCC' align='left' valign='middle' style='border-top:1px solid #000000;'><strong>Hauptgruppe</strong></td>";
echo "<td width='150' bgcolor='#CCCCCC' align='left' valign='middle' style='border-top:1px solid #000000;'><strong>Untergruppe</strong></td>";
echo "<td width='100' bgcolor='#CCCCCC' align='left' valign='middle' style='border-top:1px solid #000000;'><strong>Teile-Nr.</strong></td>";
echo "<td width='50' bgcolor='#CCCCCC' align='left' valign='middle' style='border-top:1px solid #000000;'><strong>Bild-Nr</strong></td>";
echo "<td width='50' bgcolor='#CCCCCC' align='left' valign='middle' style='border-top:1px solid #000000;border-right:1px solid #000000;border-top-right-radius: 5px;'><strong>Anzahl</strong></td>";
echo "</tr>";
echo "</table>";
echo "</br>";
while($row = mysql_fetch_object($datensaetze))
{
echo "<table width='640' align='left' cellpadding='5' cellspacing='0' border='0' style='font-family: Arial; font-size: 9pt; margin-left: -3px;'>";
echo "<tr align='left' valign='top'>";
echo "<td width='100' align='left' valign='top' bgcolor='#dadada' style='border-left:1px solid #000000;'><span style='text-transform:uppercase;'>bmw " . $modell . "</span></td>";
echo "<td width='155' align='left' valign='top' bgcolor='#dadada'>". $row->hauptgruppe . "</td>";
echo "<td width='150' align='left' valign='top' bgcolor='#dadada'>". $row->untergruppe . "</td>";
echo "<td width='100' align='left' valign='top' bgcolor='#dadada'>". $row->teilenr . "</td>";
echo "<td width='50' align='left' valign='top' bgcolor='#dadada'> ". $row->bildnr ."</span></td>";
echo "<td width='50' align='left' valign='top' bgcolor='#dadada' style='border-right:1px solid #000000;'>". $row->modell . "</td>";
echo "</tr>";
echo "<tr>";
echo "<td width='105' align='left' valign='middle' style='border-left:1px solid #000000;'><strong>Beschreibung</strong></td>";
echo "<td width='525' align='left' valign='top' colspan='5' style='border-right:1px solid #000000;'><strong>". $row->teilbezeichnung . "</strong></td>";
echo "</tr>";
echo "<tr>";
echo "<td width='105' align='left' valign='middle' style='border-left:1px solid #000000;'>Zusatzinfos</td>";
echo "<td width='525' align='left' valign='top' colspan='5' style='border-right:1px solid #000000;'>» <i>". $row->info . "</i></td>";
echo "</tr>";
echo "<tr>";
echo "<td height='1' colspan='6' style='border-bottom:1px solid #5c5c5c;border-left:1px solid #000000;border-right:1px solid #000000; color:#ededed; font-size: 1pt; margin-top: -10px;'>.";
echo "</td>";
echo "</tr>";
echo "</table>";