Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Variable in Schleife neu deklarieren?

Empfohlene Antworten

Veröffentlicht

Hallo,

habe folgendes Problem:

Und zwar wird ein Kalender generiert. In diesen Kalender kann man nun über eine Mysql Datenbank "belegt" Tage eintragen. Am besten zeige ich einfach den Code und erkläre ein bisschen dazu.

$row = mysql_fetch_assoc($query2); //Hier wird der erste Wert ausgelesen

$x=1; //Für die while Schleife (for geht in dem Fall nicht)

while ($x<=$days){ //Tage sind vorher per mktime und date() geholt.

//Wenn Tag x, Monat x, und Jahr x mit dem Besetzt datum übereinstimmen

if ($x==$row['tag'] AND $month==$row['monat'] AND $year==$row['jahr']){

echo '<td class="belegt">'.$x.'</td>';

$y++;

$row = mysql_fetch_assoc($query2);

}

//Genau hier liegt das Problem. $row soll, da ja eine Übereinstimmung vorliegt, geändert werden. Danach wird wieder solange überprüft bis die if Bedingung erfüllt ist. Dann soll $row den nächsten Wert bekommen.

Nach dem Teil, fängt die Schleife wieder von vorne an. Die Schleife läuft eben so lange, wie der Monat Tage hat.

Hoffe ihr versteht mich ein wenig :)

Gruß

Hi - ich bin evtl. nicht der einzige der dein Problem nicht begriffen hat :D - wo genau liegt denn das Problem ? Du weißt doch $row einen neuen Wert zu, oder ?

Also ich hab nochmal über deine Frage im Zusammenhang mit dem Topic-Thema nachgedacht - meintest du, dass du "$row" in der Schleife (while) erst deklarieren willst ? Das dürfte an sich eigentlich kein Problem sein - wie das allerdings mit dem scope aussieht (ob $row dann außerhalb der schleife sichtbar ist, wenn du es außerhalb definierst) da bin ich mir unsicher, würde aber meinen, dass "$row" nur in der Schleife vorhanden ist - würfest du "$row" auf einmal außerhalb der schleife verwenden (unter der annahme das du es innerhalb der Schleife deklariert hast) - dann würd ich meinen, das der Wert von $row nicht unbedingt das ist, was du erwartest ... :D (da es ja als neue, lokale Variable gehandhabt werden müsste, der noch kein Wert zugewiesen wurde ..?).

P.s. Wie macht man denn nen "Edit Post" :confused: ?

genau das ist das Problem. Der wert von $row wird in der if-Schleife neu zugewiesen, aber ausserhalb der Schleife, für die Prüfung der if Schleife benötigt.

if ($x==$row['tag'] AND $month==$row['monat'] AND $year==$row['jahr']){ //hier wird $row benötigt

echo '<td class="belegt">'.$x.'</td>';

$y++;

$row = mysql_fetch_assoc($query2); //in der schleife soll $row aber einen neuen Wert annehmen, der dann eben oben bei dem if also ausserhalb der schleife benötigt wird.

}

Eventuell kann ich das Gesamtproblem so noch verdeutlich:

Mein ziel ist es, das $row so lange gleich bleibt bis es mit der if Prüfung übereinstimmt. Erst wenn das if true ist, soll $row geändert werden, und die nächsten Werte aus der Mysql DB annehmen.

Problem ist mittlerweile gelöst. Lag aber an etwas anderem..

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.