Hallo zusammen!
Wen es interessiert: Ich habe es nun teil-lösen können. Alerdings sehr unbefriedigend:
--
Ausgabe aller Schuhe:
PHP-Code:
$sql_sub="select objekte.wert, attribute.attributname,objekte.objekt_id from attribute,objekte,kathegorien
where attribute.kathegorie_id=1 and kathegorien.id=attribute.kathegorie_id and attribute.id=objekte.attribut_id AND attribute.attributname != 'id' order by objekte.objekt_id";
$letzteproduktid=0;
$mssub=mysql_query($sql_sub); $letzterwert="0";
while($ausgabe_schuhx=mysql_fetch_assoc($mssub))
{ if($letzteproduktid != $ausgabe_schuhx["objekt_id"])echo " <td class='datenzelle'> </td></tr><tr>";
if(in_array($ausgabe_schuhx["attributname"],$wichtigschuharray))
print "<td class='datenzelle'>".$ausgabe_schuhx["wert"]."</td>";
$letzteproduktid = $ausgabe_personx["objekt_id"];
}
Zitat:
if(in_array($ausgabe_schuhx["attributname"],$wichtigschuharray))
|
Dient nur zu Filterzwecken. Felder wie id und timestamp will ich nicht ausgeben.
Ich möchte erstmal eine Grobübersicht haben. Mehr später im Tooltipp.
So funktioniert es.
Nun habe ich aber ein Problem, wenn die Werte aus irgend einem Grund mal nicht in der selben Reihenfolge in der Spalte stehen...
Und: Wie kann ich sowas sortieren/filtern? ZB nach Schuhersteller. Die Werte stehen ja in der Spalte Wert untereinander. Die sind über die Tabelle attribute verknüpft.
Also Tabelle attribute:
id|kathegorie_id|attributname
1|1|Größe
2|1|Hersteller
3|2|cpu
Tabelle kathegorien:
id|Name
1|PCs
2|Schuhe
3|Blumentöpfe
Tabelle Werte:
id|attribut_id|objekt_id|wert
1|1|1|Tower
2|2|1|HP
3|3|1|3.4
Soll heissen Kathegorie 1(PCs) Objekt1(also PC1) Attribute 1-3.
In der gleichen Spalte stehen aber auch Farbe eines Blumentopfs oder Schuhgröße.
zB 3(Blumentöpfe) Objekt3(also Topf3) Attribute 1-3.
Ihr hattet mir ja schon geraten, das ganze in ein Array zu packen.
Das war auch ein Ansatz. Den attribut-Namen als Schlüssel nehmen und die Objektwerte dahinterpacken.
PHP-Code:
while($ausgabe=mysql_fetch_assoc($msquery))
{
$schuharray[$ausgabe['attributname']]=$ausgabe['objektwert']
}
Aber ich habe die Unterteilung des Arrays in die einzelnen Objekte nicht hinbekommen.
Der Array-Schlüssel muss eindeutig sein und in meinem Fall habe ich zB mehrere PCs in der Datenbank. Ich müsste also das Array
füllen. Sortieren. Ausgeben. leeren.
füllen. Sortieren...
Eine Idee wäre noch mehrere Arrays zu erzeugen jeweils mit der Objektid als Anhängsel.
Aber das ist doch Müll, oder? Vor allem, wenn da zB "nur" 100 PCs in der DB sind.
--
Bin schon fast so weit, wieder zu den Wurzeln zurück zu gehen und einfach den Tabellennamen mit zu übergeben.
PHP-Code:
$sql="select * from ".$_GET['tabellenname']...
Für jede Kathegorie eigene Formulare zu nehmen und gut.
Weil so scheint es nicht lösbar zu sein. Vor allem wenn ich zB noch filtern oder sortieren möchte.