Ergebnis einer Abfrage erst nach Aktualisierung

Guten Morgen Forum,

zu meinem Problem:

AUSGANGSSITUATION:
Ich habe ein Modulares Menü, welches über ein Berechtigungskonzept aufgebaut wird. Der Aufbau des Menüs wird also über mein Berechtigungskonzept gesteuert.
Mit anderen Worten…nur wer eine bestimmte Funktion bestellt, der bekommt den entsprechenden Menüpunkt angezeigt.

PROBLEMSTELLUNG:
Es werden für den Aufbau des Menüs zwei Abfragen gestartet.

1.) Eine Abfrage holt sich das Standardmenü (wird immer angezeigt) aus der MySQL Datenbank.

2.) Die andere Abfrage schaut nach, ob in einem Tabellenfeld „aktiv_nicht_aktiv“ das „Aktiv-Kennzeichen“ (aktiv) gesetzt ist.

Wenn ja, dann wird das entsprechende Menümodul geladen und der Menüpunkt wird angezeigt.

FEHLER:

Die Abfrage 1.) wird ganz normal geladen und zeigt auch alle Standardmenüpunkte an.

Die Abfrage 2.) wird erst nach Aktualisierung des Browsers gestartet. Vorher wird das entsprechende Menü-Modul nicht geladen.

ZIEL:

Ich möchte, dass beide Abfragen geladen werden und das Gesamtergebnis angezeigt wird.

CODEAUSCHNITT:

$mod_query = „SELECT a.hauptmenue , a.untermenue , a.aktiv_nicht_aktiv , b.rechnungsmodul FROM menue as a, users as b WHERE a.aktiv_nicht_aktiv = b.rechnungsmodul AND b.kgsdb_kunde = '“.$_SESSION[‚kgsdb_kunde‘]."’ LIMIT 0, 1";
$mod_res = mysql_query($mod_query);
$count = mysql_num_rows($mod_res);

$sql = „SELECT menuename, hauptmenue, untermenue, aktiv_nicht_aktiv FROM menue WHERE aktiv_nicht_aktiv=‚Standard‘“;
$result = mysql_query($sql);

<?php while ($standardmenue = mysql_fetch_array($result)) {
echo $standardmenue['hauptmenue']; echo $standardmenue['untermenue']; } if ($\_GET['rel\_site']) { echo "Anzahl Menues ".$count; } else { } while ($module = mysql\_fetch\_array($mod\_res)) { echo $module['hauptmenue']; echo $module['untermenue']; } ?\>- [Programm](%23) - [Benutzerverwaltung](../register/index.php) - [Optionen](../control/configuration/config.php) - [Abmelden](../control/logout.php) Hat jemand eine Idee, warum die zweite Abfrage nicht beim Öffnen der Seite geladen wird? Wo liegt hier das Problem? Besten Dank im Voraus! Grüße aus Köln, Laurenzo

Hallo Laurenzo,

kann es sein das du beim ersten Aufruf keinen GET parameter übergibst auf den du dich im Script beziehst?

if ($_GET[‚rel_site‘]) {

Hi!

Vielen Dank für Deinen Beitrag.
Leider war das aber nicht die Antwort auf meine Frage. :frowning:

Die „If-Verzweigung“ habe ich zum Versuch eingebaut. Die gehört aber nicht dorthin.

Ich hatte nur vergessen sie aus meinem Code zu werfen.

Meine Frage bezog sich auf die Querys.

Viele Grüße,

Laurenzo

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

du greifst auf in der ersten SQL Abfrage auf die Variable $_SESSION[‚kgsdb_kunde‘] zu.

ich geh jetzt einfach mal davon aus das die Variable beim ersten aufruf gesetzt wird und daher erst ab dem 2. aufruf einen wert liefert so das ein ergebnis zurück gegeben wird.

Gruß

Hi!

Vielen Dank für den Hinweis. Das stimmt.
Da die Seite mit dem Menü gleich nach dem Login erscheint und die Session-Variablen beim Login gesetzt werden, wird der Wert von „kgsdb_kunde“ nach Überprüfung in der Datenbank aus der Datenbank geholt in die Session-Variable gesetzt. Daher wird die erste Abfrage nicht direkt ausgeführt.

Das hieße doch ich muß die Menüseite aktualisieren, oder?

Wie mache ich das am besten? Ich hatte schon zuvor so einiges mit PHP und Javascript probiert.

Daher auch die if ($_GET[]…) Struktur.
Mit javascript hatte ich zuvor folgendes Probiert:

function rel() {
window.document.reload();
}

Da der $count (php) aus der Query beim Laden den Wert „0“ hat, dacht ich mir, ich frage diesen in einer if-Struktur auf „0“ ab und mache einen javascript reload. Leider funktioniert das auch nicht, da sich die Seite immer wieder durch den Reload neu öffnet und die Funktion rel() immer wieder neu aufgerufen wird. Daher gerate ich sozusagen in einen Todeskreis…einer Schleife.

Hat jemand ne Idee, wie man dieses problem lösen könnte?

Danke und Gruß,

Laurenzo

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Laurenzo,

es liegt doch nahe, das ein Problem seinen Ursprung in der Planung deines Scriptes hat.

Ich rate dir einfach dein Script so um zu bauen das dein Select erst nach dem setzen der Variablen ausgeführt wird. Denn nur so ist es richtig, alles andere , reloads, weiterleitungen sind nur schlechte Lösungen für einen nicht durchdachten Ablauf eines Scripts.