Portal > Foren > PHP > PHP-Programmierung > Logisches Problem
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 06.07.2005, 07:54 Nach oben    #1
cengiz
Gast
 
Beiträge: n/a
Standard Logisches Problem

Morgen,

ich habe so eine Reservierungsliste und ich bin dabei eine Abfrage zu erstellen die Überschneidungen der Termine verhindern soll.

also die ganzen termine stehen in einer csv datei
(z.b. Vorname-Nachname-Datum-Uhrzeitvon-Uhrzeitbis-Wochentag)

so ich wandle natürlich die uhrzeit von der csv und fomular erst in Unix-Timestamps um.

Habe also vier Variablen:
$timestampVonFrm <- beinhaltet die uhrzeit-von des Formulares
$timestampBisFrm <- beinhaltet die uhrzeit-bis des Formulares
$timestmpVonF[] <- beinhaltet alle uhrzeiten-von der CSV-Datei
$timestmpBisF[] <- beinhaltet alle uhrzeiten-von der CSV-Datei


natülich überprüfe ich auch das Datum ob es des gleiche ist wie in der csv-datei.
meine Überlegung:

PHP-Code:
<?php

for ( $i 0; < ( count($timestmpDatF) ); $i++ ) {
  
  if (
$timestampVonFrm >= $timestmpVonF[$i] && $timestampBisFrm <= $timestmpBisF[$i])
  {  
//fehlermeldung
  
}

  if (
$timestampVonFrm <= $timestmpVonF[$i] && $timestampBisFrm <= $timestmpBisF[$i])
  { 
//Fehlermeldung
  
}
  if (
$timestampVonFrm >= $timestmpVonF[$i] && $timestampBisFrm <= $timestmpBisF[$i])
  { 
//fehlermeldung
  
}
}
?>
mein problem die Termine überschneiden sich...
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.07.2005, 08:24 Nach oben    #2
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard Logisches Problem

Hi,
Deine erste und Deine dritte Bedingung sind doch gleich, oder?
Hast Du Dich da vertippt oder bin ich noch zu müde?

Weiterhin:
Was machst Du im Fall
Code:
$timestampVonFrm == $timestmpVonF[$i] AND $timestampBisFrm <= $timestmpBisF[$i]
Dieser Fall wird ja in beiden Bedingungen erfüllt.

So ganz verstanden hab ich übrigens nicht, was Du machen willst

Grüße Ben.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.07.2005, 08:34 Nach oben    #3
cengiz
Gast
 
Beiträge: n/a
Standard Logisches Problem

oh ja die erste bedingung und zweite sind gleich..wie konnte dass denn passieren

also ich möchte keine überschneideungen haben d.h.

in der csv-datei steht zum beispiel ein eintrag
Hans-Wurst-06.07.2005-08:00-09:00-Mittwoch

und ich will wenn sich einer etwas reservieren möchte (formulareingabe) dass das Fomrular überprüft ob es schon einen reservierung am gleichen tag gibt. und daie dürfen sich nicht übertschneiden.

Beispiel
Hans wurst hat die reservierung von heute 08:00 bis 09:00

jez kommt einer namens "Peter" und will sich was reservierung für heute um die zeit 08:00 bis 09:00.

das darf nicht sein weil schon einer um zeit es hat.

einmal wenn die zeit dazwischen liegt also zwischen der uhrzeit-von und uhrzeit-bis und so weiter

verstanden was ich meine?

ich weiß bin nicht besonders im erklären

€dit:
Code:
$timestampVonFrm == $timestmpVonF[$i] AND $timestampBisFrm <= $timestmpBisF[$i]
ehm so'n code ist in meinem quelltext nicht vorhanden oder was meinst du`?
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.07.2005, 07:40 Nach oben    #4
cengiz
Gast
 
Beiträge: n/a
Standard Logisches Problem

kann mir keiner weiterhelfen??

hier maql die wichtigsten Dinge aus dem quellcode umm vielleicht zu verstehen was ich gemacht habe bzw machen möchte.

PHP-Code:
<?php
  $pruf 
true;
  
$vname  $_POST["vname"];
  
$name   $_POST["name"];
  
$datum  $_POST["datum"];
  
$zeitv  $_POST["uhrzeitvon"];
  
$zeitb  $_POST["uhrzeitbis"];
  
$datZ   explode("."$datum);
  
$date   date('Y');
  
$zeitvZ explode(":"$zeitv);
  
$zeitbZ explode(":"$zeitb);
 
//normale Überprüfungen ob was eingegeben wurde
  
if ($pruf == true)
  { 
$file "csv/reservierung.csv";
    
$handle fopen($file'r');
    
$vorhanden file($file);
    while ( (
$data fgetcsv($handlefilesize($file), '-') ) != false )
    {
      
$daten[]        = $data;
      
$datumF         explode('.'$data[2]); 
      
$uhrzBisF       explode(':'$data[4]);
      
$uhrzVonF       explode(':'$data[3]);
      
$timestmpBisF[] = mktime($uhrzBisF[0], $uhrzBisF[1], 0$datumF[1], $datumF[0], $datumF[2]);
      
$timestmpVonF[] = mktime($uhrzVonF[0], $uhrzVonF[1], 0$datumF[1], $datumF[0], $datumF[2]);
      
$timestmpDatF[] = mktime(000$datumF[1], $datumF[0], $datumF[2]);
    }                                        
    
fclose($handle);
    
$datumFrm        explode('.'$datum);
    
$uhrzVonFrm      explode(':'$uhrzv);
    
$uhrzBisFrm      explode(':'$uhrzb);
    
$timestampVonFrm mktime($uhrzVonFrm[0], $uhrzVonFrm[1], 0$datumFrm[1], $datumFrm[0], $datumFrm[2]);
    
$timestampBisFrm mktime($uhrzBisFrm[0], $uhrzBisFrm[1], 0$datumFrm[1], $datumFrm[0], $datumFrm[2]);
    
$timestampDatFrm mktime(000$datumFrm[1], $datumFrm[0], $datumFrm[2]);

    
    for (
$i 0$i < (count($timestmpDatF)); $i++)  {
      
      if (
$timestmpDatF[$i] == $timestampDatFrm)
      { 
    if (
$timestampVonFrm >=  $timestmpVonF[$i] && $timestampBisFrm <= $timestmpBisF[$i])
    {  echo 
"<b>Sie überschneiden sich mit dem folgendem Termin:</b><br>";
       
$pruf false;
       
$string explode('-',$vorhanden[$i]);
       echo 
$string[0]." ".$string[1]." ".$string[2]." ".$string[3]."-".$string[4];
       break;
    }
        
    if (
$timestmpVonF[$i] < $timestampVonFrm && $timestmpVonF[$i] < $timestampBisFrm && $timestampBisFrm $timestmpBisF[$i])
    { echo 
"<b>Sie überschneiden sich mit dem folgendem Termin:</b><br>";
      
$pruf false;
      
$string explode('-',$vorhanden[$i]);
      echo 
$string[0]." ".$string[1]." ".$string[2]." ".$string[3]."-".$string[4]; 
      break;
        }
        
        if (
$timestampVonFrm $timestmpVonF[$i] && $timestampVonFrm $timestmpBisF[$i] && $timestampBisFrm $timestmpBisF[$i])
        { echo 
"<b>Sie überschneiden sich mit dem folgendem Termin:</b><br>";
      
$pruf false;
      
$string explode('-',$vorhanden[$i]);
      echo 
$string[0]." ".$string[1]." ".$string[2]." ".$string[3]."-".$string[4]; 
      break;
        } 
      }
    }
    
  }

//falls $pruf immer noch true dann wird alles in die csv eingetragen und "eigentlich" weitergeleitet wenn es funzen würde
if ($pruf == true)
    { 
      
$wtage = array("Monday"=>"Montag""Tuesday"=>"Dienstag""Wednesday"=>"Mittwoch""Thursday"=>"Donnerstag""Friday"=>"Freitag""Saturday"=>"Samstag""Sunday"=>"Sonntag");
    
      
$date explode('.'$datum);
      
$wochentag getdate(mktime(000$date[1], $date[0], $date[2]));
      
$wtagE $wochentag["weekday"];
      
$zeiger fopen($file"a");
      
fwrite($zeiger"".$vname."-".$name."-".$datum."-".$zeitv."-".$zeitb."-".$wtage[$wtagE]."\n");
      
//echo "<b>Die Reservierung wurde berücksichtigt</b>";
      
fclose($zeiger);
      
header("Location: [url]http://xxxxx/neu/reservierung/index.php"[/url]);
}
?>
also wegen der überprüfung der timestamps...also habe ich die Timestamps falsch gebildet?? ich mein nicht...

warum habe ich geschützte leerzeichen aufeinmal im quelltext

[size=18px]€dit:[/size]
ich habe den fehler gefunden aber noch nicht behoben bin grad dabei. es liegt an den variablen uhrzv und uhrzb die kriegen keine werte zugewiesen deswegen erhalte ich falsche timestamps.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem E-Mails zu senden Jann Hendrik Plauderecke 7 25.05.2007 21:37
Logisches Problem beim einsatz von Ereignissen Prophet Allgemeine Java-Programmierung 19 05.06.2006 22:08
Problem mit Cookie und Reloads... Bookworm PHP-Programmierung 10 13.04.2006 12:09
OSX + Eclipse 3.1 Problem bacarni Eclipse 3 29.07.2005 21:19
Problem mit Arrays pixel Allgemeine Java-Programmierung 9 07.05.2005 16:29


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:02 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

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