Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Powtarzający się dane !
dudi88
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 20.04.2012

Ostrzeżenie: (0%)
-----


Witam,

Mam pewien problem odnośnie bazy danych i wyśietlania sie 33 razy danego słowa zamiast raz na stronie.

Otóż mam taki plik PHP:


CODE
<?php

$db =& JFactory::getDBO();
$user =& JFactory::getUser();

$query = "SELECT usertype"
. " FROM #__session"
. " WHERE (usertype = 'Super Administrator') OR (usertype = 'Administrator') OR (usertype = 'Manager')"
. $and
. " ORDER BY usertype"
;
$db->setQuery( $query );
$rows = $db->loadObjectList();

require( dirname( __FILE__ ).DS.'tmpl'.DS.'default.php' );


który pobiera z bazy dany rekord zależny od tego kto się rejsetruje na zaplecze i wyswietla go na stronie, jednakże niesety dubluje go wielerazy.

Czyli ma być tak:
Administrator loguje się na zaplecze i na stronie w zapleczu ma być Super Administrator w ilości jednej a wysakuje w ilośći 33 razy.

Tutaj podaję inny plik odpowiedzialny za wyświetlanie na stronie:

CODE
<?php
/** $Id: default.php 10381 2008-06-01 03:35:53Z pasamio $ */
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<?php
foreach ($rows as $row) :
$auth = $user->authorize( 'com_users', 'manage' );
?>
<?php echo JText::_( 'Admin Welcome' );

echo "&nbsp", $row->usertype;
echo "<br />";

?>
<?php
endforeach;
?>
<?php echo JHTML::_( 'form.token' ); ?>




Prosze o pomoc jak wyświtlić danego użytkownika który loguje się na zapleczu tylko raz a nie w ilości np. 33 razy.

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dudi88
post
Post #2





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 20.04.2012

Ostrzeżenie: (0%)
-----


Napiszę od początku dla lepszego zrozumienia sprawy.

Po zalogowaniu się konkretnej osoby do zaplecza, której został przydzielony określnoy status podczas rejestracji, pojawia się dla niej taki napis w zależności od użytkownika w określonym okienku:

Super Administrator - jest to główny Adminsitator zaplecza,
Administrator - jest w hierarchi niżej niż Super Administrator,
Manager - użytkownik o najniższym statusie, który ma zdolność do logowania się do zaplecza.

Moduł, który służy wyświetalniu powyższych uztkowników w okienku to plik mod_userdata.php o zawartości:

CODE
<?php

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

jimport('arttechnology.html.pagination');

$db =& JFactory::getDBO();
$user =& JFactory::getUser();

$query = "SELECT usertype"
. " FROM #__session"
. " WHERE (usertype = 'Super Administrator') OR (usertype = 'Administrator') OR (usertype = 'Manager')"
. $and
. " ORDER BY usertype"
;
$db->setQuery( $query );
$rows = $db->loadObjectList();

require( dirname( __FILE__ ).DS.'tmpl'.DS.'default.php' );


oraz plik o nazwie default.php o zawartości:

CODE
<?php
/** $Id: default.php 10381 2008-06-01 03:35:53Z pasamio $ */
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<?php
foreach ($rows as $row) :
$auth = $user->authorize( 'com_users', 'manage' );
?>
<?php echo JText::_( 'Admin Welcome' );

echo "&nbsp", $row->usertype;
echo "<br />";

?>
<?php
endforeach;
?>
<?php echo JHTML::_( 'form.token' ); ?>



Struktura bazy danych ma takie wartości jak:

Nazwa tabeli: session

Nazwy rekordów w tabeli:

username | time | session_id | guest | userid | usertype | gid | client_id | data

I teraz z rekordu usertpye chcę wyciągać dane nazwy użytkownika, który się zalogował na zapleczu. Jego nazwa ma być widoczna w specjalnym okienku w zapleczu.


Obecnie wyświetlają mi się prawidłowe dane uzytkownika które mu zostały przydzielone po zalogowaniu sie na zapleczu, ale niestety duplikują się 32 razy (w sumie wyświetla się 33 razy nazwa tylko jednego uzytkownika, dlaczego?).

Chciałbym jeszcze zaznaczyć, że posiadam w pliku sql, który zostaje wgrywany do bazy danych podczas instalacji CMSa o takich danych:

CODE
INSERT INTO `#__core_acl_aro_groups` VALUES (23,30,'Manager',14,19,'Manager');
INSERT INTO `#__core_acl_aro_groups` VALUES (24,23,'Administrator',15,18,'Administrator');
INSERT INTO `#__core_acl_aro_groups` VALUES (25,24,'Super Administrator',16,17,'Super Administrator');


Prosze spojrzeć co mnie nie pokoi i czy to ma zwiazek z tym duplikowaniem nazw uzytkowników.
Otóż w pomiędzy nazwami uzytkowników są przydzielone liczby, które w sumie dają wartość liczbową 33 !

Czy to ma jakiś zwiazek z tym, że wyśtwietla mi się w zapleczu 33 razy nazwa jednego uzytkownika ?

Prosze o odpowiedz.

Z góry dziękuję.

Ten post edytował dudi88 20.04.2012, 15:45:30
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 12:22