Autor Zpráva
hynek
Profil
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
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
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
no jo:)
a poradíš mi ještě prosím ten kód na smazání?
Tomashek
Profil
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
ale já když se kouknu do tabulky tak id_uzivatele tam jsou všechny stejný.. :(
hynek
Profil
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
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
neni to nastavený a nejde nastavit..
hynek
Profil
píše to chybu
hynek
Profil
a nešlo by tam třeba místo id_uzivatele dát uživatelský jméno?
zooner
Profil
hynek

jde to samozřejmě akorát ho musíš dát do jednoduchých uvozovek - '$uzivatel'
hynek
Profil
zooner
ale tak to $uzivatel se musi ještě vzít takovym tim SELECT uziv_jmeno FROM uzivatele ne?
hynek
Profil
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
hynek

tak jasný že to má být asi nějak takhle
mysql_query("select * from tabulka where uzivatel = '$uzivatel' ");
hynek
Profil
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
hynek

jen příklad proměný,nevim co tam máš ty
Tomasds
Profil
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.

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: