Spielbericht mit Bilder einfügen -> ausgabe in Tabelle

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Spielbericht mit Bilder einfügen -> ausgabe in Tabelle

    Hallo,

    seit kurzem befasse ich mit mit dem faszinierendem PHP.
    Leider ist es nicht gerade einfach und ich erlerne gerade Stück für Stück
    die Grundfunktionen.

    Nun möchte ich allerdings meine Webseite umstellen. Und suche dafür ein
    script.

    Es sollte wie folgt funktionnieren:

    Eingabe



    Überschrift

    Zeile1
    Zeile2
    Zeile3
    Zeile4
    Zeile5


    TEXT

    TextBildbeschreibung1
    Bild1upload
    TextBildbeschreibung1
    Bild2upload
    TextBildbeschreibung1
    Bild3upload
    TextBildbeschreibung1
    Bild4upload

    dass dannach eine ähnliche webseite wie

    http://groundhopperle.gr.funpic.de/sb/sb24032005.htm

    erzeugt wird.

    die Überschrift sollte dann in eine andere Seite wie in etwa

    http://groundhopperle.gr.funpic.de/saison0405.htm

    diese hier implementiert werden.



    Zur Zeit bin ich so weit:

    *.php

    Quellcode

    1. <html>
    2. <body>
    3. <?php
    4. echo "$spiel<p>";
    5. echo "Typ: $typ<p>";
    6. echo "Ergebnis: $ergebnis<br>";
    7. echo "Zuschauer: $zuschauer<br>";
    8. echo "-------------------------------------------<p>";
    9. echo "Spielbericht:<p> $comment<br>";
    10. if (isset($_FILES['datei']) and ! $_FILES['datei']['error'])
    11. {
    12. $filename = $_FILES['datei']['name'];
    13. move_uploaded_file($_FILES['datei']['tmp_name'], $dir."/bilder".$filename);
    14. echo "<b>Status:</b> Upload komplett";
    15. } else {
    16. echo "<b>Status:</b> Fehler beim Upload";
    17. }
    18. ?>
    19. </body>
    20. </html>
    Alles anzeigen


    und *.htm

    Quellcode

    1. <html>
    2. <body>
    3. <center>
    4. Spielinformationen:<br>
    5. <br>
    6. <form action = "ghle.php" method = "post" "<?php echo $_SERVER['PHP_SELF']; ?>
    7. Teams:<p>
    8. <input name = "spiel"><p>
    9. Datum:<p>
    10. <input name = "datum"><p>
    11. Typ:<p>
    12. <input name = "typ"><p>
    13. Ergebnis:<p>
    14. <input name = "ergebnis"><p>
    15. Zuschauer:<p>
    16. <input name = "zuschauer"><p>
    17. Spielbericht:<p>
    18. <textarea cols="60" rows="10" name="comment">
    19. </textarea><p>
    20. Bilder zum Spiel:<p>
    21. <input type="file" name="datei" /><p>
    22. <input type="file" name="datei" /><p>
    23. <input type="file" name="datei" /><p>
    24. <input type="file" name="datei" /><p>
    25. <input type="file" name="datei" /><p>
    26. <input type="submit" value="Abschicken">
    27. <input type="reset">
    28. </form>
    29. </table>
    30. </center>
    31. </body>
    32. </html>
    Alles anzeigen



    Ich bin jetzt gerade an einem Punkt wo ich nicht weiterkomme.

    Das Uploadscript funktionniert auch irgendwie nicht.

    Vielleicht kann mir von euch Profis jemand helfen.
  • Hallo,

    Ich habe dein Code mal umgeschrieben

    Die Namen der Upload Felder müssen unterschiedlich sein
    Dann solltest du übergeben wie viele Uploadfelder es gibt und diese dann in der php datei der reihe nach durcharbeiten
    das <?php echo $_SERVER['PHP_SELF']; ?> kann in der html datei nicht verarbeitet werden.. brauchst du aber auch nicht
    variablen und Strings (texte) solltest du trennen $var = "string und ".$variable." und noch ein String";

    jetzt kommen wir allerdings zu deinem denkfehler...
    irgendwie muss die seite ja gespeichert werden, damit auch andere darauf zugriff haben
    dort musst du entweder auf eine MySQL Datenbank zurückgreifen oder eine txt datenbank anlegen

    (das habe ich jetzt nicht gemacht, da ich sicher bin, dass du es selbst lernen willst)

    WARNUNG: Das ist keine Musterlösung.. die Bilder werden zwar in einem Ordner gespeichert, aber die php datei wird nur temporär erstellt.
    sie sieht nur der sender der dateien..


    ghle.php

    Quellcode

    1. <html>
    2. <body>
    3. <?php
    4. echo $_POST['spiel']."<p>";
    5. echo "Typ: ".$_POST['typ']."<p>";
    6. echo "Ergebnis: ".$_POST['ergebnis']."<br>";
    7. echo "Zuschauer: ".$_POST['zuschauer']."<br>";
    8. echo "-------------------------------------------<p>";
    9. echo "Spielbericht:<p> ".$_POST['comment']."<br>";
    10. for($i=1; $i<=$_POST['anzahl_dateien']; $i++) {
    11. if (isset($_FILES['datei'.$i]) and ! $_FILES['datei'.$i]['error'])
    12. {
    13. $filename = $_FILES['datei'.$i]['name'];
    14. move_uploaded_file($_FILES['datei'.$i]['tmp_name'], $dir."/bilder".$filename);
    15. echo "<b>Status:</b> Upload komplett";
    16. } else {
    17. echo "<b>Status:</b> Fehler beim Upload";
    18. }
    19. }
    20. ?>
    21. </body>
    22. </html>
    Alles anzeigen


    form.html

    Quellcode

    1. <html>
    2. <body>
    3. <center>
    4. Spielinformationen:<br>
    5. <br>
    6. <form action = "ghle.php" method = "post" enctype="multipart/form-data">
    7. Teams:<p>
    8. <input name = "spiel"><p>
    9. Datum:<p>
    10. <input name = "datum"><p>
    11. Typ:<p>
    12. <input name = "typ"><p>
    13. Ergebnis:<p>
    14. <input name = "ergebnis"><p>
    15. Zuschauer:<p>
    16. <input name = "zuschauer"><p>
    17. Spielbericht:<p>
    18. <textarea cols="60" rows="10" name="comment">
    19. </textarea><p>
    20. Bilder zum Spiel:<p>
    21. <input type="file" name="datei1" /><p>
    22. <input type="file" name="datei2" /><p>
    23. <input type="file" name="datei3" /><p>
    24. <input type="file" name="datei4" /><p>
    25. <input type="file" name="datei5" /><p>
    26. <input type="hidden" name="anzahl_dateien" value="5" />
    27. <input type="submit" value="Abschicken">
    28. <input type="reset">
    29. </form>
    30. </table>
    31. </center>
    32. </body>
    33. </html>
    Alles anzeigen
  • Schade, ich sehe da leider noch nicht durch. Mein momentaner Stand ist folgender:

    html




    Quellcode

    1. <html><head>
    2. <style type="text/css">
    3. a {font-family: verdana; color: #DCDCDC; background-color: #4682B4}
    4. body { color: #DCDCDC; background:#4682B4; font-family:Verdana;}
    5. td {
    6. border-width: thin;
    7. border-style: solid;
    8. color: #DCDCDC;
    9. text-align: center; background: #4682B4;
    10. }
    11. </style>
    12. </head>
    13. <body>
    14. <center>
    15. Spielinformationen:<br>
    16. <br>
    17. <form action="ghle.php" method="post">
    18. Teams:<p>
    19. <input name="spiel"></p><p>
    20. Datum:</p><p>
    21. <input name="datum"></p><p>
    22. Typ:</p><p>
    23. <input name="typ"></p><p>
    24. Ergebnis:</p><p>
    25. <input name="ergebnis"></p><p>
    26. Zuschauer:</p><p>
    27. <input name="zuschauer"> davon Gäste: <input name="gaeste"></p><p>
    28. Spielbericht:</p><p>
    29. <textarea cols="60" rows="10" name="comment"> </textarea></p><p>
    30. Bilder zum Spiel:</p><p>
    31. <input name="datei1" type="file"></p><p>
    32. <input name="datei2" type="file"></p><p>
    33. <input name="datei3" type="file"></p><p>
    34. <input name="datei4" type="file"></p><p>
    35. <input name="datei5" type="file"></p><p>
    36. <input name="anzahl_dateien" value="5" type="hidden">
    37. <input value="Abschicken" type="submit">
    38. <input type="reset">
    39. </p></form></center>
    40. </body></html>
    Alles anzeigen


    .php

    Quellcode

    1. <head>
    2. <html>
    3. <body>
    4. <style type="text/css">
    5. a {font-family: verdana; color: #DCDCDC; background-color: #4682B4}
    6. body { color: #DCDCDC; background:#4682B4; font-family:Verdana;}
    7. td {
    8. border-width: thin;
    9. border-style: solid;
    10. color: #DCDCDC;
    11. text-align: center; background: #4682B4;
    12. }
    13. </style>
    14. </head>
    15. <?php
    16. echo "<a><center><table border><tr><td><b><a>$spiel</b><p></a>";
    17. echo "<tr><td><b><a>Typ: </b>$typ<p></td></tr>";
    18. echo "<tr><td><b><a>Ergebnis:</b> $ergebnis</td></tr><br>";
    19. echo "<tr><td><b><a>Zuschauer:</b> $zuschauer davon <b>Gäste:</b> $gaeste</td></tr><br>";
    20. echo "<tr><td> </tr></td>";
    21. echo "<tr><td> </tr></td>";
    22. echo wordwrap("<tr><td><b><a>Spielbericht:</b><a><p> $comment</tr></td><br></center>", 50, "<br>", 1);
    23. echo "<tr><td> </tr></td>";
    24. echo "<tr><td> </tr></td>";
    25. //Bilderupload
    26. if (isset($_FILES['datei']) and ! $_FILES['datei']['error'])
    27. {
    28. $filename = $_FILES['datei']['name'];
    29. move_uploaded_file($_FILES['datei']['tmp_name'], $dir."/bilder".$filename);
    30. echo "<tr><td><b><a>Bilder:</b> Upload komplett</tr></td>";
    31. } else {
    32. echo "<tr><td><b><a>Bilder:</b> Fehler beim Upload</tr></td>";
    33. }
    34. // In Datei schreiben (speichern)
    35. $filename = 'data.txt' ;
    36. $somecontent = "der Datensatz" ;
    37. // Sichergehen, dass die Datei existiert und beschreibbar ist
    38. if ( is_writable ( $filename )) {
    39. // Wir öffnen $filename im "Anhänge" - Modus.
    40. // Der Dateizeiger befindet sich am Ende der Datei, und
    41. // dort wird $somecontent später mit fwrite() geschrieben.
    42. if (! $handle = fopen ( $filename , "a" )) {
    43. print "Kann die Datei $filename nicht öffnen" ;
    44. exit;
    45. }
    46. // Schreibe $somecontent in die geöffnete Datei.
    47. if (! fwrite ( $handle , $somecontent )) {
    48. print "Kann in die Datei $filename nicht schreiben" ;
    49. exit;
    50. }
    51. print "Fertig, in Datei $filename wurde $somecontent geschrieben" ;
    52. fclose ( $handle );
    53. } else {
    54. print "Die Datei $filename ist nicht schreibbar" ;
    55. }
    56. ?>
    57. </body>
    58. </html>
    Alles anzeigen


    Ich habe auf meinem Webspace phpmyadmin laufen das ist doch als Datenbank geeignet oder ?

    Ich möchte nun dass die werte dauerhaft gespeichert werden (nicht überschreibbar) und dass die Daten bzw nur der die eine Variable auf einer zweiten Seite (Index) ebenfalls ausgelesen werden um damit eine Art Inhaltsverzeichnis zu erzeugen.[/b]
  • du hast nicht phpMyAdmin laufen sondern eine Datenbank namens MySQL, phpMyAdmin ist nur ein Werkzeug um in dieser Datenbank Tabellen zu erstellen und diese zu füllen.

    Du kannst deine Daten in diese Datenbank schreiben. Das geht eigentlich genauso einfach wie mit Textdateien. Ein entscheidender Vorteil ist aber, dass man in einer Datenbanktabelle die Daten vernünftig ordnen und somit auch auslesen/bearbeiten kann.

    Als erstes musst du eine Verbindung zur Datenbank herstellen.

    Frage: Hast du die Zugangsdaten zu deiner MySQL-Datenbank (Username,Passwort,Host,Datenbankname) ?

    dann sag bescheid, und wir machen da weiter...

    cya
  • Ja, die Zugangsdaten habe ich.

    Allerdings zu hause. Ich habe mir gerade mit Xampp hier lokal einen Server mit Msql installiert. Ich bin gerade am Anlegen einer Tabelle für die Daten.

    Ich bekomme aber immer ein Fehler. Dadurch wird die Tabelle nicht übernommen:

    QL-Befehl:

    CREATE TABLE `Daten` (
    `id` INT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
    `spiel` VARCHAR( 100 ) NOT NULL ,
    `datum` VARCHAR( 50 ) NOT NULL ,
    `typ` VARCHAR( 100 ) NOT NULL ,
    `ergebnis` VARCHAR( 50 ) NOT NULL ,
    `zsuchauer` VARCHAR( 50 ) NOT NULL ,
    `gaeste` VARCHAR( 50 ) NOT NULL ,
    `content` TEXT NOT NULL
    )


    MySQL meldet: Dokumentation
    #1075 - Incorrect table definition; There can only be one auto column and it must be defined as a key

    Ich sehe allerdings keine Stelle, an der ich etwas doppelt habe...

    #e: hatte auch nix doppelt sondern PRIMARY KEY war nicht angegeben...habs durch probieren rausbekommen ;)
  • probiers doch mal damit:

    Quellcode

    1. CREATE TABLE `Daten` (
    2. `id` INT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
    3. `spiel` VARCHAR( 100 ) NOT NULL ,
    4. `datum` VARCHAR( 50 ) NOT NULL ,
    5. `typ` VARCHAR( 100 ) NOT NULL ,
    6. `ergebnis` VARCHAR( 50 ) NOT NULL ,
    7. `zsuchauer` VARCHAR( 50 ) NOT NULL ,
    8. `gaeste` VARCHAR( 50 ) NOT NULL ,
    9. `content` TEXT NOT NULL,
    10. PRIMARY KEY ( `id` )
    11. )
    Alles anzeigen
  • ich würde folgendes probieren:

    Quellcode

    1. CREATE TABLE `Daten` (
    2. `id` INT( 5 ) KEY NOT NULL AUTO_INCREMENT ,
    3. `spiel` VARCHAR( 100 ) NOT NULL ,
    4. `datum` VARCHAR( 50 ) NOT NULL ,
    5. `typ` VARCHAR( 100 ) NOT NULL ,
    6. `ergebnis` VARCHAR( 50 ) NOT NULL ,
    7. `zsuchauer` VARCHAR( 50 ) NOT NULL ,
    8. `gaeste` VARCHAR( 50 ) NOT NULL ,
    9. `content` TEXT NOT NULL
    10. )
  • Morgen,

    nun bin ich dabei zunächst einen Datensatz den ich mit phpmyadmin eingegeben habe auszulesen. Jedoch passiert nix...

    Quellcode

    1. <head>
    2. <html>
    3. <body>
    4. <style type="text/css">
    5. a {font-family: verdana; color: #DCDCDC; background-color: #4682B4}
    6. body { color: #DCDCDC; background:#4682B4; font-family:Verdana;}
    7. td {
    8. border-width: thin;
    9. border-style: solid;
    10. color: #DCDCDC;
    11. text-align: center; background: #4682B4;
    12. }
    13. </style>
    14. </head>
    15. <?php
    16. include("funk.php");
    17. include("verbind.php");
    18. $sql = "insert into Daten (id,spiel,datum,typ,ergebnis,zuschauer,gaeste,comment)
    19. values ('$id, '$spiel', '$datum', '$typ', '$ergebnis', '$zuschauer', $gaeste', '$comment')";
    20. echo "<br>Nummer: ", $id;
    21. echo "<br>Spiel: ", $spiel;
    22. echo "<br>Datum: ", $datum;
    23. echo "<br>Typ : ", $typ;
    24. echo "<br>Ergebnis: ", $ergebnis;
    25. echo "<br>Zuschauer: ", $zuschauer;
    26. echo "<br>Gaeste: ", $gaeste;
    27. echo "<br>Bericht: ", $comment;
    28. ?>
    29. </html>
    Alles anzeigen



    #e: So, also der folgende Code gibt mir nun erstmal eine Tabelle aus. Wenigstens schonmal was. Bräuchte das aber in einer ordentlichen Tabelle...

    Quellcode

    1. <? // Ausgabe6.php
    2. include("verbind.php");
    3. include("funk.php");
    4. $sql = "SELECT * FROM daten where id";
    5. If ($res=send_sql($db,$sql)) {
    6. echo "Abfrage: <br> $sql";
    7. }
    8. tab_out($res);
    9. ?>
    Alles anzeigen
  • "Hardscore" schrieb:

    Quellcode

    1. $sql = "insert into Daten (id,spiel,datum,typ,ergebnis,zuschauer,gaeste,comment)
    2. values ('$id, '$spiel', '$datum', '$typ', '$ergebnis', '$zuschauer', $gaeste', '$comment')";



    Da hast du erstmal ein ' vergessen. Richtig ist es so:

    Quellcode

    1. $sql = "insert into Daten (id,spiel,datum,typ,ergebnis,zuschauer,gaeste,comment)
    2. values ('$id', '$spiel', '$datum', '$typ', '$ergebnis', '$zuschauer', $gaeste', '$comment')";


    Ist bei dir register globals angeschaltet? Wenn nein, solltest du die Variablen auch noch definieren (wahrscheinlich über $_POST["id"] usw.).
  • $sql = "insert into Daten (id,spiel,datum,typ,ergebnis,zuschauer,gaeste,comment)
    values ('$id', '$spiel', '$datum', '$typ', '$ergebnis', '$zuschauer', $gaeste', '$comment')";


    Du auch richtig ist es so

    Quellcode

    1. $sql = "insert into Daten (id,spiel,datum,typ,ergebnis,zuschauer,gaeste,comment)
    2. values ('$id', '$spiel', '$datum', '$typ', '$ergebnis', '$zuschauer', '$gaeste', '$comment')";
    Meine Sprachen: C, C++,C# PHP
    E-Mail | MSN: gre.burgstaller@aon.at
  • Ich danke euch, habe es hinbekommen. Langsam merke ich aber, dass es recht kompliziert wird was ich mir vorgenommen habe. Kann man überhaupt mit PHP Seiten neu generieren ?

    naja ich fitze mich weiter rein. EIngabe und Ausgabe funktionnieren mit der DB schonmal wunderbar.

    Probleme macht mir ebenfalls nochd er Bilderupload, aber da kümmer ich mich später drum.


    #e: Ich suche nun eine Möglichkeit mit php automatisch Seiten zu erzeugen...sodass man nach erfolgreicher Eingabe auf einer Indexseite Grunddaten sieht (als Link) und wenn man draufklickt die DEtails auf einer neuen Seite erscheinen. Ist das überhaupt möglich ?
  • Hi..

    da es bestimmt mehrere gibt, die beim MySQL Upload Probleme haben, habe ich schnell 2 Wiki Einträge geschrieben:
    http://www.coder-wiki.de/HowTos/MySQL-Dateiupload
    http://www.coder-wiki.de/HowTos/PHP-MySQL-Blob-auslesen

    Was dein Beispiel vom Wiki Beispiel unterscheidet:
    Du brauchst noch eine Gruppe, damit du mehrere Bilder den Daten zuordnen kannst

    Quellcode

    1. CREATE TABLE `Bilder` (
    2. `id` INT( 5 ) NOT NULL ,
    3. `daten_id` INT( 5 ) NOT NULL ,
    4. `bild` MEDIUMBLOB NOT NULL ,
    5. `filetype` VARCHAR( 50 ) NOT NULL ,
    6. PRIMARY KEY ( `id` )
    7. )


    Info: In BLOB passen 64 kb; in MEDIUMBLOB ganze 16 MB


    Zum schließen des Popups:

    Quellcode

    1. <a href="#" onclick="self.close(); return false;">Fenster schließen</a>
  • danke,

    das mit dem schließen funktionniert nun.

    das mit den bilder fange ich jetzt an...

    allerdings hat sich gerade noch ein problem aufgetan;

    wenn ich das datumder jeweiligen spiele eingebe, dann werden diese bei der ausgabe nicht dannach sortiert sondern immer von links an gesehen:

    ...
    02.04.1999
    01.01.2000


    oben soll immer das nachfolgende datum stehen


    #e:

    MySQL meldet: Dokumentation
    #1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'KEY NOT NULL AUTO_INCREMENT ,
    `daten_id` INT( 5 ) NOT NULL,
  • Hab das CREATE TABLE oben korrigiert.. Syntaxfehler..

    mit dem Datum haben wir dich falsch beraten..
    da haben wir uns so auf die syntaxfehler in deinem ersten versuch konzentriert, dass wir die logik ganz außer acht gelassen haben

    MySQL hat seinen eigenen Spaltentyp namens DATE bzw. DATETIME
    damit kannst du super auslesen, sortieren, etc

    http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html