Hallo Leute, sorry das ich mich jetzt erst melde.
Der Beitrag von Sallow hat mir sehr geholfen und ich bin damit ein ganzes Stück weiter gekommen.
Den anderen Ansatz von Amica werde ichmir mal am Wochenende vornehmen. Wenn es einfacher ist bin ich immer bereit es umzusetzten.
Danke schon mal an ALLE
Abfrage von 6 Tabellen, dabei ersetzten von ID's durch Namen
Einklappen
X
-
Na eben, hatte ich nicht bemerkt.Zitat von TobiaZ Beitrag anzeigen@Amica: Deinen Blog-Beitrag hatte ich verlinkt.
Völlig richtig. Ich editier das mal eben noch. Danke für den Hinweis.Zitat von TobiaZ Beitrag anzeigenAber müsstenichtPHP-Code:$data[$color] = $row;
heißen?PHP-Code:$data[$color][] = $row;
Einen Kommentar schreiben:
-
@Amica: Deinen Blog-Beitrag hatte ich verlinkt.
Aber müsstenichtPHP-Code:$data[$color] = $row;
heißen?PHP-Code:$data[$color][] = $row;
Einen Kommentar schreiben:
-
Hallo,
ich weiß nicht, ob es (noch) hilft, aber ich hab zum Thema Gruppenwechsel mal im Blog geschrieben. Ich gebe zu, es ist nicht besonders gut erklärt, aber vielleicht ist es trotzdem halbwegs nachvollziehbar. Die Idee dahinter ist jedenfalls einfacher und flexibler als die mit der $old- oder $last-Variable.
Edit: vielleicht gleich noch ein simples Beispiel:
Eine Abfrage nach Möbelstücken (name, color) ergibt z. B. so etwas wie
Tisch, Buche
Wandregal, Kirsche
Schreibtisch, Birke hell
Wandschrank, Eiche rustikal
Schreibtisch, Kirsche
Tisch, Eiche rustikal
Wandregal, Buche
Will man jetzt nach der Farbe gruppieren, geht man so vor:
Natürlich kann man jetzt auch $row["name"] zum Gruppieren verwenden und es wird die Ergebnisse dem Namen nach ausspucken.PHP-Code:$data = array();
while ($row = mysql_fetch_assoc($result)) {
$color = $row["color"];
$data[$color][] = $row; // nachträglich korrigiert
}
print_r($data);
Gruß,
AmicaZuletzt geändert von AmicaNoctis; 21.11.2010, 21:23.
Einen Kommentar schreiben:
-
Auch zu einem simplen Beispiel kann man 1 oder 2 erklärende Sätze schreiben.Zitat von TobiaZ Beitrag anzeigenEs wurde nach einem Simplen Beispiel gefragt.
Würde ein um Hilfe Fragender hier einen Code ohne jeglichen Kommentar posten, gäb's doch auchZitat von TobiaZ Beitrag anzeigenMein Code ist wirklich aufs wesentliche reduziert gewesen.
Warum sollte also ein erklärender Code nicht kommentiert werden?
Verdreh' mir bitte nicht das Wort. Ich sage nicht, dass Dein Beispiel schlecht ist, ich sage nicht, dass es völlig unverständlich ist und ich sage auch nicht, dass Du seitenweise Text dazuschreiben sollst.Zitat von TobiaZ Beitrag anzeigenWer ein langes Tutorial will
Ich habe lediglich darauf hingewiesen, dass ich es besser finden würde, wenn man 1-2 Sätze dazuschreibt, um das Thema einfach direkt auf den Punkt zu bringen.
Zum Glück ahnte ich schon, worauf Du hinaus wolltest (kannte den Begriff aber nicht) und ich bin ja nun auch nicht gerade der unerfahrendste Programmierer, aber selbst ich habe 3x hinsehen müssen, um sicherzugehen, dass Du das meinst, was ich denke, was Du meinst.
cya
Einen Kommentar schreiben:
-
Es wurde nach einem Simplen Beispiel gefragt. Mein Code ist wirklich aufs wesentliche reduziert gewesen. Wer ein langes Tutorial will, der liest den zig-fach hier im Forum verlinkten Blog von Amica. Man muss nun wirklich nicht in jedem Thread alles von vorne erzählen.
Einen Kommentar schreiben:
-
TobiaZ wollte Dir mit der "Gruppenbildung" nur sagen, dass Du Dir während Deiner Ausgabe die Gruppe merken sollst, um darauf einzugehen.
Wenn ich's richtig verstanden habe, wäre Deine Gruppe entweder $daten['com_id'] oder $daten['pci_link'].
Durch die Hilfsvariable $last merkst Du Dir (wie in dem Gruppenbildungs-Beispiel) die zuletzt abgearbeitete Gruppe und änderst entsprechend die Ausgabe.
(Tabellen-Code lasse ich aus Gründen der Übericht weg.)
Ich hoffe, ich hab' nichts übersehen...ist schon spät.PHP-Code:[...]
$last = "";
while($daten = $style->fetch_array())
{
if ($last != $daten['com_id'])
{
echo "<br>";
echo $daten['com_id'] . " ";
echo $daten['pic_link'] . " ";
echo htmlspecialchars ($daten['style_id']) . " ";
echo htmlspecialchars ($daten'stylename']) . " ";
$last = $daten['com_id'];
}
else
{
echo htmlspecialchars ($daten['style_id']) . " ";
echo htmlspecialchars ($daten'stylename']) . " ";
}
}
[...]

Warum's TobiaZ so umständlich macht mit seiner Hilfe...tja, daran muss man sich leider in PHP-Foren gewöhnen. Manche Helfer werfen einem Fragenden lieber seitenweise Informationsbrocken zu, anstatt nur 1/10 der Zeit zu investieren, um einfach den helfenden Code hinzutippern.
Aber wir wollen uns ja nicht
Wir haben uns ja schließlich alle lieb.
cya
P.S.:
Meiner Meinung nach sollte jeder noch so simpel gehaltene und scheinbar selbsterklärende Quellcode kommentiert werden, falls er dazu dienen soll, etwas zu erklären bzw. aufzuzeigen.
Einen Kommentar schreiben:
-
Sicherlich helft ihr alle nur unentgeltlich, das mache ich auch bei meinen Kollegen. da habe ich auch nicht immer die passende antwort parat. aber ich kann beispiele nennen. und mehr möchte ich ja gar nicht. weder fordernd noch nörgelnt. Und ganz klar ist es mein problem. das steht ausser frage.
ich hatte nur die hoffnung das hier auch anfängern geholfen wird. man muss aber anscheinend eigentlich schon alles beherrschen, sonst wird einem nicht geholfen. Jeder hat mal angefangen, der eine 2001 der andere 2010.
Tue dir mal den Gefallen, so wie ich es getan habe und google nach gruppenwechsel php, und bekommst du ein passendes ergebnis?
Einen Kommentar schreiben:
-
$old speichert einfach den aktuellen (bzw. im nächsten Schleifendurchlauf dann den letzte) Wert für die zu grupppierende Eigenschaft. In deinem Fall kommt da halt die com_id rein, denn nach der willst du gruppieren. (statt old wäre wohl last) der bessere Name, gebe ich zu.
Aber ansonsten ist das Beispiel so simpel gehalten, dass es denke ich selbsterklärend ist. Anderenfalls frag nach, aber hör auf rumzunörgeln. Es ist DEIN Problem, bei dem wir nur freiwillig und unentgeltlich versuchen wollen zu helfen. Es gibt also keinen Grund hier fordernd zu werden.
Einen Kommentar schreiben:
-
Hab ich gelesen, was bringt mir das nun? Ohne Erklärung? einfach nur KOT.
Ich würde auch gerne verstehen warum ich was mache. Mit $old = ' '; kann ich nichts anfangen. Weil ich es nicht verstehe..
Einen Kommentar schreiben:
-
Ja danke TobiaZ. Wenn ich was vernünftiges finden würde zum Gruppenwechsel, meinste dann würde ich hier noch weiter fragen??
Ein simples Beispiel würde mir ja reichen. Learning by doing.
Einen Kommentar schreiben:
-
Dann wandel es doch einfach um. Das stichwort Gruppenwechsel wurde dir bereits genannt!
Einen Kommentar schreiben:
-
So, also ich habe heute einiges gegooglet. Gruppenbildung, Datenbank normalisieren etc.
Und dann habe ich mit einem Kumpel telefoniert und auch ihm mein Problem geschildert. Er meinte sofort, du brauchst eine weitere Tabelle.
So wie er mir das erklärt hat, habe ich das auch verstanden.
Also nun habe ich (erstmal) drei Tabellen:
competition1 (com_id/pic_link )
verweis (verweis_id/com_id/style_id)
style (style_id/stylename)
Während ich nun in die competition1 Tabelle immer nur ein Bild einfüge mit einer com_id, kann ich in die Verweis Tabelle nun mehrere Einträge mit der gleichen com_id machen.
Aber wie löse ich nun die Anzeige, ich habe keine Ahnung.
Ich möchte gerne das Bild(pic_link) einmal anzeigen lassen und dazu die stylename. Daran hat sich nix geändert.
Vielleicht kann mir ja jemand, nen bisschen auf die Sprünge helfen.
Mit dieser Abfrage:
bekomme ich dieses ergebnis. Was ich so halt nicht möchte.PHP-Code:<?php
include "../includes/db_daten.php";
$style = $mysqli->query("
SELECT * FROM competition1,verweis,style
WHERE
competition1.com_id=verweis.com_id
AND
verweis.style_id=style.style_id ");
{
while($daten = $style->fetch_array())
{
echo
"<table><tr>
<td>" . ($daten['com_id']) ."</td>"
. "<td>" . ($daten['pic_link']) ."</td>"
. "<td>" . htmlspecialchars ($daten['style_id']) . "</td>"
. "<td>" . htmlspecialchars ($daten['stylename']) . "</td></tr>";
}
$style->close();
echo "</table>";
}
?>
Ich möchteHTML-Code:1 ../vollbild/2403-08-Michelle.jpg 3 tri top 1 ../vollbild/2403-08-Michelle.jpg 6 mirco knicker 2 ../vollbild/2404-04-Christine.jpg 5 lighthouse shorts 2 ../vollbild/2404-04-Christine.jpg 10 hot shorts
HTML-Code:1 ../vollbild/2403-08-Michelle.jpg 3 tri top 6 mirco knicker 2 ../vollbild/2404-04-Christine.jpg 5 lighthouse shorts 10 hot shorts
Einen Kommentar schreiben:
-
Ich glaub, du solltest a) deine Datenbank normalisieren und b) dich mit Gruppenwechsel anfreunden. Oder evtl. auch mehrfach die selbe Tabelle joinen?
Die Idee ist zwar nicht sonderlich gut, aber woran scheiterst du denn? Sicher bekommst du die Daten ins Array rein und wie man auf einem bestimmten Array-Index (=ID) zugreift, sind genauso Grundlagen.Meine Idee wäre, die Styles aus der Tabelle Styles in ein Array abzulegen und dann bei der Ausgabe die ID durch den Namen zu ersetzten lassen.
ABER wie???
Einen Kommentar schreiben:
Einen Kommentar schreiben: