Zobacz pełną wersję : Użytkownik Joomla w MySQL
Witam,
Czy zna ktoś sposób na odczytanie użytkownika joomla z poziomu MySQL? np. zeby odfiltrować dane należące do danego użytkownika (tabela lub widok zawiera kolumnę user_id).
Cały myk polega na tym aby zrobić to z bazy danych (bezpośrednio w zapytaniu)... bo dane są wyświetlane przez komponent utworzony na stronie component-create.com, czyli nie mamy możliwości ręcznego wprowadzenia warunku where, można natomiast wyświetlić widok z bazy danych)
??
Tomek
uruchamiasz phpMyAdmin i przeglądasz tabelkę USER
No i co mi to da/co takiego fajnego odczytam z tabeli user?
na przykład:
CREATE VIEW
moj_widok AS
SELECT
przedrostek_users.id, przedrostek_users.name, przedrostek_categories.title AS cat_title, przedrostek_content.title AS title
FROM
przedrostek_content, przedrostek_users, przedrostek_categories
WHERE
(przedrostek_users.id = 105)
AND (przedrostek_content.created_by = przedrostek_users.id)
AND (przedrostek_categories.id = przedrostek_content.catid)
a później:
SELECT * FROM testowa.moj_widok;
wystąpiło małe (duze) nie zrozumienie, nie chce listy użytkowników tylko user_id użytkownika który aktualnie korzysta z bazy danych z poziomu sesji w mysql tego użytkownika...;),
czyli np. jest user = tomek, user_id = 10, i teraz chce wykorzystać w zapytaniu ktore on sam wyświetla dla siebie, cos w stylu: select rok, miesiac, pensja from place where user_id = current_joomla_user_id(); i brakuje mi tego currrent_joomla_user_id, nie wiem moze na podstawie session_id, lub jakiegos dodatku do joomli....
coś kombinujesz...
$user = JFactory::getUser();
$jakis_id = $user->id;
nic nie kombinuje, po prostu korzystam z buildera komponentów (create-component.com), i tam nie mam możliwości składania selekta po stronie PHP... więc potrzebuję tą informację po stronie MySQL a nie po stronie serwera PHP...jasne?:D
korzystam z buildera komponentów w skrócie kombinujesz :P
Jak nie ma możliwości to sobie dopisz z 'ręki'.
Odnośnie sesji mysql...
SELECT CONNECTION_ID();
Nawet to Ci nie pomoże, przecież nie niesie to żadnych informacji o zawartości przesyłanych informacji baza-klient... do tego zmienia się co odświeżenie strony:
<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "moja_testowa";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT connection_id() as id";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"];
}
$conn->close();
?>
odświeżasz i już się 'cyferki' zmieniają.
Jest jeszcze takie (http://stackoverflow.com/questions/9279558/php-querying-session-id-inside-a-database) coś... powodzenia :P
btw. co to za builder ubogi...
jeśli po connection_id dojdę do joomla_user_id to będzie git... ale nie dojdę, bo w joomla_users nie ma aktualnego połączenia connection_id.
Komponenty, no cóż, na razie najlepiej zrealizowane jeśli chodzi o możliwość dodawania rekordów/edycji po stronie front End, oraz łatwego filtrowania.
Czyli dalej lipa... jeszcze raz: potrzebuje to po stronie MySQL a nie PHP!!!!!
Tomek
Ale chyba efektem jest kod php... ?
Takie masz rozwiązania jakich narzędzi używasz, raczej tego nie przeskoczymy.
czego nie przeskoczymy? wszystko kwestia wiedzy i doświadczenia.... jak ktoś wie jak to zrobić to niech pisze, a jak ktoś nie wie to niech nie pisze;) - proste.
vBulletin® v4.2.5, Prawa przedruku © 2024 vBulletin Solutions, Inc. Wszystkie prawa zastrzeżone.
Tłumaczenie: Polskie Centrum Joomla!