tabellen problen in php skript
master_1
- php
0 dedlfix
0 master_10 Der Martin
0 master_10 dedlfix
0 Der Martin
hallo leute !
bei meinen datingskript gibt es auf der startseite ausgaben von kurzprofilen. es wird bild, name, geschlecht, und die partnersuche angezeigt in selbeiger reihenfolge angeziegt. im ie ist das kein problem. firefox gibt die kurzprofil inhalte 1. nicht mittig und 2. den mitgliedsnamen ober dem profilbild und das ist schlecht.
habe 2 code:
1. $result_bilder = mysql_query($sql_bilder) or die("Fehler: $sql_bilder - " . mysql_error());
//Tabellenreihen bilder
while ($row_bilder = mysql_fetch_array($result_bilder)) {
$bilder_reihe[$i] = "<table><tr><td class="pic"><img style="cursor:pointer;" src="./pics/pic_small/" . $row_bilder['picfile'] . "" width="" . $pic_min_b . "" height="" . $pic_min_h . "" onClick="popUpWindow('big_pic.php?img=" . $row_bilder['picfile'] . "', '50', '50', '800', '600', '" . $pic_max_b . "', '" . $pic_max_h . "')"></td></tr>";
$text_reihe[$i] = "<tr><td valign="top" class="top_profil">" . tf_profil($row_bilder['mit_id'], $row_bilder['durchschnitt']) . "</td></tr></table>";
$x = $i++;
}
// Tabelle zusammenstellen
$i=1;
$tabelle_top = "<table width="90" bgcolor='#ffffff' cellspacing="0" cellpadding="0">";
for ($j = 0; $j <= $x; $j++) {
if($i==1)
{
$tabelle_top .= "<tr><td>";
$tabelle_top .= $bilder_reihe[$j];
$tabelle_top .= $text_reihe[$j];
$tabelle_top .= "</td><td>";
++$i;
}
elseif($i==2)
{
$tabelle_top .= $bilder_reihe[$j];
$tabelle_top .= $text_reihe[$j];
$tabelle_top .= "</td></tr>";
$i=1;
}
}
$tabelle_top .= "</table>";
?>
und in der funktion wäre da noch ein code.
<$profil_text = "<tr><td align="center" class="votel" colspan="0"</td><a href="profil.php?id=" . $row_profil2['mit_id'] . "">" . $nickname_ok2 . "</a> <img src=" . $gbild . " width="11" height="16"></td></tr>";
$profil_text .= "<tr><td align="center" class="vote" colspan="0">Suche: " . $row_profil2['partnersuche'] . "</td></tr>";
return $profil_text;
}
mir wurde geraten das zu machen
" in deinem fall ist es egal - das tr mehr oder weniger machts im endeffekt nicht fett - es ging nur drum dass innerhalb des tables noch ein table usw geschachtelt war - und dabei ein fehler produziert wurde - um ihn zu beheben musst du nur deine zeile 4 von (auszug):
php:
1:
$text_reihe[$i] = "<td valign="top" class="top_profil">" . tf_.....
auf
php:
1:
$text_reihe[$i] = "<tr><td valign="top" class="top_profil">" . tf_.....
abändern - dann sollte alles richtig dargestellt werden "
das habe ich gemacht aber ändert im firefox nichts
2 code weil einer ist für die jeweilige ausgabe zb. neues mitglied und im code 2 steht das drinn weil das die function ist. ich kenn mich da nicht aus drumm frage ich euch !!!
echo $begrüßung;
im ie ist das kein problem. firefox gibt die kurzprofil inhalte 1. nicht mittig und 2. den mitgliedsnamen ober dem profilbild und das ist schlecht.
Mixe bitte nicht die Zuständigkeiten. PHP ist dafür da, um eine Ausgabe zu erstellen. Ob das HTML- oder CSS-Code ist oder sonstwelche Daten sind, ist dabei egal. Wenn du ein Darstellungsproblem in einem Browser hast, betrachte das was beim Browser ankommt. Hilfreich kann es sein, zunächst mal die Seite mit statischem HTML und mit Beispieldaten aufzubauen. Darin kannst du Fehler suchen und experimentieren. Wenn du damit zufrieden bist, kannst du die Beispieldaten durch serverseitigen Code erzeugen lassen. Du weißt dann anhand deiner statischen Seite auch, was das PHP am Ende auszuspucken hat.
echo "$verabschiedung $name";
echo $begrüßung;
im ie ist das kein problem. firefox gibt die kurzprofil inhalte 1. nicht mittig und 2. den mitgliedsnamen ober dem profilbild und das ist schlecht.
Mixe bitte nicht die Zuständigkeiten. PHP ist dafür da, um eine Ausgabe zu erstellen. Ob das HTML- oder CSS-Code ist oder sonstwelche Daten sind, ist dabei egal. Wenn du ein Darstellungsproblem in einem Browser hast, betrachte das was beim Browser ankommt. Hilfreich kann es sein, zunächst mal die Seite mit statischem HTML und mit Beispieldaten aufzubauen. Darin kannst du Fehler suchen und experimentieren. Wenn du damit zufrieden bist, kannst du die Beispieldaten durch serverseitigen Code erzeugen lassen. Du weißt dann anhand deiner statischen Seite auch, was das PHP am Ende auszuspucken hat.
echo "$verabschiedung $name";
stell dir vor es haben sich um das problem 3 programmierer bemüht und keine wusste was zu tun ist! ich selbst bin zu wenig begabt in php das ich das aus einer php datei in ein css trennen könnte.
Hallo,
stell dir vor es haben sich um das problem 3 programmierer bemüht und keine wusste was zu tun ist!
spricht nicht gerade für die Leute ...
ich selbst bin zu wenig begabt in php das ich das aus einer php datei in ein css trennen könnte.
Brauchst du doch auch gar nicht. Schau dir einfach den Quelltext an, wie er beim Client (Browser) ankommt. Daran kannst du dann die Fehler suchen. Und wenn du die Lösung hast, kannst du von deinem clientseitigen HTML/CSS-Quellcode wieder auf den PHP-Code zurückkommen. Das ist noch schwierig genug.
Aber bis zu diesem Punkt musst du dir und uns die Sache nicht noch schwerer machen, indem du massenhaft PHP-Code vorzeigst, der mit dem Problem nicht direkt zu tun hat.
So long,
Martin
Hallo,
stell dir vor es haben sich um das problem 3 programmierer bemüht und keine wusste was zu tun ist!
spricht nicht gerade für die Leute ...
ich selbst bin zu wenig begabt in php das ich das aus einer php datei in ein css trennen könnte.
Brauchst du doch auch gar nicht. Schau dir einfach den Quelltext an, wie er beim Client (Browser) ankommt. Daran kannst du dann die Fehler suchen. Und wenn du die Lösung hast, kannst du von deinem clientseitigen HTML/CSS-Quellcode wieder auf den PHP-Code zurückkommen. Das ist noch schwierig genug.
Aber bis zu diesem Punkt musst du dir und uns die Sache nicht noch schwerer machen, indem du massenhaft PHP-Code vorzeigst, der mit dem Problem nicht direkt zu tun hat.So long,
Martin
@Martin !
habe jetzt den quell im firefox angesehen aber das sagt mir auch nicht viel ;-)
<table width="90" bgcolor='#ffffff' cellspacing="0" cellpadding="0">
<td width='0%'><tr><td align="center" class="pic"><a href='#' onClick="window.open('big_pic.php?img=11_1194206102.jpg','popup','width=800,height=600,top=135,left=135');"><img src='pics/pic_small/11_1194206102.jpg' style='border: 0px solid #000000' height='90' width='90'></a></td></tr></td>
<td width='100%' valign='top'><tr><td align="center" class="votel" colspan="1"</td><a href='profil.php?id=11'> schnucki</a> <img src='images/female.gif' border='0'><tr><td align="center" class="vote" colspan="1">Suche: Mann</td></tr></td>
</tr></table></td>
das schnucki steht auch hier unter dem bild aber angezeigt wird der name ober dem bild...
echo $begrüßung;
habe jetzt den quell im firefox angesehen aber das sagt mir auch nicht viel ;-)
Es tut mir leid, wenn ich dir das so sagen muss, aber das was du hier gezeigt hast ist totaler HTML-Code-Müll. Ich habe das mal ein klein wenig an den langen Zeilen mit [...] gekürzt und den Code durch Einrückungen formatiert.
<table width="90" bgcolor='#ffffff' cellspacing="0" cellpadding="0">
[1] <td width='0%'>
<tr>
<td align="center" class="pic">
<a href='#' onClick="window.open([...])">
<img src='pics/pic_small/11_1194206102.jpg' [...]>
</a>
</td>
</tr>
</td>
[2] <td width='100%' valign='top'>
[3] <tr>
[4] <td align="center" class="votel" colspan="1"</td>
[5] <a href='profil.php?id=11'> schnucki</a>
<img src='images/female.gif' border='0'>
[6] <tr>
<td align="center" class="vote" colspan="1">Suche: Mann</td>
</tr>
</td>
</tr>
</table>
</td>
[1] Nach einem <table> kommen zuerst mit <tr> die Tabellenreihen. Darin kommen die Tabellenzellen (<td>). Du schachtelst hier eine Reihe in eine Zelle und in die Reihe eine weitere Zelle. Das gleiche verkehrte Muster taucht bei [2] nochmal auf. Bei [4] wird das <td... geöffnet aber nicht geschlossen (ein > fehlt). Dann beendest du die Zelle (</td>) und schreibst bei [5] außerhalb der Zelle weiter. [6] Hier wieder ein <tr> wo es nichts zu suchen hat. Zwar schließt ein öffnendes <tr> automatisch ein nicht geschlossenes vorangegangenes <tr>, es ist aber nicht empfehlenswert, auf </tr> zu verzichten. Im weiteren Verlauf stellt sich jedoch heraus, dass die <tr> bei [6] innerhalb der äußeren <tr> bei [3] platziert sein soll.
Sortiere erst einmal diese Code. Nimm dir dazu einen HTML-Editor und erzeuge ohne die PHP-Teile eine reine HTML-Seite (ggf. mit CSS und Javascript). Wenn diese den HTML-Regeln entspricht, und der Validator nichts mehr anzumerken hat, dann widme dich wieder dem PHP und füge die variablen Teile ein. Die vorher erstellte validierte HTML-Seite dient nun als Referenzobjekt. Das was das PHP erzeugt und beim Browser in der Quelltextansicht zu sehen ist, sollte der Referenzseite entsprechen.
echo "$verabschiedung $name";
Hi,
habe jetzt den quell im firefox angesehen aber das sagt mir auch nicht viel ;-)
aber immerhin genug um zu sehen, dass die Struktur der Tabelle völlig durcheinander ist. Wenn man deinen Code mal etwas augenfreundlicher formatiert (nur Leerzeichen bzw. Zeilenumbrüche), sieht man es:
<table width="90" bgcolor='#ffffff' cellspacing="0" cellpadding="0">
<td width='0%'>
<tr>
<td align="center" class="pic"><a [...]><img [...]></a></td>
</tr>
</td>
<td width='100%' valign='top'>
<tr>
<td align="center" class="votel" colspan="1"</td><a [...]> schnucki</a><img [...]>
<tr>
<td align="center" class="vote" colspan="1">Suche: Mann</td>
</tr>
</td>
</tr>
</table>
</td>
Von Kleinigkeiten wie fehlenden alt-Attributen bei den Bildern will ich gar nicht reden, aber du scheinst hier tr- und td-Elemente nach Herzenslust durcheinander zu würfeln. Es ist bewundernswert, dass ein Browser aus diesem Kauderwelsch überhaupt etwas zustandebringt.
Sorry, auch wenn es hart klingt: Bei derart chaotischem Code einen bestimmten Anzeigefehler zu suchen, das ist so, als wolltest du an einem Haufen Scherben untersuchen, ob das Glas einen Sprung hatte.
Gute Nacht,
Martin