Autor Zpráva
B1abla
Profil
Ahoj, řeším problém:

,mám tabulku kde jsou založené turnaje (id, datum, čas začátku, status) ,když vypíši na stránku turnaje, např. mám 5 turnajů z toho jsou 2 do kterých se můžou registrovaní uživatelé přihlásit, vytvoří se něco takového:

id--datum--------čas------status

1--22.10.2012--14:00----odehráno
2--25.10.2012--14:00----odehráno
3--29.10 2012--14:00----odehráno
4--10.11 2012--14:00----přihlásit
5--20.11 2012--14:00----přihlásit

= "přihlásit" je odkaz na script který by měl provest přihlášení do turnaje tak, že do uživatelova profilu (tabulky) ve sloupci akce napíše "id" turnaje např. když budu chtít jít soutěžit 10.11.2012 napíše mi do mého profilu hodnotu "4". Jsem schopen vytvořit script, který toto splní jenže pokud zadám turnaje dva už nedělá to co má. Potřebuji poradit jak mám hodnoty "id" přenést do scriptu, nebo jak to celé udělat lépe. Píši zde o prozbu jelikož si nevím rady.

Je to dosti krkolomné řešení ale nic jiného mě nenapadlo.

Děkuji za odpovědi
panther
Profil
B1abla:
p5ihl8sit jsou odkazy (tedy metoda GET), nebo formuláře a metoda POST?

Je to celkem jedno, na stránce přes $_GET['id'], resp. $_POST['id'] předáš ID turnaje, uložíš do databáze (tabulka user_id | tournament_id). Při dvou přihlášených turnajích pak bude (předpokládejme uživatele s ID=7):
7 | 4
7 | 5 
B1abla
Profil
panther:

ahoj, nechápu co píšeš výše: já dopředu nevím, který uživatel se bude chtít přihlásit a do kterého turnaje pokud jich bude na výběr víc.

asi jsem to špatně napsal nebo jsem tě nepochopil, když zadám turnaj metoda POST do tabulky TURNAJE, id se zvětšuje "AUTO INCREMENT", poté tyto údaje přes echo vypíši do <table>, a uživatel si může vybrat jestli se chce přihlásit, poté je možnost s turnaje se odhlásit.
panther
Profil
B1abla:
uživatel si může vybrat jestli se chce přihlásit
ano. Uživatel je, předpokládám, přihlášen ke svému profilu (jinak bys nevěděl, kdo se přihlásil). Nebo tam máš ještě někde formulář na jméno, mail, apod.?

Pokud je přihlášen a přihlašování k turnajům probíhá jen kliknutím na odkaz „přihlásit se“, jeho ID přeci znáš, ne?
B1abla
Profil
panther:

- já chápu co píšeš jen nechápu jak to provést.
- uživatel je přihlášen a jeho id znám, je to pouze pro zaregistrované uživatele.

- kdybys mi prosím tvou myšlenku více rozepsal, nemůžu se chytnout

zase děkuji
panther
Profil
B1abla:
pak nechápu, kde je problém.

ID uživatele znáš, ID kurzu taky. Nic víc k uložení do DB nepotřebuješ.

jen nechápu jak to provést.
co konkrétně? Nepíšu nic, co bys mohl nepochopit, resp. nevím, co bych měl víc rozepisovat.

ID uživatele máš v nějaké session, id kurzu máš v GET po kliknutí na odkaz (prihlas.php?id_kurzu=4). A na stránce prihlas.php provedeš zápis do DB (user_id je v session, kurs_id v GET) a přesměruješ zpět na výps kurzů.
B1abla
Profil
panther:

nevím jak dostat do GET či POST id kurzu, to je ten můj problém, místo toho jsem si vybral všechny potřebné údaje s DB a potom to udělal tak to:

$_SESSION['cislo_turnaje'] = $vypis['id']; , jenom že to reaguje na poslední přidaný turnaj
panther
Profil
B1abla:
nevím jak dostat do GET či POST id kurzu
odkazem ve tvaru prihlas.php?id=4, prihlas.php?id=5, ....

V přihlaš.php bude zápis do DB a přesměrování zpět (ano, šlo by to udělat celé na jedné stránce, takto mi to přijde pochpitelnější).
B1abla
Profil
panther:

pořád mi to nejde, asi jsem natvrdlej

pokusím se to vysvětlit:

- mám cyklus while, ten mi v jednotlivých cyklech vypíše tabulku po řádcích
- a já potřebuji nahrát jednotlive id řádků do nejaké proměné, jelikož se v tabulce turnajů dvě stejné id nevyskytují
- po kliknutí na přihlášení u konkrétního data turnaje na určitem řádku uživatel zaregistruje
- mám to tak to:

echo "<table class=\"telo_stranky_table\"> 
                                <tr><td>ID</td><td>Datum</td><td>Čas</td><td>Pořadatel</td><td></td><td>Účast</td>";
                        while ($vypis = mysql_fetch_assoc($vysledek_turnaje)) {
                            echo "<tr><td>".$vypis['id']."</td>";
                            echo "<td>".strftime("%d.%m.%Y",strtotime($vypis['datum']))."</td>";
                            echo "<td>".strftime("%H:%M", strtotime($vypis['cas']))."</td>";
                            echo "<td>".$vypis['vytvoril']."</td>";
                            if((date("Y-m-d")) > ($vypis['datum'])) {
                                echo "<td>".$vypis['odehrano']."</td>";
                            }
                            elseif (($vypis['id']) == ($vypis2['akce'])) {
                                echo "<td><a href = \"unlog_turnaje.php\">Odhlásit</a></td>";
                            }
                            else {
                                echo "<td><a href= \"log_turnaje.php\">Přihlásit</a></td>";
                                if(($vypis['odehrano']) != ("odehrano")) {
                                    TADY POTŘEBUJI DOPLNIT ČÁST KTERÁ TO VYŘEŠÍ, POŘÁD MI TO NEJDE
                                }
                                
                            }
                            echo "<td>".$vypis['ucast']."</td></tr>";
                        }
                        echo "</table>";

když tak mě i nasměruj jak to vyřešit jinak, děkuji za trpělivost
B1abla
Profil
panther:
odkazem ve tvaru prihlas.php?id=4, prihlas.php?id=5, ....

jak ale udělám aby se ten odkaz prihlas.php?id=4, prihlas.php?id=5, .... , universálně nahrál do proměnné == asi to moc nechápu, do příspěvku "#9" jsem dal zatim vytvořený kód
panther
Profil
B1abla:
echo "<td><a href= \"log_turnaje.php?id=" . $vypis['id'] . "\">Přihlásit</a></td>";
Předpokládám, že ID z databáze je ID turnaje.
B1abla
Profil
panther:

Děkuji za rady a trpělivost, zprovozněno

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: