 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
14.11.2006, 11:56
|
#1
|
|
TP-Senior
Registriert seit: Oct 2003
Ort: Mönchengladbach
|
Spaltenweise auslesen
Hallo,
ich würde gerne spaltenweise aus der Datenbank auslesen.
Das Funktioniert auch. Allerdings möchte ich unter den Tabellen Spalte mit colspan eine weiter Spalte.
Beispiel
|Spalte1||Spalte2|
|Colspan Spalte |
|Spalte1||Spalte2|
|Colspan Spalte |
usw.
Kann mir einer Helfen die Colspan Spalte einzufügen?
PHP-Code:
<?
$ergebnis = mysql_query("SELECT id,titel,hauptbild FROM sehbuecher ORDER BY titel ASC") or die(mysql_error());
echo "<table border=\"1\">\n";
$i = 0;
while ($data = mysql_fetch_array($ergebnis))
{
if ( ! ($i % 2))
echo " <tr>\n";
echo " <td>" . $data["titel"] . "</td>\n";
if ($i % 2)
echo " </tr>\n";
$i++;
}
if ( ! ($i % 2))
{
echo " <td> </td>\n";
echo " </tr>\n";
}
echo "</table>\n";
?>
|
|
|
14.11.2006, 12:19
|
#2
|
|
TP-Veteran
Registriert seit: May 2003
Ort: krefeld
|
meinst sowas?:
PHP-Code:
echo "<table border=\"1\" summary=\"\">\n";
$i = 0;
while ($data = mysql_fetch_array($ergebnis)) {
if (! ($i % 2))
echo " <tr>\n";
echo " <td>".$data['titel']."</td>\n";
if ($i % 2)
echo "</tr>\n";
$i++;
}
if (! ($i % 2)) {
echo " <tr>\n";
echo " <td colspan=\"2\"> </td>\n";
echo " </tr>\n";
}
echo "</table>\n";
__________________
computer tun nur das was man ihnen sagt, meistens
|
|
|
14.11.2006, 12:29
|
#3
|
|
TP-Senior
Registriert seit: Oct 2003
Ort: Mönchengladbach
|
Ja so ähnlich.
Nach deinem Beispiel sieht es jetzt so aus:
|Spalte1||Spalte2|
|Spalte1||Spalte2|
|Colspan Spalte |
So in der art hatte ich es auch schon.
Ich brauche aber das:
|Spalte1||Spalte2|
|Colspan Spalte |
--- Lerrzeile ---
|Spalte1||Spalte2|
|Colspan Spalte |
Irgendwie stehe ich auf der Leitung
|
|
|
14.11.2006, 12:44
|
#4
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
es muss heissen
if($i % 2 == 0) oder if($i % 2 !=0)
damit das greift, sonst ist es entweder nie oder immer erfüllt.
|
|
|
14.11.2006, 12:57
|
#5
|
|
TP-Senior
Registriert seit: Oct 2003
Ort: Mönchengladbach
|
Hmmm...
Steffen wo soll das ersetzt werden?
Ich sehe kein Unterschied
|
|
|
14.11.2006, 13:20
|
#6
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
ich würde es einfacher machen:
PHP-Code:
while($row = mysql_fetch_assoc($ergebnis)) {
echo '<tr>';
echo '<td>'.$row['spalte1'].'</td>';
echo '<td>'.$row['spalte2'].'</td>';
echo '</tr><tr>'
echo '<td colspan="2">'.'irgendwas'.'</td>';
echo '</tr>';
}
|
|
|
14.11.2006, 21:51
|
#7
|
|
TP-Senior
Registriert seit: Oct 2003
Ort: Mönchengladbach
|
Steffen dann bekomme ich alles Doppelt ausgelesen.
Habe jetzt noch mal paar Änderungen gemacht.
Jetzt bekomme ich zwar die erste Ausgabe mit entprechenden Inhalt
inkl. was in der colspan spalte stehen soll angezeigt. In der 2. Ausgabe fehlt die colspan Ausgabe aber schon wieder.
Es sind genau 4 Datensätze in der Datenbank.
Ich will eigentlich nur das jeweils 2 Ausgaben nebeneinander stehen.
Einen Rest von 1 Ausgabe wird es nicht geben.
Gibt es nicht noch eine andere Möglichkeit?
PHP-Code:
$result = mysql_query("SELECT a.id, a.titel, a.kat_id, a.hauptbild, a.shop_link, b.id, b.titel, c.id, c.edition, d.id, d.sehbuch_titel, d.text FROM sehbuecher AS a LEFT JOIN pole_pos AS b ON a.titel = b.titel LEFT JOIN sehbuch_kategorie AS c ON a.kat_id = c.id LEFT JOIN sehbuch_description AS d ON a.titel = d.sehbuch_titel ORDER BY b.titel DESC, a.titel ASC",$db) OR die (mysql_error());
echo "<table border=\"1\">\n"; $i=0; // Hilfsvariable auf 0 setzen echo "<tr>\n"; // erstmal ne Zeile beginnen while ($row = mysql_fetch_row($result)) { echo "<td width=\"210\">\n"; echo "<strong>$row[1]</strong><br>$row[8]<br>"; echo "<img src=\"sehbuch_bilder/$row[3]\" alt=\"\" border=\"0\"><br>\n"; echo "</td>\n"; $i++; // Hilfsvariable um eins erhöhen if ($i % 2 == 0) { // wenn die Hilfsvariable gerade (also durch zwei teilbar ist) echo "</tr>\n"; echo "<td colspan=\"2\">$row[11]</td>\n"; echo "</table>\n"; echo "<br>\n"; echo "<table border=\"1\">\n"; echo "<tr>\n";// dann neue Zeile } } //letzte Zeile abschliessen echo "</table>\n"; ?>
|
|
|
14.11.2006, 22:54
|
#8
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
|
Schau mal genau, was Du für ne Tabelle generierst, ein Blick in den Quelltext dürfte einiges verraten!
Das erste <tr> enthält nur 1 <td>
Dann, wenn die Hilfsvariable gerade ist schliesst Du mit </tr>
Ohne ein neues <tr> fährst Du mit <td> fort
Diesem TD gibst Du colspan="2" - wozu? Es gibt ja keine <tr> mit mehr als 1 <td>!
Nach dem </td> folgt kein </tr> vor </table>
Schliesslich beginnst Du wieder eine neue <table>
Also alles recht seltsam.
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]
use my HTML-Tester
Motto'06: Mut zur deutschen Sprache!
|
|
|
15.11.2006, 10:01
|
#9
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
und doppelt kann nicht sein, ausser Deine Datenbanktabelle hat alles doppelt oder die Query ist falsch, da die Schleife alle Datensätze durchläuft.
Nimm die Query mal in pma oder msd und lass Dir das Ergebnis anzeigen.
|
|
|
15.11.2006, 13:37
|
#10
|
|
TP-Senior
Registriert seit: Oct 2003
Ort: Mönchengladbach
|
Ich erkläre noch mal was ich vor habe.
Folgende DB Tabellen:
Tabelle: kat_titel
id
titel
--------------------------
Tabelle: kat_edition
id
edition
--------------------------
Tabelle: beschreibung
id
text
-------------------------
Tabelle: produkt
id
kat_titel_id
kat_edition_id
bild
link
-------------------------
Jetzt möchte ich die Tabelle produkt so auslesen lassen:

|
|
|
15.11.2006, 20:09
|
#11
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
|
Also wenn ich das richtig verstehe, kann 1 Produkt in mehreren Editions vorkommen und hat immer den gleichen Titel und die gleiche Beschreibung. Stimmt das?
Dann zwingt sich aber eine andere DB-Struktur auf!
Du sagtest, dass es nie einen 'Rest' von 1 gibt.
Dafür hast Du aber Produkte, die in mehr als 2 Editions vorkommen.
Im Beispiel C sind das zB. 3.
Du musst also auch zählen, wie viele Du hast, um den Colspan auf 2, 3 oder noch mehr zu setzen.
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]
use my HTML-Tester
Motto'06: Mut zur deutschen Sprache!
|
|
|
15.11.2006, 22:23
|
#12
|
|
TP-Senior
Registriert seit: Oct 2003
Ort: Mönchengladbach
|
Stimmt fast 321. Der Titel ist nicht immer gleich.
Ich habe aber jetzt eine Lösung gefunden mit der ich leben kann.
Ich habe die Spalten auf 3 gesetzt und da wo nur 2 ausgaben sind einen zusätzlichen "Dummy" reingepackt. Ist zwar nicht die feine Englische Art aber
erstmal reicht mir das so. Dachte auch erst ich habe immer 2 Ausgaben. Das hat sich aber zwischendurch geändert. ;-)
Geändert von Borusse (15.11.2006 um 22:25 Uhr).
|
|
|
15.11.2006, 23:40
|
#13
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
|
na, wenns dann in einer Woche 4 oder 5 oder 'open-end' sind schau ma weita 
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]
use my HTML-Tester
Motto'06: Mut zur deutschen Sprache!
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 20:55 Uhr.
|
 |