Terminliste
akI
- php
Hallo,
ich möchte auf einer Seite eine einfache Tabelle mit den aktuellen Terminen anlegen. Als Beispiel http://www.castor.de/php/termine/termine.php
Allerdings möchte der Kunde diese selbsts über ein Formular updaten können, und der neuste Termin soll immer oben stehen.
Leider sind meine PHP-Kenntnisse sehr beschränkt und die Begriffe "PHP Kalender / Termine" haben auch nicht zum Erfolg geführt.
Ich währe sehr dankbar über einen Tip !
Danke,
akI
Moin!
In meinem kleinen CMS ist sowas drin. Schreib es dort ab und nach den Bedürfnissen Deines Kunden um.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix
Die erste Frage stellt sich einmal wie weit dein Können in PHP / MYSQL liegt.
Für eine Terminverwaltung brauchst du zwingend eine Datenbank (MYSQL) und du musst dafür natürlich auch ein kleines CMS schreibten wo der Kunde neue Termine anlegen, löschen und updaten kann.
Aber wenn du absolut nicht weiter weisst, dann kann ich dir so ein kleines 0815 Script mit einer Seite schreiben das das alles kann.
Für eine Terminverwaltung brauchst du zwingend eine Datenbank (MYSQL)
Unsinn. Es gibt auch andere Formate in denen wunderbar Daten logisch ablegen kann: XML oder CSV um die beiden gänigeren zu sehen.
Moin!
Für eine Terminverwaltung brauchst du zwingend eine Datenbank (MYSQL)
Unsinn. Es gibt auch andere Formate in denen wunderbar Daten logisch ablegen kann: XML oder CSV um die beiden gänigeren zu sehen.
JSON, serialialisierte PHP-Arrays.
XML würde ich wegen des unweigerlich entstehenden Overheads eher vermeiden wollen.
CSV klingt zwar gut, macht aber als Datenaustauschformat durchaus erhebliche Probleme. Wenn sowieso nur ein einziges Programm (hier: der Terminkalender) drauf zugreifen soll, ist CSV allen Alternativen unterlegen.
- Sven Rautenberg
Hello,
CSV klingt zwar gut, macht aber als Datenaustauschformat durchaus erhebliche Probleme. Wenn sowieso nur ein einziges Programm (hier: der Terminkalender) drauf zugreifen soll, ist CSV allen Alternativen unterlegen.
Wenn nur mit PHP darauf zugegriffen werden soll, und die Anzahl der DAtensätze nicht zu hoch werdewn soll, würde ich zu serialisierten Spaltenarrays tendieren. Übrigens habe ich vor längerem auch eine kleine Funktionssammlung hier gepostet, mit denen aus Spaltenarrays CSV-Dateien gemacht werden können und aus den CSV-Dateien wieder ein Spaltenarray.
Liebe Grüße heute aus Braunschweig
Ich rücke Duisburg langsam nächer :-)
Tom vom Berg
mit denen aus Spaltenarrays CSV-Dateien gemacht werden können
fgetcsv()? :D
Hello,
mit denen aus Spaltenarrays CSV-Dateien gemacht werden können
fgetcsv()? :D
Das ergibt erstmal ein Zeilenarray und kein Spaltenarray.
Dafür muss man schon noch ein wenig mehr tun.
http://forum.de.selfhtml.org/archiv/2009/7/t188786/#m1257210
Der NULL-Bug in fgetcsv() ist inzwischen behoben.
Die Funktion nimmt aber ihrerseits auch Rücksicht darauf.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Moin!
Für eine Terminverwaltung brauchst du zwingend eine Datenbank (MYSQL)
Naja. Vor einer solchen Antwort sollte man einen Blick auf die Menge der zu erwartenden Daten werfen. Das genannte Beispiel sollte nach dem Motto "Kleines Problem - kleine Lösung!" mit CSV ganz gut zu händeln sein. Von "zwingend" kann hier also keine Rede sein.
Selbst einen Array oder Hash kann man direkt schreiben und lesen. Und zwar ohne jede Serialisierung:
<?php
#
## main
#
// Beispielarray:
$arArray = array (1, 2, array ("a", "b", "c"));
// Funktionsaufruf zum Schreiben
File_Put_Array('test.data', $arArray) or die ('Array konnte nicht in Datei test.data gespeichert werden.');
// Nur für das Beispiel:
print "hat geklappt, TestArray wird gelöscht\n\n";
unset ($arArray);
// Funktionsaufruf zum Lesen
$arArray=File_Get_Array('test.data');
var_dump ($arArray);
print "\n"; exit;
#
## functions
#
function File_Put_Array($FileName, $ar) {
return file_put_contents($FileName , '<?php $ar=' . var_export($ar, true) . ';');
}
function File_Get_Array($FileName) {
include $FileName;
return $ar;
}
?>
Aber auch mit Serialisierung:
<?php
#
## main
#
// Beispielarray:
$arArray = array (1, 2, array ("a", "b", "c"));
// Funktionsaufruf zum Schreiben
File_Put_Array_Serialized('test.data', $arArray) or die ('Array konnte nicht in Datei test.data gespeichert werden.');
// Nur für das Beispiel:
print "hat geklappt, TestArray wird gelöscht\n\n";
unset ($arArray);
// Funktionsaufruf zum Lesen
$arArray=File_Get_Array_Serialized('test.data');
var_dump ($arArray);
print "\n"; exit;
#
## functions
#
function File_Put_Array_Serialized($FileName, $ar) {
return file_put_contents($FileName ,serialize($ar));
}
function File_Get_Array_Serialized($FileName) {
if (! is_file($FileName)) { die ("Fatal: Die Datei $FileName gibt es nicht."); }
if (! is_readable($FileName)) { die ("Fatal: Die Datei $FileName ist nicht lesbar."); }
return unserialize(file_get_contents($FileName));
}
?>
Größere Datenmengen könne hierbei sogar noch mit bzcompress oder gzcompress (Voraussetzung:zlib) komprimiert werden. Das Beispiel mit zlib und gzcompress:
<?php
#
## main
#
// Beispielarray:
$arArray = array (1, 2, array ("a", "b", "c"));
// Funktionsaufruf zum Schreiben
File_Put_Array_Serialized_Compressed('test.data', $arArray) or die ('Array konnte nicht in Datei test.data gespeichert werden.');
// Nur für das Beispiel:
print "hat geklappt, TestArray wird gelöscht\n\n";
unset ($arArray);
// Funktionsaufruf zum Lesen
$arArray=File_Get_Array_Serialized_Compressed('test.data');
var_dump ($arArray);
print "\n"; exit;
#
## functions
#
function File_Put_Array_Serialized_Compressed($FileName, $ar) {
return file_put_contents($FileName ,gzcompress(serialize($ar)));
}
function File_Get_Array_Serialized_Compressed($FileName) {
if (! is_file($FileName)) { die ("Fatal: Die Datei $FileName gibt es nicht."); }
if (! is_readable($FileName)) { die ("Fatal: Die Datei $FileName ist nicht lesbar."); }
return unserialize(gzuncompress(file_get_contents($FileName)));
}
?>
Bitte beachten: Das Komprimieren lohnt nur bei großen Datenmengen (~ 10k und größer), ansonsten das Komprimieren/Dekomprimieren länger dauert und mehr Rechenzeit in Anspruch nimmt als das Schreiben der größeren Datei. Wo genau die Grenze liegt ist von den Daten und natürlich der Maschine anhängig.
Die Beispiele sind getestet.
fastix