meerdere rijen in 1rij

Status
Niet open voor verdere reacties.

alain1988

Terugkerende gebruiker
Lid geworden
29 jan 2010
Berichten
1.175
Beste

ik wil het volgende doen

naam|voornaam laten weergeven van gebruikersnaam hoe doe ik dit ?

dus

bv
naam|voornaam
bert | dummyaccount
zou moeten worden bertdummyaccount eventueel met een puntje maar dat bekijk ik dan later wel
 
Laatst bewerkt:
Je kunt gebruik maken van de concat functie:

Select concat(cultureID + '--', name) from Production.Culture

Je ziet dat je de 2 waarden kunt scheiden door +'--'

Daarnaast kun je ook een simpele select doen:

select cultureID + '--' + name from Production.Culture

Let wel: Alleen varchar/char waarden gebruiken. Indien je een integer of numeric veld gebruikt moet je deze casten/converteren naar varchar.

succes.
 
ok even uitgeprobeerd maar in mijn opzicht werkt dit niet ,
SELECT concat (`naam`+'--',`voornaam`)from bib.users dit is sql commando dat ik hebt uitgeveoerd en dit is het resultaat

concat (`naam`+'--',`voornaam`)
0alain
0user

voornaam word niet getoond en er word een getal voor geplaats wat me wel opvalt hij voornaam wel neemt en naam zelf niet ..
 
ok ik heb even zelf concat uitgeprobeer en heb het volgende al bekomen
select concat(naam,'.',voornaam) as username from users

dan krijg ik de volledige naam van de gebruiker met . als scheidings teken nu bijkomende vraag hoe kan ik ook de id , en passwoord indezelfde query laten opzoeken niet indezelfde rij dus

<update>
ondertussen ook al gevonden maar heb er mij twijfels over of dit de goede manier is

SELECT user_id,password, concat(naam,'.',voornaam)as username from users
</update>
 
Laatst bewerkt:
Dat ziet er prima uit hoor, als het werkt dan is het goed :)

Hou er wel rekening mee dat je met deze query alle gebruikers ophaalt die in de database staan.
Als je wilt filteren op 1 user_id moet je er nog achterzetten WHERE user_id = (vul hier de id die je wilt zoeken in)
 
Laatst bewerkt:
beste is er nog een andere manier om dit te doen want blijbaar heeft dit problemen met de inlog procedure

we gebruiken nu het volgende SELECT PersNr,Geboortedatum,CONCAT(naam,'.',voornaam) FROM kurt.pers
als we dit implementeren in de login procedure krijgen we het volgende 'Table kurt.login does not exists'

of is er een mogelijk heid om bv alle gegevens van uit de tabel Pers om te zetten naar bijvoorbeeld een login tabel

dus van
|persnr|naam|voornaam|geboortedatum| ====waarden persnr|voornaam.naam&geboortedatum===>>tbl_login |voornaam|naam|geboortedatum|persnr|
 
Ik kan zo te weinig zien van de achterliggende tabellen en code die je gebruikt hebt om te begrijpen wat je precies bedoelt.
Haal je deze waarden uit 1 tabel of uit meerdere tabellen?
Als je data uit meerdere tabellen wilt halen moet daar een join voor gebruikt worden. hier kan je meer informatie vinden over de mogelijkheden daar van.
 
De gegevens worden allemaal uit dezelfde tabel uitgeladen we gingen concat gebruiken om naam.voornaam te gaan gebruiken maar blijkbaar geeft dit problemen tijdens de login procedure ik zal de code opvragen van het login bestand en dezedan hier ook posten
authorisation.php
Code:
<?php

require_once 'phpgen_settings.php';
require_once 'components/security/security_info.php';
require_once 'components/security/datasource_security_info.php';
require_once 'components/security/tablebased_auth.php';
require_once 'components/security/user_grants_manager.php';
require_once 'components/security/table_based_user_grants_manager.php';

require_once 'database_engine/mysql_engine.php';

$grants = array('guest' => 
        array()
    ,
    'defaultUser' => 
        array('login' => new DataSourceSecurityInfo(false, false, false, false),
        'Query01' => new DataSourceSecurityInfo(false, false, false, false))
    ,
    'guest' => 
        array('login' => new DataSourceSecurityInfo(false, false, false, false),
        'Query01' => new DataSourceSecurityInfo(false, false, false, false))
    );

$appGrants = array('guest' => new DataSourceSecurityInfo(false, false, false, false),
    'defaultUser' => new DataSourceSecurityInfo(true, false, false, false),
    'guest' => new DataSourceSecurityInfo(false, false, false, false));

$dataSourceRecordPermissions = array('Pers' => new DataSourceRecordPermission('PersNr', false, false, false, false, false, false),
  'Query01' => new DataSourceRecordPermission('PersNr', false, false, false, false, false, false));

$tableCaptions = array('login' => 'login',
'Query01' => 'Query01');

function CreateTableBasedGrantsManager()
{
    return null;
}

function SetUpUserAuthorization()
{
    global $grants;
    global $appGrants;
    global $dataSourceRecordPermissions;
    $hardCodedGrantsManager = new HardCodedUserGrantsManager($grants, $appGrants);
$tableBasedGrantsManager = CreateTableBasedGrantsManager();
$grantsManager = new CompositeGrantsManager();
$grantsManager->AddGrantsManager($hardCodedGrantsManager);
if (!is_null($tableBasedGrantsManager))
    $grantsManager->AddGrantsManager($tableBasedGrantsManager);
$userAuthorizationStrategy = new TableBasedUserAuthorization(new MyConnectionFactory(), GetGlobalConnectionOptions(), 'login', 'gebruikersnaam', 'PersNr', $grantsManager);
    GetApplication()->SetUserAuthorizationStrategy($userAuthorizationStrategy);

GetApplication()->SetDataSourceRecordPermissionRetrieveStrategy(
    new HardCodedDataSourceRecordPermissionRetrieveStrategy($dataSourceRecordPermissions));
}

function GetIdentityCheckStrategy()
{
    return new TableBasedIdentityCheckStrategy(new MyConnectionFactory(), GetGlobalConnectionOptions(), 'login', 'gebruikersnaam', 'Geboortedatum', ENCRYPTION_NONE);
}

?>
login.php
Code:
<?php

    require_once 'components/utils/check_utils.php';
    CheckPHPVersion();


    require_once 'components/page.php';
    require_once 'components/renderers/renderer.php';
    require_once 'components/renderers/list_renderer.php';
    require_once 'authorization.php';
    require_once 'phpgen_settings.php';
    require_once 'database_engine/mysql_engine.php';

    function GetConnectionOptions()
    {
        $result = GetGlobalConnectionOptions();
        $result['client_encoding'] = 'utf8';
        return $result;
    }

    class LoginControl
    {
        private $identityCheckStrategy;
        private $urlToRedirectAfterLogin;
        private $errorMessage;
        private $lastUserName;
        private $lastSaveidentity;
        private $loginAsGuestLink;

        public function __construct($identityCheckStrategy, $urlToRedirectAfterLogin)
        {
            $this->identityCheckStrategy = $identityCheckStrategy;
            $this->urlToRedirectAfterLogin = $urlToRedirectAfterLogin;
            $this->errorMessage = '';
            $this->lastSaveidentity = false;
        }

        public function Accept($renderer)
        {
            $renderer->RenderLoginControl($this);
        }

        public function GetErrorMessage() { return $this->errorMessage; }

        public function GetLastUserName() { return $this->lastUserName; }
        public function GetLastSaveidentity() { return $this->lastSaveidentity; }
        public function CanLoginAsGuest() { return false; }
        
        public function GetLoginAsGuestLink() 
        { 
            $pageInfos = GetPageInfos();
            foreach($pageInfos as $pageInfo)
            {
                if (GetApplication()->GetUserRoles('guest', $pageInfo['name'])->HasViewGrant())
                {   
                    return $pageInfo['filename'];
                }
            }
            return $this->urlToRedirectAfterLogin; 
        }

        public function CheckUsernameAndPassword($username, $password, &$errorMessage)
        {
            try
            {
                return $this->identityCheckStrategy->CheckUsernameAndPassword($username, $password, $errorMessage);
            }
            catch(Exception $e)
            {
                $errorMessage = $e->getMessage();
                return false;
            }
        }

        public function SaveUserIdentity($username, $password, $saveidentity)
        {
            $expire = $saveidentity ? time() + 3600 * 24 * 365 : 0;
            setcookie('username', $username, $expire);
            setcookie('password', $password, $expire);
        }

        public function ClearUserIdentity()
        {
            setcookie('username', '', time() - 3600);
            setcookie('password', '', time() - 3600);
        }

        private function DoOnAfterLogin($userName)
        {
            $connectionFactory = new MyConnectionFactory();
            $connection = $connectionFactory->CreateConnection(GetConnectionOptions());
            $connection->Connect();

            $this->OnAfterLogin($userName, $connection);

            $connection->Disconnect();
        }

        private function OnAfterLogin($userName, $connection)
        {

        }

        private function GetUrlToRedirectAfterLogin()
        {
            $pageInfos = GetPageInfos();
            foreach($pageInfos as $pageInfo)
            {
                if (GetCurrentUserGrantForDataSource($pageInfo['name'])->HasViewGrant())
                {   
                    return $pageInfo['filename'];
                }
            }
            return $this->urlToRedirectAfterLogin;
        }
        
        public function ProcessMessages()
        {
            if (isset($_GET[OPERATION_PARAMNAME]) && $_GET[OPERATION_PARAMNAME] == 'logout')
            {
                $this->ClearUserIdentity();
            }
            elseif (isset($_COOKIE['username']) && isset($_COOKIE['password']) && !(isset($_POST['username']) && isset($_POST['password'])))
            {
                /*$username = $_COOKIE['username'];
                $password = $_COOKIE['password'];

                if ($this->CheckUsernameAndPassword($username, $password, $this->errorMessage))
                {
                    header('Location: ' . $this->urlToRedirectAfterLogin );
                }
                else
                {
                }*/
            }
            elseif (isset($_POST['username']) && isset($_POST['password']))
            {
                $username = $_POST['username'];
                $password = $_POST['password'];
                $saveidentity = isset($_POST['saveidentity']);

                if ($this->CheckUsernameAndPassword($username, $password, $this->errorMessage))
                {
                    $this->SaveUserIdentity($username, $password, $saveidentity);
                    SetCurrentUser($username);
                    $this->DoOnAfterLogin($username);
                    header('Location: ' . $this->GetUrlToRedirectAfterLogin() );
                    exit;
                }
                else
                {
                    $this->lastUserName = $username;
                    $this->lastSaveidentity = $saveidentity;
                }
            }
        }
    }

    class LoginPage extends CustomLoginPage
    {
        private $loginControl;
        private $renderer;
        private $header;
        private $footer;

        public function __construct($loginControl)
        {
            parent::__construct();
            $this->loginControl = $loginControl;
            $this->renderer = new ViewAllRenderer(GetCaptions('UTF-8'));
        }

        public function GetLoginControl()
        {
            return $this->loginControl;
        }

        public function Accept($renderer)
        {
            $renderer->RenderLoginPage($this);
        }

        public function GetContentEncoding() { return 'UTF-8'; }
        
        public function GetCaption() { return 'Login'; }
        
        public function SetHeader($value) { $this->header = $value; }
        public function GetHeader() { return $this->RenderText($this->header); }
        
        public function SetFooter($value) { $this->footer = $value; }
        public function GetFooter() { return $this->RenderText($this->footer); }

        public function BeginRender()
        {
            $this->loginControl->ProcessMessages();
        }

        public function EndRender()
        {
            echo $this->renderer->Render($this);
        }
    }

    $loginPage = new LoginPage(
        new LoginControl(
            GetIdentityCheckStrategy(),
            'login.php'));

    SetUpUserAuthorization();

    $loginPage->SetHeader(GetPagesHeader());
    $loginPage->SetFooter(GetPagesFooter());
    $loginPage->BeginRender();
    $loginPage->BeginRender();
    $loginPage->EndRender();
?>

dit zijn de php files die ik ontvangen heb

login.png dit is een screen van de fout
 
Laatst bewerkt:
Ik zie hier in de code niet waar je query wordt uitgevoert.
Het lijkt er op dat dit in andere bestanden gebeurt.
Ik vermoed dat de fout ligt in de mysql_engine.php, of anders heb ik te weinig ervaring met werken met classes in PHP om je te kunnen helpen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan