Nur die Daten des gerade eingeloggten Users zeigen

julia29

Erfahrenes Mitglied
Der eingeloggte User soll nur seine Daten aus einer MySQL-Tabelle mit sonstigen Einträgen von diversen Usern sehen.
Es ist also die Form der Abfrage wenn ich die php-Liste aufrufe. Ich bekomme zwar eine Ergebnisliste mit hartcodierter, aber keine aktuelle User_id in meine Abfrage eingebunden.

Alle User werden in der Tabelle "jos_users" aufgeführt
Alle Daten werden in der von mir erstellten Tabelle "a_order" aufgeführt
PHP:
#$a_id = mysql_escape_string($_GET['jos_users.id']);
$a_id = '77';

$abfrage = "SELECT `jos_users`.*, `a_order`.*
FROM jos_users
LEFT JOIN `a_order` ON `jos_users`.`id` = `a_order`.`kd_id5`
WHERE `jos_users`.`id` = '{$a_id}'
ORDER BY ID5 LIMIT $start, $eintraege_pro_seite";

Mit der ersten Zeile, mit dem Kommentarzeichen, wird nichts gefunden, die Liste bleibt leer.
Mit der 2. Zeile $a_id = '77'; funktioniert es. Die Daten des Users mit der id 77 werden angezeigt und aufgelistet.
Wie muss ich meine Abfrage schreiben wenn die ID automatisch übergegeben werden soll?

mfg
Julia
 
Das $_GET auf ein Array zugreift was dem Script per URL-Parameter übergeben wurde, weisst du?

Es scheint mir fast nicht so.

Versuch mal die Seite mit deinem Script so aufzurufen:

http://www.deinurl.de/deineseite.php?jos_users.id=77

Ich behaupte einfach mal das es dann funktioniert.

Wenn dem so ist dann ist dein eigentliches Problem nicht die Abfrage sondern viel mehr das ermitteln der jweiligen user ID
 
Das $_GET auf ein Array zugreift was dem Script per URL-Parameter übergeben wurde, weisst du?

Es scheint mir fast nicht so.

Versuch mal die Seite mit deinem Script so aufzurufen:

http://www.deinurl.de/deineseite.php?jos_users.id=77

Ich behaupte einfach mal das es dann funktioniert.

Wenn dem so ist dann ist dein eigentliches Problem nicht die Abfrage sondern viel mehr das ermitteln der jweiligen user ID

Ja, funktioniert.
Hatte ich doch auch geschrieben, die Abfrage funktioniert, wenn ich z.B. eine ID fest eintrage.
Meine Frage war ja auch mehr, wie kann ich die aktuelle ID ermitteln und in meine Abfrage intigrieren?
 
Zuletzt bearbeitet:
Dann hab ich dich Falsch verstanden sorry.

Kann es sein das du mit Joomla arbeitest?

Falls ja wird die ID entweder in der SESSION übergeben oder du schaust dir folgendes mal an
http://docs.joomla.org/JFactory/getUser

Hi,
die Klasse JFactory::getUser()
läuft bei mir nicht (Joomla1.5) vermutlich muss ich die extra installieren.

Aber wie komme ich an die richtige SESSION ran?
Die müßte doch in einer php-Datei verwendet werden. Wo kann ich die finden bzw. welche ist das?
 
Nein extra Installieren musst du nichts, das ist eine Joomla integrierte standard Klasse.

Habs grade mal schnell mit joomla 1.5.14 getestet
PHP:
$user =& JFactory::getUser();
$usr_id = $user->get('id');

echo $usr_id;

Es ergibt halt logischerweise 0 für jeden nicht angemeldeten Benutzer

In der SESSION steht genau das gleiche weil die sich ja aus den anderen "Angaben" zusammensetzt.

Kannst du dir so anschauen:
PHP:
print_r($_SESSION);
 
ich habe es mit Version 1.5.10 versucht.
Ergebnis:
Fatal error: Class 'JFactory' not found in /var/www/web...............

Es kann natürlich sein weil ich die PHP-Datei für meine Liste als Wrapper eingebunden habe und Joomla deshalb das externe Dokument mit der Joomla Klasse nicht erkennen kann.
Wüßte auch nicht wie ich außer dem Wrapper noch php-Dateien einbinden könnte.

Die print_r($_SESSION); zeigt mir immer das Ergebnis "1",
egal auch wenn wenn mehrere andere User die Liste aufrufen, bleibt immer mit "1" stehen.

Weiß momentan nicht so richtig weiter, wollte eigentlich nur eine Liste mit vielen SQL-Einträgen im Benutzermenü in Form einer php-Liste einbinden und je nachdem welcher Benutzer gerade sich eingeloggt hat, eben nur die Daten für diesen Benutzer gesucht und angezeigt werden.
Eigentlich sollte dies keine große Sache sein. Gibt es noch eine andere Möglichkeit?
Danke schon mal für die Hilfe.
mfg
julia
 
Zurück