Küchenplan erstellen

Alles, was nicht in die anderen Foren passt, kannst du hier loswerden.
Antworten
suesemausw
Beiträge: 34
Registriert: 5. Apr 2012, 20:56
Wohnort: Steinbach
Kontaktdaten:

Küchenplan erstellen

Beitrag von suesemausw »

Hallo Admidio Team

Ich bin dabei einen Küchenplan zu erstellen ich habe auch eine abfrage fertig worin sich die Mitglieder befinden die daran teilnehmen wollen.
Diese (Namen) lasse ich mir immer 4 nebeneinander ausgeben.
jetzt möchte ich aber ein 14 tägiges Datum davor schreiben (von 1.1.2000 - 14.1.2000)
diese datum habe ich mit mktime erstelt doch wie bekomme ich es vor meine abfrage???


ier ist die Abfrage der Personen

Code: Alles auswählen

$sql = 'SELECT
            surname.usd_value as surname, rufname.usd_value as rufname, strasse.usd_value as strasse, hausnummer.usd_value as hausnummer
            FROM '.TBL_MEMBERS.'
            LEFT JOIN '. TBL_USER_DATA .' surname
            ON surname.usd_usr_id = mem_usr_id
            AND surname.usd_usf_id = '.$gProfileFields->getProperty('LAST_NAME', 'usf_id').'
            LEFT JOIN '. TBL_USER_DATA .' rufname
            ON rufname.usd_usr_id = mem_usr_id
            AND rufname.usd_usf_id = '.$gProfileFields->getProperty('RUFNAME', 'usf_id').'
            LEFT JOIN '. TBL_USER_DATA .' strasse
            ON strasse.usd_usr_id = mem_usr_id
            AND strasse.usd_usf_id = '.$gProfileFields->getProperty('STRASSE', 'usf_id').'
			LEFT JOIN '. TBL_USER_DATA .' hausnummer
            ON hausnummer.usd_usr_id = mem_usr_id
            AND hausnummer.usd_usf_id = '.$gProfileFields->getProperty('HAUSNUMMER', 'usf_id').'
            WHERE mem_rol_id  = 7
			and 
			strasse.usd_value LIKE \'B%\'
			ORDER BY hausnummer ASC
			 ';

    $reinig = $gDb->query($sql) or die(mysql_error());	
	
	echo "<p>";
	$n = 0;
	echo "<strong> Plan :</strong><p>";
	while ($Kueche = $gDb->fetch_array($reinig))
	      {
		     $n++ ;
		    echo $Kueche['rufname']." ".$Kueche['surname'].", ";
	        if($n == 4)
              {
                echo "<p>";
               $n=0;
              }  
			
		   }
Hier ist die Zeiterstellung

Code: Alles auswählen

$start = mktime(0,0,0,6,6,2005);            //Zyklus Startdatum
    $wochen = "53";    //Anzahl der Anzuzeigenden Wochendienste ab heute
 $gruppen = array(??????);        //Gruppen HIER müssen jetzt die Gruppen der ersten abfrage rein ???
      
 $gruppenanzahl = count($gruppen);           //Anzahl der Gruppen.
      
   for($i=1,$j=1; $i<=$wochen,$j<=$wochen; $i++,$j++){
      $beginn = $start+60*60*24*14*($i-1);
      $ende = $start+60*60*24*14*$i-60*60*24;
          
      //Der Beginn liegt in der Zukunft -> komplett anzeigen
      if($beginn > time())        
      echo date('d.m.Y', $beginn)." - ".date('d.m.Y', $ende)." Gruppe ".$gruppen[($i-1)%$gruppenanzahl]."<br>";
              
      //Beginn war bereits, Ende liegt in der Zukunft -> Aktuelles Datum und Enddatum anzeigen
      else if($ende > time())        
       echo date('d.m.Y')." - ".date('d.m.Y', $ende)." Gruppe ".$gruppen[($i-1)%$gruppenanzahl]."<br>";
              
      //Keine Ausgabe -> Zähler für Anzeige wieder um 1 verringern    
      else
          $j--;
Könnt ihr mir Helfen??
Vielen Dank im Voraus
Zuletzt geändert von suesemausw am 17. Jul 2012, 19:27, insgesamt 2-mal geändert.
matzman2000
Former team member
Beiträge: 1087
Registriert: 2. Sep 2007, 17:12
Wohnort: Itzstedt
Kontaktdaten:

Re: Küchenplan erstellen

Beitrag von matzman2000 »

Wenn Du auf den Zeitstempel (den Du mit mktime erstellst) 1209600 (Sekunden) addierst und das wieder mit date formatierst, dann bist Du zB. 14 Tage weiter. Das könntest Du in einer Schleife nuetzen und lässt halt solange weiterlaufen, bis der Zeitstempel ein bestimmtes Datum überschreitet...
suesemausw
Beiträge: 34
Registriert: 5. Apr 2012, 20:56
Wohnort: Steinbach
Kontaktdaten:

Re: Küchenplan erstellen

Beitrag von suesemausw »

Aber ich bekomme die While Schleife nicht dahinter da ja immer 4 Personen in einer Gruppe sind.
Kann mann die While Schleife als Variable speichern oder als (Gruppen von je 4 Zeilen) und diese in einem Aray einstellen???
oder sollte ich das alles ganz anders angehen über ne funktion???
Zuletzt geändert von suesemausw am 17. Jul 2012, 19:30, insgesamt 1-mal geändert.
suesemausw
Beiträge: 34
Registriert: 5. Apr 2012, 20:56
Wohnort: Steinbach
Kontaktdaten:

Re: Küchenplan erstellen

Beitrag von suesemausw »

Aktuell sieht das bei mir so aus

name1,name2,name3,name4
name5,name6,name7,name8

1.1.20012 - 14.1.2012
15.1.2012 - 29.1.2012

Wusch wäre halt
1.1.20012 - 14.1.2012 Gruppe name1,name2,name3,name4
15.1.2012 - 29.1.2012 Gruppe name5,name6,name7,name8

Kann mir da niemand helfen??
Bitte
suesemausw
Beiträge: 34
Registriert: 5. Apr 2012, 20:56
Wohnort: Steinbach
Kontaktdaten:

Re: Küchenplan erstellen

Beitrag von suesemausw »

Hallo Admidio Team.

Danke matzman2000 dein Tip funkt jetzt bei mir.

Doch wie kann ich meine while ($Kueche = $gDb->fetch_array($reinig)) schleife wiederholen wenn alle namen ausgegeben sind????

Ich habe einen zähler drin der mir 26 zyklen a 14tage ausgibt doch in meinem $Kueche sind nur 17 Personen also solten sich die namen wiederholen.

Z.B
1 name
2 name
3 name
1 name
2 name


Vielendank für eure Hilfe
suesemausw
Beiträge: 34
Registriert: 5. Apr 2012, 20:56
Wohnort: Steinbach
Kontaktdaten:

Re: Küchenplan erstellen

Beitrag von suesemausw »

Habe noch eine kleine Frage.
möchte gern noch das eintritsdatum bzw das austritsdatum (in einer Rolle) in mein Query einfügen
wie sollte der leftjoin aussehen????

Code: Alles auswählen

$sql = 'SELECT
            surname.usd_value as surname, rufname.usd_value as rufname, strasse.usd_value as strasse, hausnummer.usd_value as hausnummer
            FROM '.TBL_MEMBERS.'
            LEFT JOIN '. TBL_USER_DATA .' surname
            ON surname.usd_usr_id = mem_usr_id
            AND surname.usd_usf_id = '.$gProfileFields->getProperty('LAST_NAME', 'usf_id').'
            LEFT JOIN '. TBL_USER_DATA .' rufname
            ON rufname.usd_usr_id = mem_usr_id
            AND rufname.usd_usf_id = '.$gProfileFields->getProperty('RUFNAME', 'usf_id').'
            LEFT JOIN '. TBL_USER_DATA .' strasse
            ON strasse.usd_usr_id = mem_usr_id
            AND strasse.usd_usf_id = '.$gProfileFields->getProperty('STRASSE', 'usf_id').'
			LEFT JOIN '. TBL_USER_DATA .' hausnummer
            ON hausnummer.usd_usr_id = mem_usr_id
            AND hausnummer.usd_usf_id = '.$gProfileFields->getProperty('HAUSNUMMER', 'usf_id').'
            WHERE mem_rol_id  = '.$Rolle.'
            and
            hausnummer.usd_value >=102
            and
            hausnummer.usd_value <=145
			ORDER BY CAST(hausnummer AS UNSIGNED), hausnummer, rufname ASC
			 ';
Antworten