
kay899
Mitglieder-
Gesamte Inhalte
6 -
Benutzer seit
-
Letzter Besuch
-
Leere Zellen einer Tabelle mit PHP auffüllen
kay899 antwortete auf kay899's Thema in Skript- und Webserverprogrammierung
Hallo, im ersten Post ging es mir ja noch darum die Zeilen der Gruppierungen zusammen zu ziehen. Das klappt ja mittlerweile sehr gut. OK, das mit Modulo seh ich auch ein, auch wenn das Ergebnis bei mir auch vorhanden ist, nur wahrscheinlich halt umständlicher. Nach Pivot hab ich schon länger rumgesucht, aber nichts brauchbares gefunden, was ich verstehe. Da ich ehrlich gesagt schon Probleme bei einem einfachen JOIN habe, ist das wohl eine Nummer zu hoch, oder? Du wirst ja in meinem Code gesehen haben, dass ich mehrere Abfragen verwenden, weil ich JOINS nicht kapiere. LG Kay -
Hallo, ich verzweifel schon seit geraumer Zeit an einem kleinen Problem: Ich würde gerne Stichworte zu einem Oberbegriff immer in einer Tabelle darstellen. Dabei kann ich die Zeilen für den Oberbegriff berechnen und entsprechend zusammenfassen. Die Stichworte stelle ich 3-Spaltig dar (wobei das austauschbar sein soll). Jetzt kommt folgendes Problem: Oberbegriff - Anzahl der Stichworte - Anzahl der Darzustellenden Zellen - Zellen die aufgefüllt werden müssten Regionen - 5 - 6 - 1 Bundesländer - 2 - 3 - 1 Veranstaltungsart - 4 - 6 - 2 (Beispielbild des Ergebnisses habe ich angehängt) Hier mein Code: $qry="SELECT t.tagid, t.tgroupid, t.label, g.label FROM pragmamx.hds_rss_tags t, pragmamx.hds_rss_taggroups g WHERE t.tgroupid = g.tgroupid ORDER BY g.sortorder ASC,t.label ASC"; //echo "$qry<p>"; $result = sql_query($qry); if($result){ $Anzahl=mysql_numrows($result); $lastgroup=0; while(list($tagid, $tgroupid, $label, $grouplabel) = sql_fetch_row($result)) { // 2. Abfrage da ich keinen JOIN kann / ID>0 heisst das die Checkbox ausgewählt werden muss $qryx="SELECT id FROM pragmamx.hds_tagging_autotags WHERE tagid='$tagid' AND rssid='$rssid'"; //echo "$qryx<p>"; $resultx = sql_query($qryx); list($Value) = sql_fetch_row($resultx); $Row++; if ($lastgroup!=$tgroupid) { $i=1; // 3. Abfrage zur Ermitteltung der Anzahl je Gruppe $qryc="SELECT count(*) FROM pragmamx.hds_rss_tags WHERE tgroupid='$tgroupid'"; //echo "$qryc<p>"; $resultc = sql_query($qryc); list($count) = sql_fetch_row($resultc); $countrow=ceil($count/$spalten); // Anzahl der Reihen ermitteln und auf Ganzzahl setzen $tabletd = $countrow * $spalten; // Anzahl der Zellen ermitteln, wenn Spalte vollständig sein soll $missingtd = $tabletd - $count; // Anzahl der "leeren" Zellen ermitteln zum auffüllen echo "$grouplabel - $count - $tabletd - $missingtd<br>"; //if ($GroupID==0) $out.="<tr bgcolor=\"$bgcolor2\"><td rowspan=\"$countrow\" valign=\"top\">$grouplabel</td>"; // Zwischenüberschrift Gruppenname $lastgroup=$tgroupid; } $out.="<td bgcolor=\"$bgcolor3\"><input type=checkbox name=\"tagbox[]\" ".(($Value>0) ? "checked " : "")."value=$tagid> $label </td>"; if($i==$spalten) { $out.="</tr><tr bgcolor=\"$bgcolor2\">"; $i=0; } $i++; } // //if ($missingtd>=1) { // for($m = 1; $m < $missingtd; $m++) // { // $out.="<td> </td>"; // } // // } } return $out;[/PHP] Ich hoffe jemand kann mir helfen den Knoten in meinem Gehirn zu lösen und mir erklären, wie ich es hinbekomme die fehlenden Zellen aufzufüllen. Vielen Dank Kay
-
Hallo, ich benutze PHP. Mein Code sieht im Moment so aus (das mit $i ist der gescheiterte Versuch): function TagsList() { global $admin, $bgcolor1, $bgcolor2, $bgcolor3; global $prefix, $sitename, $module_name; $qry="SELECT t.tagid, t.tgroupid, t.label, g.label FROM ss_tags t, rss_taggroups g WHERE t.tgroupid = g.tgroupid ORDER BY g.sortorder ASC, t.label ASC"; $result = sql_query($qry); if($result){ $Anzahl=mysql_numrows($result); $lastgroup=0; $i=1; while(list($tagid, $tgroupid, $label, $grouplabel) = sql_fetch_row($result)) { $Row++; if ($lastgroup!=$tgroupid) { if ($GroupID==0) $out.="<tr bgcolor=\"$bgcolor2\"><td><b>$grouplabel</b></td><td bgcolor=\"$bgcolor3\">"; // Zwischenüberschrift Gruppenname $lastgroup=$tgroupid; } $out.="<input type=checkbox name=\"tagbox[]\" ".(($Value>0) ? "checked " : "")."value=$tagid> $label "; if($i==3) { $i=1; $out.="<br>"; } $i++; } $out.="</td></tr>"; } return $out; } [/PHP] Ich würde gerne den Bereich der Checkboxen in drei Tabellen-Spalten trennen, da ich die dann auch gut stylen kann. Jedoch hat mein Formular ja vorne eine Titelspalte und wenn ich auf Tabellenzellen umsteige muss ich wissen, wie viele Reihen vorne die Bezeichnung der Gruppe hat, damit ich die Tabelle sauber aufbauen kann oder? Danke für eure Hilfe...
-
ja genau sowas in der Art ich möchte die Checkboxen im nächsten Schritt in 3 oder 4 Spalten anzeigen und dann umbrechen lassen. Also sowas: ================================================== || Region || [] Allgäu || [] Harz || [] Nordsee || || || [] Ostsee || [] Westerwald || || ================================================== || VA-Art || [] Fußballspiel || [] Musical || || ================================================== Da ich die Spalten mit den Checkboxen dann ja berechnen muss, müsste ich gleichzeitig wissen, wie viele Reihen ich in dieser Tabelle für die "Bezeichnung" = 1 Spalte verbinden muss. Hoffe das ist jetzt etwas klarer. Nochmals Danke für die Hilfe
-
Super, vielen Dank... beides zusammen geht wahrscheinlich nicht, oder? also die Daten ausgeben und gleichzeitig durchzählen. LG Kay
-
Hallo, ich habe eine Abfrage die zwei Tabellen abfragt: SELECT t.tagid, t.tgroupid, t.label, g.label FROM rss_tags t, rss_taggroups g WHERE t.tgroupid = g.tgroupid ORDER BY g.sortorder ASC, t.label ASC Das Ergebnis sieht so aus: tagid tgroupid label label 9 1 Allgäu Regionen 4 1 Harz Regionen 2 1 Nordsee Regionen 3 1 Ostsee Regionen 8 1 Westerwald Regionen 5 2 Bayern Bundesländer 6 3 Fußballspiel Veranstaltungsart 7 3 Musical Veranstaltungsart Ich würde jetzt gern gleichzeitig abfragen, wie wie Datensätze ich in welcher Gruppe (tgroupid) habe. Wenn ich mt COUNT() arbeite, bekomme ich immer 8 geliefert als Ergebnis aller Datensätze. Kann mir da jemand vielleicht einen Tip geben? Vielen Dank... Kay