Autor | Zpráva | ||
---|---|---|---|
hynek Profil |
#1 · Zasláno: 23. 11. 2008, 13:43:30
Dobrý den.
Rád bych vytvořil formulář, kde bude výpis uživatelů a u nich bude zaškrtávací čtvereček. A kterého uživatele vyberu, ten bude smazán. Kód mam nejspíš špatně, protože mi to píše parse error na řádku, na kterém nic není. Úplně poslední řádek. Tady je kód a prosím vás abyste mi poradili, jak takový formulář vytvořit, případně kód opravit. Děkuji <?php session_start(); $titul_stranky = 'Hynaisův web - O všem!'; include_once ('zahrnout/zahlavi.html'); require_once('zahrnout/config.inc'); require_once('mysql_spojit.php'); if ($_SESSION['uziv_jmeno'] = 'hynais'){ echo '<form action="smazat_uzivatele.php" method="post">'; $zobrazit = 10; if (isset($_GET['ps'])) { $pocet_stranek = $_GET['ps']; } else { $dotaz = "SELECT CONCAT(uziv_jmeno, ', ', jmeno, ', ', prijmeni, ', ', web) AS jmeno, DATE_FORMAT(datum_registrace, '%d. %m %Y') AS dr FROM uzivatele ORDER BY datum_registrace ASC"; $vysledek_dotazu = mysql_query ($dotaz); $pocet_zaznamu = mysql_num_rows ($vysledek_dotazu); if ($pocet_zaznamu > $zobrazit) { $pocet_stranek = ceil ($pocet_zaznamu/$zobrazit); } else { $pocet_stranek = 1; } } if (isset($_GET['s'])) { $start = $_GET['s']; } else { $start = 0; } $dotaz = "SELECT CONCAT(uziv_jmeno, ', ', jmeno, ', ', prijmeni, ',', web) AS jmeno, DATE_FORMAT(datum_registrace, '%d. %m %Y') AS dr FROM uzivatele ORDER BY datum_registrace ASC LIMIT $start, $zobrazit"; $vysledek = mysql_query ($dotaz); $pocet = mysql_num_rows ($vysledek); if ($pocet > 0) { echo "<h1>Registrovaní uživatelé</h1>"; if ($pocet_stranek > 1) { echo '<p>'; $aktualni_stranka = ($start/$zobrazit) + 1; if ($aktualni_stranka!= 1) { echo '<a class="odkaz" href="zobrazit_uzivatele.php?s='. ($start - $zobrazit). '&ps='. $pocet_stranek. '">Předchozí</a> '; } for ($i = 1; $i <= $pocet_stranek; $i++) { if ($i!= $aktualni_stranka) { echo '<a class="odkaz" href="zobrazit_uzivatele.php?s='. (($zobrazit * ($i - 1))). '&ps='. $pocet_stranek. '">'. $i. '</a> '; } else { echo $i. ' '; } } if ($aktualni_stranka!= $pocet_stranek) { echo '<a class="odkaz" href="zobrazit_uzivatele.php?s='. ($start + $zobrazit). '&ps='. $pocet_stranek. '">Další</a>'; } echo '</p><br />'; } echo '<table align="left" cellspacing="2" cellpadding="2"> <tr><td align="left"><b>Nick; jméno; přijmení; web</b></td><td align="left"><b>Datum registrace</b></td></tr>'; $barva_pozadi = '#eeeeee'; while ($radek = mysql_fetch_array($vysledek, MYSQL_NUM)) { $barva_pozadi = ($barva_pozadi=='#eeeeee'? '#ffffff': '#eeeeee'); echo '<tr bgcolor="', $barva_pozadi, '"><td align="left"><input type="checkbox" name="smazat" value="', stripslashes($radek[0]), '"></td><td align="left"><input type="checkbox" name="smazat" value="', $radek[1], '"></td></tr>'; } echo '</table>'; echo '<input type="submit" value="Smazat"></form>'; mysql_free_result ($vysledek); } else { echo '<h3>V databázi nejsou registrováni žádní uživatelé.</h3>'; } mysql_close(); } else { echo 'Nemáte adminská práva a proto máte zakázaný přístup na tuto stránku.'; ?><br> <p><a class="zpet" href="hlavni.php">Zpět</a></p> <?php include_once('zahrnout/pata.html'); ?> |
||
hynek Profil |
#2 · Zasláno: 23. 11. 2008, 13:45:45
a potom bych vás chtěl ještě poprosit o kód, který dám do souboru smazat_uzivatele.php
pomocí kterého se provede funkce smazání.. Dík:) |
||
Tomashek Profil |
#3 · Zasláno: 23. 11. 2008, 13:46:24
pokud vidím dobře, tak error je kvůli toho ,že chybí }
} else { echo 'Nemáte adminská práva a proto máte zakázaný přístup na tuto stránku.'; } |
||
hynek Profil |
#4 · Zasláno: 23. 11. 2008, 13:47:13
no jo:)
a poradíš mi ještě prosím ten kód na smazání? |
||
Tomashek Profil |
#5 · Zasláno: 23. 11. 2008, 13:52:43
a jinak: já to řeším tak, že si do checkboxu dám name="neco[]" value="id_uzivatele(z db)"
a pak mám submit a po potvrzení : $vyber = @implode(',',$_POST['neco']); // z pole vytvoří id po čárce Mysql_Query("DELETE FROM tabulka WHERE id in(".$vyber.")") or die(mysql_error()); je to jen zjednodušeně, protože se mi nechce orientovat v tom kódu xD Mělo by to jít |
||
hynek Profil |
#6 · Zasláno: 23. 11. 2008, 13:55:06
ale já když se kouknu do tabulky tak id_uzivatele tam jsou všechny stejný.. :(
|
||
hynek Profil |
#7 · Zasláno: 23. 11. 2008, 14:15:50
upravil bys mi prosím ten můj kód?
<input type="checkbox" name="smazat" value="', stripslashes($radek[0]), '"> já moc nepochopil jak to myslíš |
||
Tomashek Profil |
#8 · Zasláno: 23. 11. 2008, 14:31:47
id nemůže být stejné u kažého uživatele (jestli máš nastavené u id auto_increment což by mělo být)
|
||
hynek Profil |
#9 · Zasláno: 23. 11. 2008, 14:40:11
neni to nastavený a nejde nastavit..
|
||
hynek Profil |
#10 · Zasláno: 23. 11. 2008, 14:45:25
píše to chybu
|
||
hynek Profil |
#11 · Zasláno: 23. 11. 2008, 14:58:40
a nešlo by tam třeba místo id_uzivatele dát uživatelský jméno?
|
||
zooner Profil |
#12 · Zasláno: 23. 11. 2008, 15:48:48
hynek
jde to samozřejmě akorát ho musíš dát do jednoduchých uvozovek - '$uzivatel' |
||
hynek Profil |
#13 · Zasláno: 23. 11. 2008, 15:51:36
zooner
ale tak to $uzivatel se musi ještě vzít takovym tim SELECT uziv_jmeno FROM uzivatele ne? |
||
hynek Profil |
#14 · Zasláno: 23. 11. 2008, 15:53:52
hynek
takhle.. jestli jo tak to mi nefunguje.. :) dycky se tam místo uživatelskýho jména napíše Resource id #13 |
||
zooner Profil |
#15 · Zasláno: 23. 11. 2008, 15:56:15
hynek
tak jasný že to má být asi nějak takhle mysql_query("select * from tabulka where uzivatel = '$uzivatel' "); |
||
hynek Profil |
#16 · Zasláno: 23. 11. 2008, 15:57:51
zooner
počkej ale já chci vytáhnout to uživatelský jméno z databáze takže nvm jestli to pozná to uzivatel = '$uzivatel'... |
||
zooner Profil |
#17 · Zasláno: 23. 11. 2008, 16:40:48
hynek
jen příklad proměný,nevim co tam máš ty |
||
Tomasds Profil |
#18 · Zasláno: 23. 11. 2008, 17:27:20
Jestli si necháš poradit, rozchoď si to ID. Udělal bych to exportem dat, vytvořením nové tabulky, kde bude správně fungující ID (autoincrement a unique) a pak insertem.
Je jedno, kolik to zabere práce, protože jestli to neuděláš teď, budeš to muset udělat později a to už budeš mít jednak víc dat, možná i vytvořené vazby. |
||
Časová prodleva: 15 let
|
0