kostenloser Webspace werbefrei: lima-city


Html-Tabelle in php echo ausgeben

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    felicius12

    felicius12 hat kostenlosen Webspace.

    Ich will die aus einer msql gezogenen Daten als echo in einer Tabelle anzeigen:

    $abfrage = "SELECT id, Manschaft, Unentschieden, Gewinn, QuoteGewinn, Quote FROM $datum";
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_object($ergebnis))
       {
       echo " 
    <table width="100%" border="1" cellpadding="0" cellspacing="2">
     <tr>
      <td>$row->id</td>
      <td>$row->Manschaft</td>
      <td>$row->Unentschieden</td>
      <td>$row->Gewinn</td>
      <td>$row->QuoteGewinn</td>
      <td>$row->Quote</td>
      <td>&nbsp</td>
      <td>&nbsp</td>
     </tr>
    </table>  <br>";
    
       }

    Dabei erhalte ich die Fehlermeldung:
    Parse error: syntax error, unexpected T_LNUMBER, expecting ',' or ';' in ...
    Google lieferte mir dabei leider keine brauchbaren ergebnisse

    vielen dank im vorraus
    mfg
    FElix


    Beitrag zuletzt geändert: 28.3.2010 10:34:06 von felicius12
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Guck dir mal das erste Echo an:

    echo "<table width="100%" border="1" cellpadding="0" cellspacing="2"> ..............


    Dein Echo-Befehl wird von Hochkommata eingegrenzt, also es beginnt mit einem " und endet ebenso. Nun hast du allerdings noch "-Zeichen in der Ausgabe selbst, die PHP als Ende des Echo-Arguments nimmt.

    Gibt zwei Möglichkeiten:
    1. Du "escapest" die "-Zeichen im String mittels vorangestelltem Backslash \, also:
    echo "<table width=\"100%\" border=\"1\" cellpadding=\"0\" cellspacing=\"2\"> ..............

    2. Du kannst auch ' als Begrenzer des Echo-Befehls nutzen. Das verhält sich aber dann ein wenig anders (siehe dazu Dokumentation).
    echo '<table width="100%" border="1" cellpadding="0" cellspacing="2">' ..............



    Noch etwas: Wenn eine Fehlermeldung auf dem Bildschirm erscheint, die immer komplett mit angeben, weil in dieser die Zeilennummer des aufgetretenen Fehlers steckt. Anhand der kannst du problemlos feststellen, wo der Fehler im PHP-Quelltext erkannt worden ist.
    Allerdings kommt es vor, dass die Ursache des Fehlers sich bereits eine Zeile davor ereignet hat.

    Beitrag zuletzt geändert: 28.3.2010 11:03:48 von iniquitius
  4. Autor dieses Themas

    felicius12

    felicius12 hat kostenlosen Webspace.

    VELEN DANK

    iniquitius schrieb:
    Guck dir mal das erste Echo an:

    [code]


    Noch etwas: Wenn eine Fehlermeldung auf dem Bildschirm erscheint, die immer komplett mit angeben, weil in dieser die Zeilennummer des aufgetretenen Fehlers steckt. Anhand der kannst du problemlos feststellen, wo der Fehler im PHP-Quelltext erkannt worden ist.
    Allerdings kommt es vor, dass die Ursache des Fehlers sich bereits eine Zeile davor ereignet hat.

    Das mit dem Fehler ist mir klar soll nur nieman erfahren in welchem ordner das dokument liegt,
    und mit Zeile 305 hättest du auchnich sehrviel anfangen könen.:wink:
    Eine frage noch gibt es eine einfache methode, mit der ich die Zeilen unterschiedlich einfärbe, sieht cooler aus.
    Und gibt es eine möglichkeit in jede spalte eine Abhakmöglichkeit zu machen also gewonnen?, und dan abhaken wenn ja und das mit in die tabellespeichern

    mfg

    Felix


    Beitrag zuletzt geändert: 28.3.2010 11:14:09 von felicius12
  5. felicius12 schrieb:
    Eine frage noch gibt es eine einfache methode, mit der ich die Zeilen unterschiedlich einfärbe, sieht cooler aus.


    Das könnte so aussehen:
    <table width="100%" border="1" cellpadding="0" cellspacing="2">
     <tr>
      <td class="zeile1">$row->id</td>
      <td class="zeile2">$row->Manschaft</td>
      <td class="zeile1">$row->Unentschieden</td>
      <td class="zeile2">$row->Gewinn</td>
      <td class="zeile1">$row->QuoteGewinn</td>
      <td class="zeile2">$row->Quote</td>
      <td class="zeile1">&nbsp</td>
      <td class="zeile2">&nbsp</td>
     </tr>
    </table>

    Und die CSS dazu:
    .zeile1 {background-color: #999;}
    .zeile2 {background-color: #CCC;}
  6. Zu den Checkboxen: Ja, das geht.
    Zur Definition von Checkboxen in HTML einfach mal das hier angucken: http://de.selfhtml.org/html/formulare/auswahl.htm#checkboxen

    Zur Auswertung der Checkbox mit PHP ein Beispiel:

    <input type="checkbox" name="Checkbox1">Klick mich an</input>



    <?php
    if (isset($_POST['Checkbox1'])) {
    /* Häkchen wurde gesetzt */
    ... tue etwas ...
    }
    ?>


    Weitere Infos und wie man Checkboxen in Arrays gruppiert, gibt's hier:
    http://www.php-faq.de/q-formular-checkbox.html

    Beitrag zuletzt geändert: 28.3.2010 11:35:24 von iniquitius
  7. Autor dieses Themas

    felicius12

    felicius12 hat kostenlosen Webspace.

    iniquitius schrieb: Zu den Checkboxen: Ja, das geht.
    Zur Definition von Checkboxen in HTML einfach mal das hier angucken: http://de.selfhtml.org/html/formulare/auswahl.htm#checkboxen

    Zur Auswertung der Checkbox mit PHP ein Beispiel:

    <input type="checkbox" name="Checkbox1">Klick mich an</input>



    <?php
    if (isset($_POST['Checkbox1'])) {
    /* Häkchen wurde gesetzt */
    ... tue etwas ...
    }
    ?>


    Weitere Infos und wie man Checkboxen in Arrays gruppiert, gibt's hier:
    http://www.php-faq.de/q-formular-checkbox.html

    Aber die checkbox soll ja in jeder zeile stehn und wenn dann beispielsweise ein haken gesetzt wurde wird in der mysql tabelle ein ja eingetragen

    tom-moeller schrieb:
    felicius12 schrieb:
    Eine frage noch gibt es eine einfache methode, mit der ich die Zeilen unterschiedlich einfärbe, sieht cooler aus.


    Das könnte so aussehen:
    <table width="100%" border="1" cellpadding="0" cellspacing="2">
     <tr>
      <td class="zeile1">$row->id</td>
      <td class="zeile2">$row->Manschaft</td>
      <td class="zeile1">$row->Unentschieden</td>
      <td class="zeile2">$row->Gewinn</td>
      <td class="zeile1">$row->QuoteGewinn</td>
      <td class="zeile2">$row->Quote</td>
      <td class="zeile1">&nbsp</td>
      <td class="zeile2">&nbsp</td>
     </tr>
    </table>

    Und die CSS dazu:
    .zeile1 {background-color: #999;}
    .zeile2 {background-color: #CCC;}

    Schonmal danke aber ich schrieb zeile und nicht spalte :wink:

    mfg Felix
  8. Für Zeilen geht das genauso, musst nur das Class-Attribut beim TR statt beim TD reinpacken.

    Checkboxen:
    Du könntest den Namen variabel gestalten, z.B.

    <table width="100%" border="1" cellpadding="0" cellspacing="2">
     <tr class="zeile1">
      <td><input type="checkbox" name="Checkbox<?php echo $row->id; ?>">Klick mich an</input>
      <td><?php echo $row->id; ?></td>
      <td><?php echo $row->id; ?></td>
      <td><?php echo $row->Manschaft; ?></td>
      <td><?php echo $row->Unentschieden; ?></td>
      <td><?php echo $row->Gewinn; ?></td>
      <td><?php echo $row->QuoteGewinn; ?></td>
      <td><?php echo $row->Quote; ?></td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
     </tr>
    </table>


    Damit müsstest du später nur noch prüfen, wenn du einen Datensatz durchgehst, ob zu ID=5 auch ein Feld "Checkbox5" gesetzt ist:


    <?php
    $id = 5;
    if (isset($_POST['Checkbox'.$id])) {
    /* tue was */
    ....
    }
    ?>
  9. Autor dieses Themas

    felicius12

    felicius12 hat kostenlosen Webspace.

    $abfrage = "SELECT id, Manschaft, Unentschieden, Gewinn, QuoteGewinn, Quote FROM $datum";
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_object($ergebnis))
       {
       echo " <form action=\"privat.php\" method=\"postß\">
    <table width=\"100%\" border=\"1\" cellpadding=\"0\" cellspacing=\"2\">
     <tr>
      <td class=\"zeile1\">$row->id</td>
      <td class=\"zeile2\">$row->Manschaft</td>
      <td class=\"zeile1\">$row->Unentschieden</td>
      <td class=\"zeile2\">$row->Gewinn</td>
      <td class=\"zeile1\">$row->QuoteGewinn</td>
      <td class=\"zeile2\">$row->Quote</td>
      <td class=\"zeile1\"><td><input type=\"checkbox\" name=\"Checkbox$row- >id;Klick mich an</td>
    <input type=\"Submit\" value=\"Absenden\">";
      </form>
    }
    
     $id = 5;
    if (isset($_POST['Checkbox'.$id])) 
    {
    
    echo " $id  wurde gesetzt";
    }

    also so funktioniert das irgendwie nicht
    iniquitius schrieb: Für Zeilen geht das genauso, musst nur das Class-Attribut beim TR statt beim TD reinpacken.


    Wie soll das funktionieren die daten die in die Zeilen sollen, sind ja in der datenbank und woher soll php dann wissen welche er grau und welche weiß färben soll?`

    mfg

    Felix
  10. Vorsicht: Du hast da was drinnen stehen von method=\"postß\"> (ß zu viel)
    Dazu kommt, dass du derzeit für jede Zeile eine neue Tabelle anlegst und ein neues Formular, weil beides in der While-Schleife steht (siehe Quellcode). Das darf nicht sein, weil das den Code unnötig aufbläht.

    Am besten du machst erstmal Übungen mit HTML und Formularen an sich, um die Grundlagen rauszubekommen. Danach dann mit PHP.

    Zur Zeilenhervorhebung: Nimm einfach eine Variable, die du in der While-Schleife hochzählst. Je nachdem, ob die Zahl grad gerade ist (Variable % 2 == 0) oder ungerade (Variable % 2 !=0) setzt du die CSS-Klasse für TR:

    <form action="privat.php" method="post">
    <table width="100%" border="1" cellpadding="0" cellspacing="2">'
    
    <?php
    $i = 0;
    while($row = mysql_fetch_object($ergebnis))
    {
       $i++;
       echo '<tr class="zeile'.($i%2 + 1).'">'."\n";
       echo .... /* hier Spalten einfuegen */
       echo '</tr>';
    }
    ?>
    </table>
    </form>


    Wirst sicherlich Fragen zu dem Code haben ;-)
  11. Autor dieses Themas

    felicius12

    felicius12 hat kostenlosen Webspace.

    iniquitius schrieb: Vorsicht: Du hast da was drinnen stehen von method=\"postß\"> (ß zu viel)

    Da war ich wohl ne sekunde zu kurz au altgr
    Aber nun zum code also wenn ichs richtig verstanden hab müsste der so aussehn:

    <form action="privat.php" method="post">
    <table width="100%" border="1" cellpadding="0" cellspacing="2">'
    
    <?
    
    
    
    
    $i = 0;
    $abfrage = "SELECT id, Manschaft, Unentschieden, Gewinn, QuoteGewinn, Quote FROM $datum";
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_object($ergebnis))
    {
       $i++;
       echo '<tr class="zeile'.($i%2 + 1).'">'."\n";
       echo "<td>$row->id</td>
      <td>$row->Manschaft</td>
      <td>$row->Unentschieden</td>
      <td>$row->Gewinn</td>
      <td>$row->QuoteGewinn</td>
      <td>$row->Quote</td>
      <td><td><input type=\"checkbox\" name=\"Checkbox$row- >id;Klick mich an</td>";
       echo '</tr>'; }
    
    ?>
    </table>
    </form>




    Am besten du machst erstmal Übungen mit HTML und Formularen an sich, um die Grundlagen rauszubekommen. Danach dann mit PHP

    Formulare und tabellen einzeln (html hab ich son bissel in der 6. gehabt und danach auf pixelkids weitergeübt) sind nich das problem
    nur ich bekomm das in kombination nicht hinn.

    EDIT:Sorry hab mich verklickt
    mfg

    Felix

    Beitrag zuletzt geändert: 28.3.2010 13:15:04 von felicius12
  12. Das sieht schonmal gut aus :)

    Allerdings hast du unten bei der Checkbox einen Fehler drin. Dazu solltest du dir die fertig gerenderte Seite anschauen:
    echo "<td><td><input type=\"checkbox\" name=\"Checkbox$row- >id;Klick mich an</td>";


    1. TD doppelt
    2. hinter dem $row->id steht ein Semikolon, ist überflüssig.
    3. Dafür fehlt an der Stelle ein Anführungszeichen, um das Attribut "Name" zu beenden, und eine schließende Klammer.

    Generell zu Formularen und PHP gibt's ne Menge Anleitungen im Web, falls du was dazu suchst. Z.B. hier: http://www.html-world.de/program/phpex_1.php
  13. Autor dieses Themas

    felicius12

    felicius12 hat kostenlosen Webspace.

    <?
    $i = 0;
    $abfrage = "SELECT id, Manschaft, Unentschieden, Gewinn, QuoteGewinn, Quote FROM $datum";
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_object($ergebnis))
    {
       $i++;
       echo '<tr class="zeile'.($i%2 + 1).'">'."\n";
       echo " <td>$row->id</td>
      <td>$row->Manschaft</td>
      <td>$row->Unentschieden</td>
      <td>$row->Gewinn</td>
      <td>$row->QuoteGewinn</td>
      <td>$row->Quote</td>
      <td><input type=\"checkbox\" name=\"Checkbox$row- >id\"Klick mich an</td>
       echo '</tr>' }
    
    ?>

    Ich erhalte wenn ich diesen code aussführeTrotzdem die errormeldung
    Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/webpages/lima-city/felicius12/... on line 18

    kann abernichts finden was ich vergessen haben könnte (line 18 ist ja ganz am ende also deutet das ja darauf hinn das ich was vergessen hab)

    mfg

    Felix
  14. expecting ',' or ';' bedeutet, dass ein Komma oder Semikolon fehlt. Sehr häufiger Fehler.

    In diesem Falle: Hinterm letzten Echo fehlt ein Semikolon. Schließende Klammer könnte auf die nächste Zeile, damit du den Block besser überblicken könntest.
  15. Autor dieses Themas

    felicius12

    felicius12 hat kostenlosen Webspace.

    <?
    $i = 0;
    $abfrage = "SELECT id, Manschaft, Unentschieden, Gewinn, QuoteGewinn, Quote FROM $datum";
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_object($ergebnis))
    {
       $i++;
       echo '<tr class="zeile'.($i%2 + 1).'">'."\n";
       echo " <td>$row->id</td>
      <td>$row->Manschaft</td>
      <td>$row->Unentschieden</td>
      <td>$row->Gewinn</td>
      <td>$row->QuoteGewinn</td>
      <td>$row->Quote</td>
      <td><input type=\"checkbox\" name=\"Checkbox$row- >id\"Klick mich an</td>
       echo '</tr>';
     }
    
    ?>

    jetz erhalt ich den error
    Parse error: syntax error, unexpected $end in /home/webpages/lima-city/felicius12/... on line 19
    EDIT: hab den error
    <td><input type=\"checkbox\" name=\"Checkbox$row- >id\"Klick mich an</td> mussnoch " ;

    mfg felix

    Beitrag zuletzt geändert: 28.3.2010 14:00:09 von felicius12
  16. Quellcode noch mal angucken und schauen, wo der Abschluss eines Befehls fehlt.
    Kleiner Tipp: Ganz in der Nähe vom letzten Fehler.

    Allgemein ist bei Fehlermeldungen folgende Seite ein guter Anlaufpunkt: http://www.php-error.de
  17. Autor dieses Themas

    felicius12

    felicius12 hat kostenlosen Webspace.

    also irgendwas stimmt da immer noch nicht: http://files.felicius12.de/habkenelust/statistik.php

    <form action="privat.php" method="post">
    <table width="100%" border="1" cellpadding="0" cellspacing="2">'
    
    <?
    include("verbindung.php");
    mysql_select_db("db_149696_3") or die ("Datenbank konnte nicht ausgewählt werden");
    $i = 0;
    $abfrage = "SELECT id, Manschaft, Unentschieden, Gewinn, QuoteGewinn, Quote FROM $datum";
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_object($ergebnis))
    {
       $i++;
       echo '<tr class="zeile'.($i%2 + 1).'">'."\n";
       echo " <td>$row->id</td>
      <td>$row->Manschaft</td>
      <td>$row->Unentschieden</td>
      <td>$row->Gewinn</td>
      <td>$row->QuoteGewinn</td>
      <td>$row->Quote</td>
      <td><input type=\"checkbox\" name=\"Checkbox$row->id\"Klick mich an</td>" ;
      echo '</tr>';
     }
    
    ?>
    </table>
    </form>

    mfg

    Felix

    Beitrag zuletzt geändert: 28.3.2010 14:28:35 von felicius12
  18. Starte die Seite, geh danach in deinem Browser auf "Quelltext anzeigen" (oder so ähnlich) und kopier die Daten in einen Editor mit Syntaxhighlighting. Dann siehst du sehr schnell, dass beim Namen der Checkbox ein doppeltes Anführungszeichen fehlt.
  19. Autor dieses Themas

    felicius12

    felicius12 hat kostenlosen Webspace.

    Also so?
    <td><input type=\"checkbox\" name=\"\"Checkbox$row->id\"\"Klick mich an</td>" ;


    EDIT:9999999999999999999 fachen dank es futzt

    Beitrag zuletzt geändert: 28.3.2010 14:47:39 von felicius12
  20. Ääh, du hast zwar was geändert, und es könnte funktionieren, aber so richtig ist es nicht:

    Jeder HTML-Tag beginnt mit einem < und endet mit einem >
    Bei dir sieht es derzeit so aus:
    <td><input type="checkbox" name=""Checkbox$row->id""Klick mich an</td>

    2x doppelte Anführungsstriche brauchst du nicht. Dafür fehlt immer noch das >-Zeichen.

    Kann dir nur empfehlen, Firefox zu installieren und dort das Plugin "HTML-Validator" reinzuhängen. Deine Seite hat nämlich noch massig mehr Fehler (kein HTML-Head-Bereich, kein Doctype ...)
  21. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!