PHP in Tabellenzelle

philkan

Aktives Mitglied
Thread Starter
Dabei seit
04.05.2004
Beiträge
1.275
Reaktionspunkte
4
Hallo!

Ich bin gerade am tüffteln für die Website eines Freundes.
http://www.philkan.at/mod/
Und habs nun entlich geschafft in eine Zelle einen PHP Code einfließen zu lassen. Nur hab ich noch ein Problem.
Das ist ein vorgefertigtes PHP Gästebuch, wenn man dort jetzt auf die Seite 2 will, springt er aus der Zelle raus. Das will ich aber nicht sondern ich will, das es genau so weitergeht.
Wenn möglich ohne einen IFrame.
Noch dazugesagt ich bin eine absolute Null im PHP Programmieren.

Danke für eure Hilfe!!!

Lg
 
bei mir kommt nen MySQL Error , deswegen kann ich dazu nix sagen ...
 
So nun sollt es wieder funktionieren.
 
Das wird auch kaum möglich sein, der Link geht ja auf die book/index.php
den link müßtest du ändenr unten im Menü und zwar so dass du in der Tabellenzelle dann das GB mit eben seite 2 aufrufst

also etwa

<a href='http://www.philkan.at/mod/wiedieersteseiteheisst.php?gbs=2'
dann das mit äh __GET["gbs"] (wars glaub ich) in ne Variable speichern zb
$gbpage = __GET["gbs"];
bedenke dabei, wenn get nich gesetzt ist gbpage auf 1 zu setzen ;)
und in der Zelle wo du das gb aufrufst dann
<? include("/book/index.php?page="+$gbpage); ?>
in etwa auf...das bewirkt dass du die entsprechende Seite kriegst

hm is so in etwa, bin mit beim Get nich ganz sicher sollte aber in etwa so sein. evtl mal php.net fragen ;)
 
also das HTML ist ja schon mal schauderhaft ... zwei komplette <head> tags usw. Da wunderts mich net dass es gar net gescheit geht ...
 
danke.
Nur muss ich ehrlich gestehen das ich keine ahnung habe was du meinst!
 
timbajr schrieb:
also das HTML ist ja schon mal schauderhaft ... zwei komplette <head> tags usw. Da wunderts mich net dass es gar net gescheit geht ...

Ja werde ich darüber arbeiten, nur gehts mir jetzt in erster linie darum das mit dem php auf die reihe zu kriegen.
 
Wo ist der Code?
Oder sollen wir den erraten? ;)

[edit] Der html Quelltext ist ein absolutes Chaos.
der Doctype kommt irgendwo in der Mitte etc. [/edit]
 
Der Code vom Gästebuch oder von der HTML Seite?
 
ähm das war so interpretierbar, dass du wenn du in der tabellenzelle das gästebuch einbindest du dem auch mitteilst welche Seite du haben willst
Dazu müssen natürlich die Seitenlinks (unten im GB) auch aktualisiert werden...aber ohne konkreten php code is das aucnn wenig kompliziert das mag sein, also auch den von der SeitenNummerAnzeige im GB weil du dann da den Link ändern musst
 
philkan schrieb:
So der Code zum Download:
[...]
Leider ist er zulange fürs Macuser.
Danke für eure Mühen!
Dann ist er auch zu lang für Helfer.
Du solltest Deinen Code auf das absolute Minimum reduzieren, das erforderlich ist, um Dein Problem zu demonstrieren.
Soviel Mühe solltest Du Dir schon machen ;).

philkan schrieb:
Ja werde ich darüber arbeiten, nur gehts mir jetzt in erster linie darum das mit dem php auf die reihe zu kriegen.
Das ist IMO die falsche Reihenfolge. Eine saubere Struktur ist eine der Voraussetzungen für sauberes Design.
 
So ich hoffe ich habe den Richtigen Teil rausgepieckt.

Code:
 <title>".$properties['guestbook_title']."</title>
    </head>";

    if ($template['bgimage'] == "") {
        echo "<body bgcolor=\"".$template['bgcolor']."\">";
    }

    if ($template['bgimage'] != "") {
        echo "<body bgcolor=\"".$template['bgcolor']."\" background=\"".$template['bgimage']."\">";
    }

    if ($properties['guestbook_status']) {
        echo "<div align=\"".$template['tablealign']."\">".$ms[16]."<br /><b><a href=\"".$url."/insert.php";

        if (isset($get_lang)) {
            echo "?lang=".$_GET['lang']."";
        }

        echo "\" title=\"".$ms[17]."\">".$ms[17]."</a></b><br /><br />";

        if ($page > 1) {
            $page_minus = $page-1;
            echo " <a href=\"".$url."/index.php?page=".$page_minus."";


            if ($get_lang) {
                echo "&lang=".$_GET['lang']."";
            }

            echo "\"><img src=\"".$url."/images/links.gif\" alt=\"".$ms[6]."\" border=\"0\" /></a>";
        }

        if ($page_start > 1) {
            echo " <a href=\"".$url."/index.php?page=1";

            if ($get_lang) {
                echo "&lang=".$_GET['lang']."";
            }

            echo "\">1</a> ...";
        }

        for ($i = $page_start; $i <= $page_end ;$i++) {
            if ($i == $page) {
                echo "<b>".$i."</b>";
            } else {
                echo " <a href=\"".$url."/index.php?page=".$i."";

                if ($get_lang) {
                    echo "&lang=".$_GET['lang']."";
                }

                echo "\">".$i."</a> ";
            }
        }

        if ($page_end < $pages_total) {
            echo " ... <a href=\"".$url."/index.php?page=".$pages_total."";

            if ($get_lang) {
                echo "&lang=".$_GET['lang']."";
            }

            echo "\">".$pages_total."</a>";
        }

        if ($page < $pages_total) {
            $page_plus = $page+1;
            echo " <a href=\"".$url."/index.php?page=".$page_plus."";

            if ($get_lang) {
                echo "&lang=".$_GET['lang']."";
            }

            echo "\"><img src=\"".$url."/images/rechts.gif\" alt=\"".$ms[18]."\" border=\"0\" /></a>";
        }

        echo "</div>
        <br />";
 
Ähm, ich dachte es wäre klar, dass Du lauffähigen Code posten sollst, denn man durch copy und paste übernehmen und testen kann oder zumindest (nein, eigentlich eher nicht) einen leicht überschaubaren, in sich geschlossenen Code-Abschnitt.

Im Übrigen kann ich Dir nur empfehlen, Dich von dieser Spagetti-Code-Technik zu verabschieden. Du solltest Dich IMHO behmühen HTML und PHP so gut wie möglich zu trennen. Das erleichtert dann auch die Fehlersuche ungemein.
 
Mal ungeachtet des Tabellenproblems, solltest du unbedingt dein Design vom Inhalt trennen. So ist das ein garstiges Gestrüpp aus HTML und PHP, durch das du bald nicht mehr durchsteigst geschweige denn einfach erweitern kannst.

Dabei brauchst du nichtmal ne dicke Template-Engine wie Smarty, es reicht schon ne kleine Klasse wie http://robsite.de/daten/temp/template.php.txt
Genauer erklärt: http://www.sitepoint.com/print/beyond-template-engine
Hat den Vorteil, dass du im Template direkt PHP benutzen kannst. Praktisch für foreach-Schleifen bei Listen oder so.
Die ganze Logik (Daten laden, User-Request bearbeiten, ...) läuft dann in deinem Hauptscript ab, welches die Daten dann ins Template einfügt und ausgibt.
Der nächste Schritt währe dann, auch noch die Zugriffe auf die Daten zu modularisieren und zu vereinfachen. Im Moment schreibst du die SQL-Queries ja bestimmt noch in dein Script, wo sie grad gebraucht werden. Mit guten DB-Funktionen oder gar einem relationalen Objektmapper sparst du dir ne Menge Arbeit. Aber das führt vllt. erstmal zu weit :>

Mehr:
http://de.wikipedia.org/wiki/Template_Engine
http://de.wikipedia.org/wiki/Model_View_Controller
http://de.wikipedia.org/wiki/Object-Relational-Mapping


Dann noch kurz was zum Code: Du mischst auch hier wieder Design mit Struktur. Soll heissen, Formatanweisungen (Farbe, Font, ...) sind im HTML-Code. Das ist schlecht, weil unflexibel und arbeitsaufwändig, wenn du was ändern willst.
Benutze für das Design (Farben, Größen, Positionen, ...) am besten nur CSS und überlass (X)HTML die Strukturierung.

Mehr:
http://jendryschik.de/wsdev/einfuehrung/css/styling
http://www.andreas-kalt.de/webdesign/tutorials/webdesign-mit-webstandards
http://www.lingo4u.de/article/checklist/
http://alistapart.com/
http://www.zeldman.com/dwws/
http://webstandards.org/

Und zum Thema, erm :kopfkratz. Guck ich mir morgen mal an :D

Aber mein Tipp: Schreibs neu, wenn du die Zeit hast. In einem bestehendem Code, der noch dazu nich so dolle zu sein scheint, rumzustochern, macht keinen Spaß.
Ein Gästebuch ist nicht übermäßig komplex. Eigentlich nur Posts anzeigen, das ganze auf mehreren Seiten, Posts erstellen und Spamschutz. Dabei lernst du auch gleich PHP. Wie gesagt, wenn du Zeit hast...

Gutes PHP-Tutorial: http://tut.php-q.net/
Gutes FAQ: http://www.php-faq.de/
Gute Referenz: http://www.php.net/
 
Zurück
Oben Unten