PDA

Zobacz pełną wersję : Użytkownik Joomla w MySQL



tdobe
16-06-2016, 13:57
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

qrdziel
16-06-2016, 20:23
uruchamiasz phpMyAdmin i przeglądasz tabelkę USER

tdobe
17-06-2016, 00:40
No i co mi to da/co takiego fajnego odczytam z tabeli user?

Yild
17-06-2016, 07:13
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;

tdobe
17-06-2016, 08:35
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....

Yild
17-06-2016, 09:05
coś kombinujesz...



$user = JFactory::getUser();
$jakis_id = $user->id;

tdobe
17-06-2016, 09:19
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

Yild
17-06-2016, 10:13
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...

tdobe
17-06-2016, 11:27
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

Yild
17-06-2016, 11:49
Ale chyba efektem jest kod php... ?

Takie masz rozwiązania jakich narzędzi używasz, raczej tego nie przeskoczymy.

tdobe
17-06-2016, 11:51
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.