MySql - Wenn falsche Datumseingabe, dann Meldung...

Newcomer1

Mitglied
Hallo,

Hab aus Versehen meinen Beitrag im Datenbankforum gepostet,
daher tu ichs hier nochmal:
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------

Folgendes Problem:
Die Suchfunktion bei einer Terminabfrage ist so einzugeben: 'JJJJMMTT'
Wenn jetzt der User eine falsche Eingabe macht, z.B. er vergisst eine Zahl oder
er gibt das Datum in dieser Form an z.B. 25. November; so soll eine Fehlermeldung
ausgegeben werden (Mit einer PHP if - elseif - else Anweisung).
Wie muss ich diese Anweisung schreiben bzw. wo kann ich nachlesen wies
gemacht werden soll?

Ich poste mal den Code wie ich's bis jetzt habe:

Code:
<?
.
.
.
.

if($search == "") {   //Wenn das Formular leer bleibt, kommt diese Meldung
echo "Für Ihre Anfrage wurde keine Veranstaltung gefunden.<br>
Information: Datumsangaben in folgendem Format 'JJJJMMTT'; Beispiel: 20050510.";

Hier soll die elseif Anweisung hinein wenn etwas falsch geschrieben wurde!
<br>
Wäre auch toll wenn eine Meldung erscheinen würde wenn kein Termin vorhanden ist ;-) 




} else {     Wenn es einen Termin gibt kommt das hier
echo "<h3>Folgende(r) Termin(e) wurde(n) gefunden:</h3><p>";
$sql = mysql_query("SELECT * FROM Termine WHERE search = $search");
 while ($ds = mysql_fetch_object($sql)){
    $search = $ds -> search;
    $Datum = $ds -> Datum;
    $Zeit = $ds -> Zeit;
    $Ort = $ds -> Ort;
    $Link = $ds -> Link;
    $Band = $ds -> Band;
    $Veranstaltung = $ds -> Veranstaltung;
    $Info = $ds -> Info;
    $id =  $ds -> id;
.
.
.
.
?>



Danke erst mal
 
hallo,

da es sich anscheinend um eine art veranstaltungskalender handelt, würde ich das folgendermaßen lösen:

1. aktuelles datum in format JJJJMMDD umwandeln
2. if abfrage: eingabe größer aktuelles datum und kleiner zb. 20501231

hat allerdings den fehler, dass du theoretisch auch 20064588 eingeben könntest. wenn alle fehler ausgeschlossen werden sollen musst du die eingabe in jahr monat und tag zerlegen und jedes für sich überprüfen. einfacher wäre dafür ein format jjjj.mm.dd denn da kannst du mit explode arbeiten.
 
Hi,

Also du meinst das ungefähr so?

Code:
if ($search < $search) {

     echo "Nix";

} elseif ($search > $search) { 

     echo "Nix";

} else {

     echo "Weiter im Text..."; usw

Gruß
 
Zurück