Datenfilterung aus Tabellen

Sputnik1990

Grünschnabel
mein Problem sieht wie folgt aus:

Meiner Aufgabe nach, soll ich aus der Tabelle noch nach Hersteller und Modell Filtern können.
Sprich so eine Art Button mit Pfeil an der Seite, der mir ein kleines Fenster aufruft, und mir sagen kann welche hersteller/modelle ich habe. Sprich es soll im endeffekt eine Seite aufgehen, (nach klick auf die jeweilige Zeile in dem kleinen Fenster) die mir dann die vorhandenen Modelle von dem ausgewählten hersteller anzeigt. Und einen 2. Button, der nach Modellen Filtern kann und mir dann eine Liste mit den Modellen auswirft.

Wäre wundervoll wenn ihr mir dabei helfen könntet.
Ich lese mich zwar herein, aber fragen kann ja nicht schaden ausserdem haben bestimmt hier alle mehr in php drauf als ich ^^

Niklas

Ps: das ist mein Script auf das ich aufbauen möchte.

PHP:
  <table border="1">
   <caption align="top">Tabelle</caption>
   <tr>
    <th>ID</th>
    <th>Hersteller</th>
	<th>Modell</th>
	<th>Baujahr</th>
	<th>Km-Stand</th>
	<th>Kw/PS</th>
	<th>Hsn</th>
	<th>Tsn</th>
	<th></th>
   </tr>
   <tr>
			<td>1</td>
			<td>Volkswagen</td>
			<td>Golf 4</td>
			<td>01.01.1998</td>
			<td>170.000	</td>
			<td>55</td>
			<td>603</td>
			<td>419</td>
<td><a href="Ohnevw.php?id="<?php echo $row->ID; ?>><php echo $row->löschen</a></td>
   </tr>
   <tr>
			<td>2</td>
   			<td>Audi</td>
			<td>A6</td>
			<td>01.01.2004</td>
			<td>12.000	</td>
			<td>160</td>
			<td>468</td>
			<td>546</td>
<td><a href="Ohneaudi.php?id="<?php echo $row->ID; ?>><php echo $row->löschen</a></td>
	</tr>
    <tr>
			<td>3</td>
   			<td>opel</td>
			<td>Astra</td>
			<td>01.01.1989</td>
			<td>465.752</td>
			<td>80</td>
			<td>468</td>
			<td>275</td>
<td><a href="Ohneopel.php?id="<?php echo $row->ID; ?>><php echo $row->löschen</a></td>
	</tr>
	<tr>
			<td>4</td>
			<td>Toyota</td>
   			<td>Corolla Verso</td>
			<td>01.01.2001</td>
			<td>56.000</td>
			<td>89</td>
			<td>852</td>
			<td>357</td>
<td><a href="Ohnetoyota.php?id="<?php echo $row->ID; ?>><php echo $row->löschen</a></td>
	</tr>
	<tr>
			<td>5</td>
   			<td>Skoda</td>
			<td>Fabia</td>
			<td>01.01.2003</td>
			<td>78.325</td>
			<td>110</td>
			<td>468</td>
			<td>159</td>
<td><a href="Ohneskoda.php?id="<?php echo $row->ID; ?>><php echo $row->löschen</a></td>
	</tr>
	<tr>
			<td>6</td>
   			<td>Mercedes</td>
			<td>Benz</td>
			<td>01.01.1992</td>
			<td>357.465</td>
			<td>68</td>
			<td>134</td>
			<td>958</td>
<td><a href="Ohnemercedes.php?id="<?php echo $row->ID; ?>><php echo $row->löschen</a></td>
	</tr>
	<tr>
			<td>7</td>
   			<td>BMW</td>
			<td>Z3</td>
			<td>01.01.2008</td>
			<td>2.289</td>
			<td>220</td>
			<td>468</td>
			<td>134</td>
<td><a href="Ohnebmw.php?id="<?php echo $row->ID; ?>><php echo $row->löschen</a></td>
	</tr>
	<tr>
			<td>8</td>
   			<td>Hyundai</td>
			<td>i20</td>
			<td>01.01.2009</td>
			<td>17.354</td>
			<td>125</td>
			<td>555</td>
			<td>768</td>
<td><a href="Ohnehyundai.php?id="<?php echo $row->ID; ?>><php echo $row->löschen</a></td>
	</tr>
	<tr>
			<td>9</td>
   			<td>Ford</td>
			<td>Mondeo</td>
			<td>01.01.1999</td>
			<td>15.468</td>
			<td>155</td>
			<td>653</td>
			<td>469</td>
<td><a href="Ohneford.php?id="<?php echo $row->ID; ?>><php echo $row->löschen</a></td>
	</tr>
	<tr>
			<td>10</td>
   			<td>Peugeot</td>
			<td>306</td>
			<td>01.01.2010</td>
			<td>111.256</td>
			<td>89</td>
			<td>609</td>
			<td>998</td>
<td><a href="Ohnepeugeot.php?id="<?php echo $row->ID; ?>><php echo $row->löschen</a></td>
	</tr>



	<?php
		$conn_id = mysql_connect("localhost" , "jonetat" , "test");
		mysql_select_db(jonetat, $conn_id);
			$result1 = mysql_query("SELECT * FROM fahrzeugverwaltung");
			

				
				while ($row = mysql_fetch_object($result1)) 
{
					$ID = $row->ID;
					$Hersteller = $row->Hersteller;
					$Modell = $row->Modell;
					$Baujahr = $row->Baujahr;
					$KmStand = $row->KmStand;
					$KwPS = $row->KwPS;
					$Hsn = $row->Hsn;
					$Tsn = $row->Tsn;
					


?><? } ?>
		
</table>
 
Dann brauchst du eine bzw. zwei zusätzliche Tabellen wo alle Hersteller und Modelle enthalten sind.

Dann packst du auf die Seite je ein Listenfeld für die Hersteller und die Modelle (wobei die miteinander agieren müssen).

Wird jetzt ein Hersteller ausgewählt, klickst du auf den Button "Filtern" und erstellt de entsprechende SQL-Anweisung und die Anzeige zu filtern.

P.S. ein bisschen Geduld musst du schon haben. Früher oder später bekommst du dann sicher eine Antwort.
 
Achtung nicht das wir uns falsch verstehen. Du brauchst nicht zusätzliche "HTML" Tabellen sondern Tabellen in der Datenbank in der die entsprechenden Daten stehen!
 
Gibt es eine bestimme Sql / Php anweisung um dieses Filterfenster zu erstellen?
Ich wüsste nicht wie.
oder kann ich das wieder auf den umständlichen weg machen und einer alle Hersteller/Modelle Verlinken^^
danke dir schonmal im vorraus und allen anderen auch.
 
Ich habe jetzt innerhalb meiner Tabelle, unterhalb vom Header "Hersteller", "Modell" 2 Auswahlfenster erstellt. Sprich reiter wo man was reinschreiben kann.
Wie kann ich diesen Reiter jetzt mit meinen ich sage mal herstellern (Audi/Vw etc..) verbinden, sodas wenn einer oben Volkswagen reinschreibt, der mir sämtliche Volkswagen in der Tabelle anzeigt bzw farbig hinterlegt ?!

PHP:
  <table border="1">
   <caption align="top">Tabelle</caption>
   <tr>
         <th>ID</th>
         <th><a href="SortierennachHersteller.php?Hersteller"
               <?php echo $row->Hersteller; ?>><php echo $row->Hersteller</a><br>
               <?php



if ($_POST) {

 if ($_POST["suchbegriff"] != "") {

  if (stristr($text, $_POST["suchbegriff"])) {

   $text = eregi_replace($_POST["suchbegriff"], "<strong>" . $_POST["suchbegriff"] . "</strong>", $text);
  }
 }
}


echo <<<EOT
<form action="$_SERVER[SCRIPT_NAME]" method="post">
Suchbegriff: <input type="text" name="suchbegriff"> 
<input type="submit" value="suchen"> <br>
</form>

$text
EOT;
?></th>
	<th><a href="SortierennachModell.php?Hersteller"<?php echo $row->Modell; ?>><php echo $row->Modell</a><br><?php



if ($_POST) {

 if ($_POST["suchbegriff"] != "") {

  if (stristr($text, $_POST["suchbegriff"])) {

   $text = eregi_replace($_POST["suchbegriff"], "<strong>" . $_POST["suchbegriff"] . "</strong>", $text);
  }
 }
}


echo <<<EOT
<form action="$_SERVER[SCRIPT_NAME]" method="post">
Suchbegriff: <input type="text" name="suchbegriff"> 
<input type="submit" value="suchen"> <br>
</form>

$text
EOT;
?></th>
	<th><a href="SortierennachBaujahr.php?Hersteller"<?php echo $row->Baujahr; ?>><php echo $row->Baujahr</a></th>
	<th><a href="SortierennachKmStand.php?Hersteller"<?php echo $row->KmStand; ?>><php echo $row->Km-Stand</a></th>
	<th>Kw/PS</th>
	<th>Hsn</th>
	<th>Tsn</th>
	<th><a href="Basisscript.php?id="<?php echo $row->ID; ?>><php echo $row->zurück</a></th>
   </tr>
   <tr>
			<td>1</td>
			<td>Volkswagen</td>
			<td>Golf 4</td>
			<td>01.01.1998</td>
			<td>170.000	</td>
			<td>55</td>
			<td>603</td>
			<td>419</td>
			<td><a href="Ohnevw.php?id="<?php echo $row->ID; ?>><php echo $row->löschen</a></td>
   </tr>
   <tr>
			<td>2</td>
   			<td>Audi</td>
			<td>A6</td>
			<td>01.01.2004</td>
			<td>12.000	</td>
			<td>160</td>
			<td>468</td>
			<td>546</td>
			<td><a href="Ohneaudi.php?id="<?php echo $row->ID; ?>><php echo $row->löschen</a></td>
	</tr>
    <tr>
			<td>3</td>
   			<td>opel</td>
			<td>Astra</td>
			<td>01.01.1989</td>
			<td>465.752</td>
			<td>80</td>
			<td>468</td>
			<td>275</td>
			<td><a href="Ohneopel.php?id="<?php echo $row->ID; ?>><php echo $row->löschen</a></td>
	</tr>
	<tr>
			<td>4</td>
			<td>Toyota</td>
   			<td>Corolla Verso</td>
			<td>01.01.2001</td>
			<td>56.000</td>
			<td>89</td>
			<td>852</td>
			<td>357</td>
			<td><a href="Ohnetoyota.php?id="<?php echo $row->ID; ?>><php echo $row->löschen</a></td>
	</tr>
	<tr>
			<td>5</td>
   			<td>Skoda</td>
			<td>Fabia</td>
			<td>01.01.2003</td>
			<td>78.325</td>
			<td>110</td>
			<td>468</td>
			<td>159</td>
			<td><a href="Ohneskoda.php?id="<?php echo $row->ID; ?>><php echo $row->löschen</a></td>
	</tr>
	<tr>
			<td>6</td>
   			<td>Mercedes</td>
			<td>Benz</td>
			<td>01.01.1992</td>
			<td>357.465</td>
			<td>68</td>
			<td>134</td>
			<td>958</td>
			<td><a href="Ohnemercedes.php?id="<?php echo $row->ID; ?>><php echo $row->löschen</a></td>
	</tr>
	<tr>
			<td>7</td>
   			<td>BMW</td>
			<td>Z3</td>
			<td>01.01.2008</td>
			<td>2.289</td>
			<td>220</td>
			<td>468</td>
			<td>134</td>
			<td><a href="Ohnebmw.php?id="<?php echo $row->ID; ?>><php echo $row->löschen</a></td>
	</tr>
	<tr>
			<td>8</td>
   			<td>Hyundai</td>
			<td>i20</td>
			<td>01.01.2009</td>
			<td>17.354</td>
			<td>125</td>
			<td>555</td>
			<td>768</td>
			<td><a href="Ohnehyundai.php?id="<?php echo $row->ID; ?>><php echo $row->löschen</a></td>
	</tr>
	<tr>
			<td>9</td>
   			<td>Ford</td>
			<td>Mondeo</td>
			<td>01.01.1999</td>
			<td>15.468</td>
			<td>155</td>
			<td>653</td>
			<td>469</td>
			<td><a href="Ohneford.php?id="<?php echo $row->ID; ?>><php echo $row->löschen</a></td>
	</tr>
	<tr>
			<td>10</td>
   			<td>Peugeot</td>
			<td>306</td>
			<td>01.01.2010</td>
			<td>111.256</td>
			<td>89</td>
			<td>609</td>
			<td>998</td>
			<td><a href="Ohnepeugeot.php?id="<?php echo $row->ID; ?>><php echo $row->löschen</a></td>
	</tr>



	<?php
		$conn_id = mysql_connect("......" , "...." , "...");
		mysql_select_db(...., $conn_id);
			$result1 = mysql_query("SELECT * FROM fahrzeugverwaltung order by Hersteller");
			

				
				while ($row = mysql_fetch_object($result1)) 
{
					$ID = $row->ID;
					$Hersteller = $row->Hersteller;
					$Modell = $row->Modell;
					$Baujahr = $row->Baujahr;
					$KmStand = $row->KmStand;
					$KwPS = $row->KwPS;
					$Hsn = $row->Hsn;
					$Tsn = $row->Tsn;
					


?><? } ?>
		
</table>
 
Drängeln hilft nicht, das habe ich dir schonmal geschrieben!

Mach es doch so wie ich oben geschrieben habe. Erstelle eine Tabelle in der Datenbank und trage alle Hersteller ein dann mach eine zweite Tabelle in die alle Typen eingetragen werden.

Beim Laden der Seite trägst du alle diese Daten in eine Liste ein und kannst damit dann filtern.
 
So, spiele ich mal wieder den bösen mahnenden und beitragslöschender Moderator:

Ist mir egal, ob du grad ein Praktikum machst und dich nicht traust den Chef zu fragen, aber die Regeln fürs PHP Board gelten auch für dich.
Geduld ist eine Tugend.
Also fang nicht gleich an Zeter und Mordio zu schreien, wenn
mal nicht sofort auf deine Frage geantwortet wird. Vielleicht
ist gerade niemand Online der die Antwort auf deine Frage oder
es weiß einfach niemand die Antwort. Auch soetwas kommt vor
und dann nöle bitte nicht rum. Versuche es einfach selber
nochmal.

Genauso die Netiquette
12. Bitte erstelle keine Doppel-/Mehrfach-/Pushpostings. Dazu zählen insbesondere das Erstellen identischer Themen in mehreren unterschiedlichen Unterforen, das mehrfache oder erneute Einstellen eines bereits vorhandenen Themas, und das Posten von Beiträgen, die einzig und allein dem Zweck dienen, das entsprechende Thema in der Themenauflistung wieder weiter oben zu platzieren (sog. „Thread Pushing“). Derartige Beiträge werden restlos gelöscht. Sollte der Eindruck bei unseren Moderatoren entstehen, dass wissentlich gegen diesen Punkt verstoßen wurde, hat dies die unbegrenzte Sperrung des Accounts zur Folge.
 
Zuletzt bearbeitet:
Entschuldige bitte für die Postings aber ich hab den Thread seit gestern offen und heute endet das opraktikum. möchte das halt noch fertig kriegen aber ohne hilfe geht des nicht.
Ich möchte auch nicht immer fragen das kommt nicht so gut an oben.^^
habe die Gedult verloren und es tut mir leid aber meine postings hatten nicht den Sinn irgentwas zu pushen...

Entschuldigt
 
als erstes sorry für die kleinschreibung. bin an der hand operiert worden und mit einer hand schreiben ist nicht so einfach.

wenn es in der vorhandenen tabelle ein feld hersteller gibt, dann kannst du auch folgende abfrage verwenden um alle gespeicherten hersteller zu ermitteln:

SQL:
SELECT DISTINCT Herstelller FROM fahrzeugverwaltung order by Hersteller

diese trägst du dann wie oben zu lesen in die liste ein.

sollte es auch ein feld geben in dem die fahrzeugtypen gespeichert sind (ich nenne es hier mal "Typ"), dann kannst du diese so auch ermitteln.

SQL:
SELECT DISTINCT Typ FROM fahrzeugverwaltung order by Typ

die herstellerliste nenne ich jetzt lstHersteller und die liste mit den typen nenne ich lstTyp. beim laden der seite gibst du jetzt folgende anweisung an:

PHP:
$sql = "select * from fahrzeugverwaltung where ";
if (isset($_POST["lstHersteller"])) {
    $sql .= "hersteller = '" .mysql_real_escape_string($_POST["lstHersteller"] ."' and ";
} else {
    $sql .= "hersteller like '%%' and ";
}
if (isset($_POST["lstTyp"])) {
    $sql .= "typ = '" .mysql_real_escape_string($_POST["lstTyp"] ."' and ";
} else {
    $sql .= "typ like '%%' and ";
}
$daten = mysql_query($sql);
 
Zurück