Problem beim Mischen von HTML-Tabellen und PHP

  • Hallo,
    Ich versuche Gerade in eine bestehende Webseite eine Auswertung einer SQL-Datenbank mit hinein zu basteln, bekomme aber immer nur unsinnige Ergebnisse angezeit.
    Momentan habe ich erst einmal die SQL-Gechichte aufgegeben (wegen dem Probieren) und versuche nur einen Teil der Tabelle duch nen PHP-echo-Befehl darzustellen. Aber auch das klappt schon nicht. Ich hoffe mir kann jemand erklären, was für ein Fehler ich mache:


    Dieser Teil steht im Header für die spätere Datenbankabfrage:

    HTML
    <?php
    mysql_connect("","User","Passwort");
    mysql_select_db("Datenbank");
    $sqlab = "select * from Alertstatus where ID = 1";
    $res = mysql_query($sqlab);
    $dsatz = mysql_fetch_assoc($res);
    ?>


    Hier nun der Ausschitt der Tabelle:

    HTML
    <tr align="left" valign="top">
    
    
    
    
    <?php echo "<td height="90" colspan="3" align="center" valign="middle" class="Alert_green">". test"</td>";
    ?>    	
        	</tr>


    Eigentlich hatte ich gehofft, das ich nur __> test <__ angezeigt bekomme.
    Statt dessen ist aber nur folgendes zu lesen:
    __> ". test""; ?>


    <__
    Das hier ist in einer Zeile ^ und nicht in mehreren.


    Ich hoffe das sind erst einmal genügend Angaben.


    Und vorab:
    Danke für die Hilfe.


    Gruß Luriel

  • Das hier sollte dir helfen wenn du die Variable $test ausgeben willst: :)

    PHP
    echo '<td height="90" colspan="3" align="center" valign="middle" class="Alert_green">'.$test.'</td>';
  • Hallo,
    Hatte leider auch keinen Erfolg.


    Ich habe den oberen Teil mit folgender Zeile ergänzt:

    HTML
    $test = "Test";



    Die untere Zeile habe ich nach Deinem Beispiel abgeändert:


    HTML
    <?php echo '<td height="90" colspan="3" align="center" valign="middle" class="Alert_green">'.$test.'</td>';
    ?>


    Leider ist das angezeigte Ergebniss nach wie vor Müll:


    HTML
    '.$test.'';
    ?>


    Was ich aber ursprünglich vor habe (ich wollte mich nur langsam vortasten):
    Beim Aufruf der html-Seite soll ein Tabellenfeld je nach Einstellung in der SQL-Datenbank mit einer anderen Hintergrundfarbe belegt werden. (mittels änderung des "class=" - Parameter. In der Datenbank wird der Name für die CSS-Classe eingetragen.
    Der nächste Schritt soll dann sein, das sich die Webseite alle 2-5 sec. refresht.

  • Kann man das irgendwo sehen?


    Zitat

    Der nächste Schritt soll dann sein, das sich die Webseite alle 2-5 sec. refresht.


    WTF, sorry aber nein. Das kannst du deinem Client nicht antun das das Fenster alle 5sec nachläd. Wofür das denn?

  • Ich hatte sowas mal bei einem privaten Projekt im Einsatz. Dort lies ich den User per input-color in den Einstellungen die Farben beeinflussen und habe diesen nachher in der Datenbank gespeichert. Hier für jeden Farbwert eine eigene Klasse zu erzeugen, halte ich für sinnfrei. Die würde ich in einem data-attribut hinterlegen und zur Laufzeit per Js auslesen und anwenden. Bei einer solchen Aktion aber bitte nicht die Serverseitige validierung vergessen (Whitelist bei begrenzten Möglichkeiten, RegEx für alle Farbvariationen).

  • Hallo,
    Das Ganze ist ist für ein internes, privates Netzwerk (EIne Art Spiel mit Webunterstützung).
    Es wird eine Seite mit 5 Shaträumen, die gleichzeitig angezeigt werden (für 5 Abteilungen) und eine Statusanzeige, die den Alarm-Status wiedergibt.
    Eine der Stellen hat zusätzlich noch 4 Buttons, für 4 verschieden Alarmzustände. Je nach Zustand soll sich die Hintergrundfarbe eine bestimmten Feldes ändern. Das ganze soll dann automatisch von den 4 Anderen Bildschirmen übernommen werden.


    Das Ganze soll dann später auf nem Windows-PC mit XAMPP als Server und 5 Clients laufen.


    @ Nitamud:
    Sorry, ich versteh nur Bahnhof.
    Ich hab mich in Html, PHP und MySQL einwenig reingelesen. JS kann ich garnicht.

  • Mach deine Ausgabe so


    Zitat


    $test = "Test 123";
    echo "<td height=\"90\" colspan=\"3\" align=\"center\" valign=\"middle\" class=\"Alert_green\">$test</td>";

  • @ Jochen:


    Hab ich ausprobiert, aber ähnliches Ergebniss bekommen:

    Code
    $test"; ?>


    Die Variablenzuweisung von "Test" hab ich dabei direkt in die Zeile vor den Echo-Befehl gepackt.


    Sobald er ">" bekommt interessiert sich das Ganze nur noch für "<" und gibt alles Andere raus wie es ist.


    Ich habe auch irgendwie die Vermutung, das er den <td> überhaupt nicht realisiert, denn er benutzt in dem Feld noch nicht einmal die vordefinierte Klasse und selbst die Schrift kann ich nur lesen, wenn ich den Bereich Markiere. An sonnsten ist die Schrift unsichtbar auf der Seite (Also falsche Farbe).

  • Kann ich irgendwie nicht nachvollziehen. Da solltest du vielleicht mal den ganzen Code posten den du auf der Seite hast.


    Hast du es mal so versucht?


    PHP
    <?php 
    $test = "Test 123";
    ?>
    <td height="90" colspan="3" align="center" valign="middle" class="Alert_green"><?php echo $test;?></td>


    Ich selber bin kein Freund davon HTML und PHP zu mischen.

  • Irgendwie komisch.


    Er stellt mir jetzt zwar das Tabellenfeld richtig dar, allerdings ganz ohne Inhalt. Es sieht so aus, als ob er auf der Seite überhaupt kein PHP macht.


    Gibt es möglichkeiten PHP per Befehl abzuschalten ? (Die Seite, die ich benutze hatte ich vorher kopiert und dann entsprechend verändert.) Oder kann das an den eingebauten Chatrooms liegen?

  • Hier der ganze Code: (bei Zl 58 liegt mein Problem)


  • PHP Version 5.2.17-nmm2


    Und ne ganze Menge Mehr.
    Bitte nicht falsch verstehen, aber ich würde nur ungern so ne Masse an privaten Daten offenlegen, da ich zum probieren ein normalen Internet-Webserver verwende, auf denen unsere Homepage läuft.



    Welche Daten genau werden gebraucht?

  • Gar keine, ich wollte nur schauen, ob PHP bei dir überhaupt funktioniert, weil du es ja selber angesprochen hast. Ganz ehrlich ich bin derzeit etwas Sprachlos, warum das etwas weiter oben genannte Beispiel von mir bei dir nicht geht.

  • Also PHP funktioniert.
    Mit den besagten 4 Buttons für die Alarmzustände ruf ich ein PHP-Scrift auf, das mir dann einen Wert in der Datenbank ändert und sich dannasch wieder schließt.


    Das funktioniert schon mal nur die EInbindung vom php-Code.


    Oder kann das vielleicht nicht finktionieren, weil ich es innerhalb eines "forms" mache ? (Um die Daten der Buttons weiter zu geben)

  • Probier mal das und poste den output

  • Was für ein Kauderwelsch:


    Code
    Test für PHP
    "; $a = "Hello World
    "; echo $a; //CASE 2 - HTML + double quoted echo "Bonjour Le Monde"; $b = 'Bonjour Le Monde'; echo "$b"; //CASE 3 - HTML + single quoted echo 'Hola Mundo'; $c = 'Hola Mundo'; echo ''.$c.''; ?>


    Wenn ich Case 1 weglasse:


    Code
    Test für PHP
    Bonjour Le Monde"; $b = 'Bonjour Le Monde'; echo "$b"; //CASE 3 - HTML + single quoted echo 'Hola Mundo'; $c = 'Hola Mundo'; echo ''.$c.''; ?>



    Und nur Case 3:


    Code
    Test für PHP
    Hola Mundo'; $c = 'Hola Mundo'; echo ''.$c.''; ?>



    Obige Ergebnisse bei Benutzung von Firefox 37.0.2


    Beim Internet-Explorer kommt nur folgendes raus:


    Code
    Test für PHP
    '; ?>


    Hab das Testfile mal auf 2 verschiedenen Servern getestet: beide das gleiche Ergebniss.

  • gibts nen link wo man sich das anschauen kann?


    &hast du das in eine eigene datei getan oder in deine?
    @all Kann das sein das BOM oder ähnliches da so'n Mist erzeugen?


    CODEUPDATE


    Output auf http://phptester.net/ mit PHP 5.2

    HTML
    Hallo Welt<br>
    Hello World<br>
    <strong>Bonjour Le Monde</strong><br>
    <strong>Bonjour Le Monde</strong><br>
    <strong style="color: red;">Hola Mundo</strong><br>
    <strong style="color: red;">Hola Mundo</strong><br>


    Dein PHP -Parser hat irgendwie n knall :D

  • Hallo,
    Danke für die Mühe.


    Ich denke ich hab meinen fehler jetzt gefunden:


    Da die Webseite ursprünglich HTML war ohne php hatte ich als Endung auch ".html" gehabt.
    Nachdem ich die Datei in ".php" umbenannt hatte macht die Seitet nun auch das, was sie soll. - Vorerst.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!