+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 15 von 18

Thema: [PHP] BD-gestützte Terminliste füllen und Datumsabhängig auslesen

  1. #1
    TP-Greis steff11 ist einer der Eckpfeiler des TP - ohne ihn geht nichts steff11 ist einer der Eckpfeiler des TP - ohne ihn geht nichts steff11 ist einer der Eckpfeiler des TP - ohne ihn geht nichts steff11 ist einer der Eckpfeiler des TP - ohne ihn geht nichts steff11 ist einer der Eckpfeiler des TP - ohne ihn geht nichts steff11 ist einer der Eckpfeiler des TP - ohne ihn geht nichts steff11 ist einer der Eckpfeiler des TP - ohne ihn geht nichts steff11 ist einer der Eckpfeiler des TP - ohne ihn geht nichts steff11 ist einer der Eckpfeiler des TP - ohne ihn geht nichts steff11 ist einer der Eckpfeiler des TP - ohne ihn geht nichts steff11 ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von steff11
    Registriert seit
    Aug 2002
    Ort
    Hochfranken
    Beiträge
    5.884

    [PHP] BD-gestützte Terminliste füllen und Datumsabhängig auslesen

    Hallööle,
    hab kürzlich diesen Wunsch verspürt:
    Ich möcht auf meiner Site in einem Admin-Formular Termine in eine mysqlDB schreiben, jeder Termin besteht aus Tag, Uhrzeit, Stichwort Kurzbeschreibungstext und Bild.

    Auf der Website selbst sollen dann ganz simpel über ein php-script immer die Termine der nächsten x Wochen angezeigt werden, tabellarisch.
    Member Heatseeker hat das Problem blitzschnell und blitzsauber durch maßgeschneiderten php-Code gelöst:

    1. Schritt

    In der DB ist eine Tabelle "termine" mit folgenden Feldern anzulegen:
    CREATE TABLE `termine` (
    `datum` VARCHAR( 10 ) NOT NULL ,
    `datum_stamp` INT NOT NULL ,
    `uhrzeit` VARCHAR( 10 ) NOT NULL ,
    `stichwort` VARCHAR( 250 ) NOT NULL ,
    `grafik` VARCHAR( 250 ) NOT NULL ,
    `beschreibung` TEXT NOT NULL
    ) TYPE = MYISAM ;
    2. Schritt

    Einträge tätigt man über ein html-Formular
    <form name="form1" method="post" action="einfuegen.php">
    Datum(TT.MM.JJJJ):<br>

    <input type="text" name="datum">
    <br>
    Uhrzeit:<br>
    <input type="text" name="uhrzeit"><br>
    Stichwort:
    <br>
    <input type="text" name="stichwort">
    <br>
    Grafikdateiname:
    <br>
    <input type="text" name="grafik">
    <br>
    Kurzbeschreibung:<br>
    <textarea name="beschreibung"></textarea><br>

    <input type="submit" name="Submit" value="Senden">
    </form>
    das mit diesem php-Script arbeitet, das mit Namen "einfuegen.php" im selben Verzeichnis liegt:
    <?php
    $dbhost = 'localhost';
    $dbname = 'termine'; // Hier Datenbankname rein
    $dbuser = 'root'; // Hier User...
    $dbpasswd = ''; // und passwort...

    //Verbindungsaufbau
    $connection = @mysql_connect($dbhost, $dbuser, $dbpasswd);
    @mysql_select_db($dbname, $connection);

    if(isset($_POST['Submit'])){ // wurde das Formular abgeschickt?


    // Datum in einzelne Variablen speichern:
    $array=explode(".",$_POST['datum']);
    $tag=$array[0];
    $monat=$array[1];
    $jahr=$array[2];

    //Datum ins Timestamp-Format umwandeln:
    $datum_stamp=mktime(0,0,0,$monat,$tag,$jahr);
    //Das wichtige SQL-Statement:
    $sql="INSERT INTO termine SET
    datum='".$_POST['datum']."',
    datum_stamp=$datum_stamp,
    uhrzeit='".$_POST['uhrzeit']."',
    stichwort='".$_POST['stichwort']."',
    grafik='".$_POST['grafik']."',
    beschreibung='".$_POST['beschreibung']."'";

    mysql_query($sql) or die(mysql_error()); // Query senden und Fehler abfangen

    echo "Termin erfolgreich hinzugefügt!"; // Bla bla...

    }

    ?>
    (Datenbank-Host, -name, -user, -passwort in den ersten Zeilen natürlich an eigene Gegebenheiten anpassen)

    3. Schritt


    Für die Darstellung beispielsweise aller Termine der nächsten 6 Wochen sorgt dieses Skript, das man in üblicher Weise in seine html-Seite (dann natürlich php-Seite) einbindet:

    <?php
    $dbhost = 'localhost';
    $dbname = 'termine'; // Hier Datenbankname rein
    $dbuser = 'root'; // Hier User...
    $dbpasswd = ''; // und passwort...

    //Verbindungsaufbau
    $connection = @mysql_connect($dbhost, $dbuser, $dbpasswd);
    @mysql_select_db($dbname, $connection);

    //Das wichtige SQL-Statement:
    $sql="SELECT * FROM termine ORDER BY datum_stamp ASC";

    $result=mysql_query($sql) or die(mysql_error()); // Query senden und Fehler abfangen

    // der Anfang der Tabelle
    echo"<table>";

    while($row=mysql_fetch_array($result)){

    // Heutige Timestamp:
    $heute_stamp=time();

    // Ist das Datum in den nächsten 6 Wochen?
    $sechs_wochen=60*60*24*7*6;
    if( (($heute_stamp+$sechs_wochen) > $row['datum_stamp'])&& ($heute_stamp < $row['datum_stamp'])){

    // die Ausgabe:
    echo"<tr><td>".$row['datum']." ".$row['uhrzeit']." Uhr: ".$row['stichwort']." <br> ".nl2br($row['beschreibung'])."<br><br><td></tr>";

    }
    }
    //das Ende der Tabelle
    echo"</table>";

    ?>
    Nochmal 1000 Dank an Danny, ich hoff ich kann mich mal revancieren.

    ciao, Steff
    Geändert von steff11 (22.01.2006 um 17:19 Uhr)

  2. #2
    TP-Veteran heatseeker bringt sich richtig ein heatseeker bringt sich richtig ein Avatar von heatseeker
    Registriert seit
    Jun 2003
    Ort
    Aachen, Germany, Germany
    Beiträge
    1.165
    Danke danke...
    War ja keine so große Geschichte, tut man doch gerne fürs TP

    Revangieren kannste dich bestimmt mal, da habe ich gar keine bedenken

    Grüße

    Danny

  3. #3
    TP-Veteran Butterstulle ist ein richtiges Arbeitstier - DANKE Butterstulle ist ein richtiges Arbeitstier - DANKE Butterstulle ist ein richtiges Arbeitstier - DANKE Butterstulle ist ein richtiges Arbeitstier - DANKE Butterstulle ist ein richtiges Arbeitstier - DANKE Butterstulle ist ein richtiges Arbeitstier - DANKE Avatar von Butterstulle
    Registriert seit
    Jun 2002
    Ort
    Emden - Ostfriesland
    Beiträge
    1.513
    Moin auch, schickes Script.
    Daten werden auch in die Datenbank eingetragen nur werden die Daten nicht in der vorhergesehenen Datei angezeigt.
    Natürlich habe ich die Datenbankverbindungen ordnungsgemäß eingetragen und auch die Seite in *.php umbenannt.
    Was könnte ein möglicher Fehler sein?
    Vielen Dank,
    Butterstulle

  4. #4
    TP-Newbie Klecka Gandalf macht alles soweit korrekt
    Registriert seit
    Jul 2006
    Beiträge
    1

    Red face

    Ist auch möglich abgelaufene Termine anzuzeigen und vllt. ja nach Terminnamen noch auf eine weitere Seite zu linken?

  5. #5
    TP-Newbie DaTschiki macht alles soweit korrekt
    Registriert seit
    Sep 2006
    Beiträge
    1
    Zitat Zitat von Klecka Gandalf
    Ist auch möglich abgelaufene Termine anzuzeigen und vllt. ja nach Terminnamen noch auf eine weitere Seite zu linken?
    Das würde mich auch ziemlich interessieren. Etwa so:

    http://www.domain.de/events.php?id=1
    http://www.domain.de/events.php?id=2
    ...

    Hat da jemand einen Vorschlag / Lösung?

    Jeder Datensatz müsste eine eigene ID in der Datenbank haben...

    Bin für jede Hilfe dankbar!

  6. #6
    TP-Newbie hobbyan macht alles soweit korrekt
    Registriert seit
    Nov 2007
    Beiträge
    3
    Hi erstmal!
    Ich habe das Script gefunden und kurzer Hand eingebaut. Funzt soweit super.

    In der Abfrage ist es ja kein Problem, die Zeit von 6 Wochen beliebig anders einzustellen. Das bekommt sogar so ein php Trottel, wie ich einer bin hin .
    Für mich wäre es jetzt interessant, die Abfrage so zu ändern, dass jeweils nur der aktuellste Termin angezeigt wird. Irgendwie bekomme ich das aber überhaupt nicht hin. Wenn mir da nochmal der heatsseker oder jemand anderes helfen könnte würde ich mich echt sehr freuen.
    MfG
    hobbyan

  7. #7
    TP-Urgestein webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von webcreate
    Registriert seit
    Nov 2003
    Ort
    NRW
    Beiträge
    11.660
    Du willst also nur einen einzigen Termin ausgeben?
    das kannst Du mit Hilfe vom LIMIT erreichen.
    Code:
    //Das wichtige SQL-Statement:
    $sql="SELECT * FROM termine ORDER BY datum_stamp ASC LIMIT 0,1";
    Gruß Mark

    webcreate IT SOLUTIONS
    www.webcreate-nrw.de

    Photoblog....|....flickr

  8. #8
    TP-Newbie hobbyan macht alles soweit korrekt
    Registriert seit
    Nov 2007
    Beiträge
    3
    Supi Danke.
    Ich musste nur anstatt LIMIT 0,1 LIMIT 1, 1 nehmen, dann ging es.

    Nach ein wenig Suche, fand ich dies hier : Der erste Wert bezeichnet die Position des "Startdatensatzes", der zweite die Anzahl der auszugebenden Treffer.

    Bin happy, es geht. Vielen Dank für die schnelle Hilfe.
    Ich lerne, wenn auch langsam

  9. #9
    TP-Newbie hobbyan macht alles soweit korrekt
    Registriert seit
    Nov 2007
    Beiträge
    3
    Hallo nochmal!
    Mir ist heute beim basteln noch was aufgefallen. Eigentlich sollte es doch so sein, dass nur die Daten von heute bis in die definierte Zukunft (im beispiel sind es 6 Wochen) angezeigt werden. Bei mir werden aber auch die Termine in der Vergangenheit angezeigt. Ich habe da schon einiges rumgebastelt aber bekomme es nicht hin. Jemand eine Idee?
    MfG hobbyan

  10. #10
    TP-Newbie sibold macht alles soweit korrekt
    Registriert seit
    Feb 2009
    Beiträge
    4

    tausend dank an den autoren

    Moin,

    das Terminscript ist klasse und ich würde es gern verwenden. Ausprobiert, Einverständnis voraussetzend, habe ich es bereits. Dabei ist mir aufgefallen, dass der Termin, den ich zuvor eingegeben habe, mit Beginn des Tages, an dem er stattfindet, nicht mehr angezeigt wird. Irgendwo ist da ein Fehler (vermutlich bei mir in der Denke) den ich nicht finde.

    Vielleicht kann mir jemand nen Schubs geben und bestenfalls sogar helfend zur Seite stehen, auch wenn der Thread schon etwas älter ist.

    Grüße und Dank

    stefan ibold

  11. #11
    TP-Newbie dj_fipsi macht alles soweit korrekt
    Registriert seit
    Dec 2010
    Beiträge
    2
    Mich würde auch interessieren wie ich es schaffe, das heutige Datum angezeigt zu bekommen, ich raff da iwie nicht

    //edit hat sich erledigt, hab unter den echs wochen eins für einen tag hinzugefügt und aus: ($heute_stamp < $row['datum_stamp'])

    (($heute_stamp - $1_tag) < $row['datum_stamp']) gemacht, jetzt funzts
    Geändert von dj_fipsi (17.12.2010 um 16:36 Uhr)

  12. #12
    TP-Newbie sibold macht alles soweit korrekt
    Registriert seit
    Feb 2009
    Beiträge
    4

    @ dj-fipsi

    Moin,

    ähmm, wo genau hast Du ergänzt?

    Kannst Du bitte den Teil des Scripts vollständig einstellen?

    Danke

    sibold

  13. #13
    TP-Newbie dj_fipsi macht alles soweit korrekt
    Registriert seit
    Dec 2010
    Beiträge
    2
    aus:
    PHP-Code:
    // Ist das Datum in den nächsten 6 Wochen?
    $sechs_wochen=60*60*24*7*6;
    if( ((
    $heute_stamp+$sechs_wochen) > $row['datum_stamp'])&& ($heute_stamp $row['datum_stamp'])) 
    wurde:
    PHP-Code:
    // Ist das Datum in den nächsten 6 Wochen?
    $sechs_wochen=60*60*24*7*6;
    $
    1_tag=60*60*24*1*1;
    if( ((
    $heute_stamp+$sechs_wochen) > $row['datum_stamp'])&& (($heute_stamp - $1_tag) < $row['datum_stamp'])) 

  14. #14
    TP-Newbie sibold macht alles soweit korrekt
    Registriert seit
    Feb 2009
    Beiträge
    4

    super

    Moin,

    danke Dir und wünsche Dir ein frohes Fest und einen guten Rutsch.

    Grüße

    sibold

  15. #15
    TP-Newbie sibold macht alles soweit korrekt
    Registriert seit
    Feb 2009
    Beiträge
    4

    bekomme immer Fehlermeldung

    Moin Nochmals,

    bekomme, wenn ich die Änderung einbaue, immer nachfolgende Fehlermeldung:

    Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in /homepages/24/d83272791/htdocs/hyc-jugend/einfuegscript.php on line 27

    Grüße

    sibold

+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51