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
Hallööle,
hab kürzlich diesen Wunsch verspürt:
Member Heatseeker hat das Problem blitzschnell und blitzsauber durch maßgeschneiderten php-Code gelöst: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.
1. Schritt
In der DB ist eine Tabelle "termine" mit folgenden Feldern anzulegen:
2. SchrittCREATE 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 ;
Einträge tätigt man über ein html-Formular
das mit diesem php-Script arbeitet, das mit Namen "einfuegen.php" im selben Verzeichnis liegt:<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>
(Datenbank-Host, -name, -user, -passwort in den ersten Zeilen natürlich an eigene Gegebenheiten anpassen)<?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...
}
?>
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:
Nochmal 1000 Dank an Danny, ich hoff ich kann mich mal revancieren.<?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>";
?>
ciao, Steff
Geändert von steff11 (22.01.2006 um 17:19 Uhr)
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
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
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:Zitat von Klecka Gandalf
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!
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
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";
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![]()
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
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
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)
Moin,
ähmm, wo genau hast Du ergänzt?
Kannst Du bitte den Teil des Scripts vollständig einstellen?
Danke
sibold
aus:
wurde: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']))
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']))
Moin,
danke Dir und wünsche Dir ein frohes Fest und einen guten Rutsch.
Grüße
sibold
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
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)