Autor Zpráva
peter_r
Profil
Zdravím. Prosím poradiť s php a databázou, som samouk začiatočník a pomaly sa učím cez internetové stránky a knihy o php, len som sa dostal do mŕtveho bodu.

Mám vytvorenú tabuľku a v tomto výpise je zoznam zamestnancov (iba mien) zoradený podľa abecedy:

<?php
        
        require_once('db.php');            
        Db::connect('127.0.0.1', 'tabulka', 'root', '');
        
                
        $matrace = Db::queryAll('
            SELECT *
            FROM zamestnanci
            ORDER BY meno
        ');
        echo('<h2>Zamestnanci</h2>');
        foreach ($zamestnanci as $u)
        {
            echo( htmlspecialchars($u['meno']));
            echo('<br>');
        }
        
        
        ?>

Potrebujem ale urobiť aby po kliknutí na meno zamestnanca sa otvorila nová stránka a v nej výpis ostatných info ktoré mám definované v tabuľke (napr. dátum, pozícia, plat a podobne). Čiže prosím najskôr o radu ako urobiť v hornom php odkaz a href, napríklad na stránku s názvom list.php. Samozrejme každý zamestnanec má svoje ID. A v tom list.php výpis spomínaných údajov napríklad každý údaj do nového riadku. Veľmi pekne ďakujem.
Kajman
Profil
echo( "<a href=\"list.php?user_id=".$u['id']."\">".htmlspecialchars($u['meno'])."</a>");


V tom dalším skriptu bude předaná proměnná v $_GET["user_id"] a můžete je použít pro omezení při získávání dat.
'... FROM zamestnanci WHERE id=' .intval($_GET["user_id"])
Ale lepší je použít parametry dotazu tak, jak je doporučené u databázového layeru, který používáte, než to takto sestavovat a escapovat sám.
peter_r
Profil
peter_r, Kajman:
Ďakujem veľmi pekne. Odskúšam a dúfam že to nedomocem.
peter_r
Profil
Kajman:

takže tá prvá časť je OK ale v tom druhom skripte mi vypisuje chybu:

Parse error: syntax error, unexpected ''); ' (T_CONSTANT_ENCAPSED_STRING), expecting ')' in C:\xampp\htdocs\materasso\list.php on line 21

kód je takýto:

<?php
        
        require_once('db.php');            
        Db::connect('127.0.0.1', 'zamestnanci', 'root', '');
        
                
        $zamestnanci = Db::queryAll('
            SELECT *
            FROM zamestnanci WHERE id=' .intval($_GET["user_id"])
        ');
        echo('<h2>Zamestnanci</h2>');
        foreach ($zamestnanci as $u)
        {
            echo( htmlspecialchars($u['id']));
            echo('<br>');
            echo( htmlspecialchars($u['meno']));
            echo('<br>');
            echo( htmlspecialchars($u['vek']));
            echo('<br>');
            echo( htmlspecialchars($u['plat']));
            echo('<br>');
        }
        
        
        ?>

a riadok 21 je echo('<h2>Zamestnanci</h2>');
Kajman
Profil
Na konci předchozího řådku přebývå apostrof. Je to vidět i podle barev v kódu.
peter_r
Profil
myslel som že tam chýba apostrof, ako som písal, som len začiatočník

ďakujem, už to funguje

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0