PDA

Zobacz pełną wersję : Wyświetlanie wpisów z bazy przypisanych do danego użytkownika



morphic
19-11-2013, 18:58
Witajcie,

Mam pytanie jak wyświetlić wpisy przypisane w bazie do konkretnego użytkownika?

Czy robić to już w zapytaniu do bazy?

Mój kod modelu wygląda w ten sposób


<?phpdefined('_JEXEC') or die('Restricted access');
jimport('joomla.application.component.modellist');
$user =&JFactory::getUser();
$username = $user->get('username');


class InvoicesModelList extends JModelList{ public function getListQuery() { $query = parent::getListQuery(); $query->select('*') ->from('#__fv_faktura'); ->where knt_email LIKE $username ; return $query; }}

?>

Zmienną username jest wywoływana zmienna sesyjna login. I efekt, który chcę osiągnąć to wyświetlenie faktur tylko dla danego użytkownika.

No i chyba gdzieś coś skiepściłem bo wywala mi błąd jakkolwiek tego nie piszę.

Proszę o pomoc bo do piątku na zalkę to potrzebuję.

Jola
19-11-2013, 19:10
Witam,
1. sklejone php z defined
2. LIKE bierze się w apostrofy
3. co to jest ??

->where knt_email LIKE $username ;

morphic
19-11-2013, 19:15
Cześć Jolu,

Dzięki za odpowiedź

ad.1. Ale, że co sklejone z phpdefined? AAA, już wiem o co CI chodziło, przekleiłem z Notepad++ i nie ma Enterów. W kodzie mam oddzielnie
ad.2. OK. A czy przy apostrofach mają być kropki? Znaczy coś takiego ."LIKE". ?
ad.3. Pole knt_email jest czysto przypadkowe i zawiera się w nim login czyli username. Próbowałem już dawać knt_email=$username i też wywalało błąd.

Jola
19-11-2013, 19:41
Bez testów
<?php
defined('_JEXEC') or die('Restricted access');

jimport('joomla.application.component.modellist');

class InvoicesModelList extends JModelList{
public function getListQuery() {
$user =&JFactory::getUser();
$username = $user->get('username');
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*');
$query->from('#__fv_faktura');
$query->where('knt_email LIKE "%'.$username.'%"');
return $query;
}
}
?>

morphic
19-11-2013, 19:56
No przestało mi wywalać błędy.

Śliczne dzięki za pomoc :* i idę rzeźbić dalej.

- - - Updated - - -

No i pojawił się kolejny problem niestety.

Jak w to zapytanie wpleść coś takiego?

REGEXP '^'+knt_email+'-'

Jola
19-11-2013, 21:48
Nie przesadzaj - nie wiem o co Ci chodzi ale rozwiązaniem jest hasło w Googlach: mysql regex

morphic
19-11-2013, 23:37
Nie przesadzaj - nie wiem o co Ci chodzi ale rozwiązaniem jest hasło w Googlach: mysql regex

Generalnie chodzi mi o to, żeby skrócić pobieraną ilość znaków z loginu do znaku - . Bo zdarza się, że dla jednej firmy jest parę loginów na zasadzie 10-1, 10-2 a mnie chodzi, żeby odczytywał dla 10 dla obu userów.

KES
20-11-2013, 00:00
Jeżeli username to "loginy na zasadzie 10-1, 10-2" to aby to przerobić na np. 10:


$int = (int) $username;


i co w sumie ma wspólnego z Joomla to raczej na forum PHP powinieneś się wybrać.