| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

20-04-2011, 16:56
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von h3ll
Aber du hast doch behauptet, dass sich für eine "von-bis" Schleife while anbietet, oder?
|
Ich habe überhaupt nichts generell behauptet, sondern von diesem Fall gesprochen.
Warum reitest du da jetzt so drauf rum ...?
PHP-Code:
$datum = time();
$ende = strtotime('+6 weeks');
while(($datum = strtotime('next wednesday', $datum)) < $ende) {
// mache irgendwas mit dem Datum, bspw.
echo date('r', $datum)."\n";
}
Das ist doch 'ne hübsch logische kleine Schleife - mache so lange was mit dem jeweils nächsten Mittwoch, bis Zeitpunkt $ende erreicht ist.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

20-04-2011, 17:06
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
PHP-Code:
for ($date = new DateTime(); $date <= $date_end; $date->modify('next wednesday')) { /* ... */ }
|

20-04-2011, 17:45
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
OffTopic: Jetzt wirds ungemütlich!
|

20-04-2011, 18:10
|
|
sepp
Registrierter Benutzer
|
|
Registriert seit: Aug 2007
Beiträge: 213
|
|
Ich danke Euch für die Ausführungen.
Leider komme ich so nicht zum Erfolg.
PHP-Code:
$datum_von = "2010-08-22";
$datum_bis = "2011-07-22";
for ($date = new DateTime($datum_von); $date <= $datum_bis; $date->modify('next wednesday')) {
echo $date->format('Y-m-d')."<br>";
}
Was mach ich falsch, so durchläuft er die Schlauf gar nicht
|

20-04-2011, 18:18
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
PHP-Code:
$date_from = new DateTime("2010-08-22"); $date_to = new DateTime("2011-07-22");
for ($date = clone $date_from; $date <= $date_to; $date->modify('next wednesday')) { echo $date->format('Y-m-d') . '<br />'; }
|

20-04-2011, 19:08
|
|
sepp
Registrierter Benutzer
|
|
Registriert seit: Aug 2007
Beiträge: 213
|
|
Besten Dank, funktioniert einwandfrei.
Nun, muss ich nur noch gewisse Wochen innerhalb der Zeitspanne ausblenden dann ist es so wie ich will.
Das Ausblenden kann ich ja mit einer switch case bedingung ausfiltern, oder gibt es auch da eine einfachere Möglichkeit?
Geändert von sepp (20-04-2011 um 19:20 Uhr)
|

20-04-2011, 19:42
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Zwischen was willst du switchen?
Evtl. könnte ein if/elseif-Konstrukt einfacher sein.
Aber vielleicht lieferst du diesmal den Ansatz?
|

20-04-2011, 23:41
|
|
sepp
Registrierter Benutzer
|
|
Registriert seit: Aug 2007
Beiträge: 213
|
|
Ich habe es nun so gemacht
PHP-Code:
if($date != $date_from && ($date <= new DateTime("2011-04-24") or $date >= new DateTime("2011-05-07"))) { echo $date->format('Y-m-d') . '<br />'; }
kann man das auch noch schlauer machen?
Und die Woche kann man nicht auch gleich ausgeben lassen oder?
Geändert von sepp (20-04-2011 um 23:55 Uhr)
|

21-04-2011, 00:18
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von sepp
Und die Woche kann man nicht auch gleich ausgeben lassen oder?
|
Wenn sich jetzt ernsthaft herausstellt, dass du nicht mal den Format-Parameter 'W' durch selbstständiges Nachlesen im Manual zu finden in der Lage warst, dann gibt's aber echt Ärger ... also sag bitte, dass du was anderes damit gemeint hast.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

21-04-2011, 02:26
|
|
sepp
Registrierter Benutzer
|
|
Registriert seit: Aug 2007
Beiträge: 213
|
|
Ja, habe natürlich was anders gemeint - Danke trotzdem.
Nächstes Problem:
Wenn ich also die diversen Daten eintrage an welchen kein Datum ausgegeben werden soll geht das ja so.
PHP-Code:
if($date != $date_from && ($date < new DateTime("2011-04-24") or $date > new DateTime("2011-05-07")) && ($date < new DateTime("2010-12-20") or $date > new DateTime("2011-01-08")))
Nun kommen aber meine Leerdaten aus der DB MYSQL.
PHP-Code:
$abfrage_kalenderdaten = mysql_query ("SELECT * FROM $tab_kalenderdaten");
while ($row = mysql_fetch_array ($abfrage_kalenderdaten))
{
$event_von = $row["datum_event"];
$event_bis = $row["datum_event_end"];
}
Wie kann ich nun in der if Bedingung diese Variabeln einbinden?
Ich wollte die Abfrage innerhalb der if bedingung setzten und dann beim Duchlauf
PHP-Code:
&& ($date < new DateTime("$event_von") or $date > new DateTime("$event_bis"))
dazu schreiben -geht aber leider nicht.
Bsp:
PHP-Code:
if($date != $date_from
$abfrage_kalenderdaten = mysql_query ("SELECT * FROM $tab_kalenderdaten");
while ($row = mysql_fetch_array ($abfrage_kalenderdaten))
{
$event_von = $row["datum_event"];
$event_bis = $row["datum_event_end"];
&& ($date < new DateTime("$event_von") or $date > new DateTime("$event_bis"))
} )
{
Wie gehe ich da vor?
Ich liebe Euch Danke bereits im voraus.
Geändert von sepp (21-04-2011 um 02:37 Uhr)
|

21-04-2011, 23:03
|
|
sepp
Registrierter Benutzer
|
|
Registriert seit: Aug 2007
Beiträge: 213
|
|
Ist denn meine letzte Frage so doof, dass ich keine Antwort darauf bekomme?
|

21-04-2011, 23:11
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von sepp
Ist denn meine letzte Frage so doof, dass ich keine Antwort darauf bekomme? 
|
Nur die letzte ...?
Zitat:
Zitat von sepp
geht aber leider nicht.
|
„Funzt nicht“ ist keine Problembeschreibung.
Beschreibe bitte ausführlich, was deine Debugmaßnahmen ergeben haben.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

21-04-2011, 23:31
|
|
sepp
Registrierter Benutzer
|
|
Registriert seit: Aug 2007
Beiträge: 213
|
|
Ich bekomme einen Parse error
Parse error: syntax error, unexpected T_VARIABLE in
dieser Zeile
PHP-Code:
if($date != $date_from $abfrage_kalenderdaten = mysql_query ("SELECT * FROM $tab_kalenderdaten");
das ist weil ich in der Bdingung gleich die Abfrage starte, wenn ich davor ein && schreibe (was ich nicht möchte) wird nach dem das unexpected ';' entfernt wurde die Fehlermeldung
Parse error: syntax error, unexpected T_WHILE
angezeigt - und da stehe ich auch gleich auf dem Schlauch, wie kann ich die WHILE Schleife bzw. Abfrage innerhalb einer if Bedingung schreiben?
Geht das denn überhaupt?
|

21-04-2011, 23:36
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von sepp
das ist weil ich in der Bdingung gleich die Abfrage starte
|
Du startest da überhaupt keine Abfrage, sondern verletzt lediglich die Syntax.
Wenn dir noch die absoluten Grundkenntnisse bzgl. der Syntax von PHP fehlen, dann arbeite bitte ein Einsteiger-Tutorial durch.
Es reicht jetzt hier. Das ist kein Tutorial-Vorlese-Service. Darum, die absoluten Basics zu erlernen, kümmerst du dich bitte selber.
*close*
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|