Autor Zpráva
Watchick
Profil *
Dobrý den, potřeboval bych pomoci s následujícím, odvodil jsem si, že když potřebuji, aby se mi z databáze vypsali uživatelé a jejich "oprávnění", které může administrátor změnit, udělám následující:

spojeni=mysql_connect("***","***","***");
$tocislo = $admin - 1;
$co="SELECT * FROM ********** WHERE admin<$tocislo AND kodaliance='".$kodaliance."' AND active='1' AND server='".$server."' ORDER BY admin desc";
$navrat=mysql_db_query("-", $co, $spojeni);
echo"<form action=\"***.php?navigation=opravneni\" method=\"post\">";
echo("<table>");
for ($i=0;$i<mysql_num_fields($navrat); $i++){
}
?>
<small></small><tr><td><small><center>Jméno</center></small></td><td>< small><center>Oprávění</center></small></td><td><small><center>Změna na</center></small></td></tr>
<?php
while (list($login, $heslo, $narod2, $jedn1, $jedn2, $jedn3, $jedn4, $jedn5, $jedn6, $jedn7, $jedn8, $jedn9, $jedn10, $utok2, $obrnap2, $obranak2, $cas, $heroutok1, $heroutokp1, $heroobrana1, $heroobranap1, $heroregenerace1, $cara, $vel, $pismo, $barva, $mail, $active, $admin, $server, $kodaliance, $sex) = mysql_fetch_array($navrat)){
echo"<small></small><tr><td><small><center>$login</center></small></td ><td><small><center>$admin</center></small></td><td><small><center><in put name=\"$login\" value=\"$admin\" maxlength=\"1\"></center></small></td></tr>";
}
echo("<tr><td COLSPAN=3><input type=\"submit\" value=\"Změnit oprávnění\"></td></tr></table></form>");

cims se nám vytvoří tabulka 3×X řádků ve které je první jméno, druhé je oprávnění a 3. sloupeček umožňuje přes <input s value odpovídající 2. sloupečku> 3. sloupeček změnit
Hlavní ale je (u čehož si vůbec nejsem jistý zda-li vůbec jde) že dám <input name="$login"> protožejak se to pomocí while načítá, tak by měli vzniknout inputy: <input name="uzivatel1">, <input name="uzivatel2">, <input name="uzivatel3">, ...
pod tabulkou je submit a nyní se přesouváme na další stránku

$spojeni=mysql_connect("***","***","***");
$co="SELECT * FROM ***WHERE kodaliance='".$kodaliance."' AND active='1' AND server='".$server."'";
$navrat=mysql_db_query("*****", $co, $spojeni);
for ($i=0;$i<mysql_num_fields($navrat); $i++){
}
while (list($login, $heslo, $narod2, $jedn1, $jedn2, $jedn3, $jedn4, $jedn5, $jedn6, $jedn7, $jedn8, $jedn9, $jedn10, $utok2, $obrnap2, $obranak2, $cas, $heroutok1, $heroutokp1, $heroobrana1, $heroobranap1, $heroregenerace1, $cara, $vel, $pismo, $barva, $mail, $active, $admin, $server, $kodaliance, $sex) = mysql_fetch_array($navrat)){
$tojmeno = $_POST["$login"];
echo $_POST['$login'];
}

ještě to nemám úplně dodělané, ale jen tak, jem ze zvědavosti zkusil hned ze začátku, jestli to funguje, ale jak jsem zjistil, tak <input name="$login"> asi neodpovídá $_POST['$login']... v čem mám chybu? prosím o radu je pouze chyba v uvozovkách, nebo něco na ten způsob, nebo to tímto způsobem prostě nejde? a pokud ne, tak jaký jiný způsob existuje? tohle bylo totiž jediné řešení, které mě napadlo, předem děkuji za odpověd, Watchick
nightfish
Profil
bacha, ono $_POST["$login"] a $_POST['$login'] je dost zásadní rozdíl (u varianty s apostrofy nedojde ke zpracování obsahu proměnné "login")
Watchick
Profil *
takže $_POST['$login']? mam pocit, že to už jsem také zkoušel
orava
Profil
Ma to byt $_POST["login"] bez $

dalsia chyba!
$co="SELECT * FROM ********** WHERE admin<$tocislo AND kodaliance='$kodaliance' AND active=1 AND server='$server' ORDER BY
admin desc";

pozor na tie apostrofy a tie bodky tam nemaju co hladat!
Watchick
Profil *
to orava:
děkuji za připomínku, nejsem si alejistý, že když dám $_POST['login'], tak se mi postupně vypíší ty hodnoty $_POST['uzivatel1'] $_POST['uzivatel2'] $_POST['uzivatel3'] $_POST['uzivatel4'] ...protoze kdyz jsešm to odesílal, dával jsem do názvu proměnných jejich jména..., takže $_POST['$login'] by v jedne chvili mělo být $_POST ['uzivatel1'], teda o tohle mi slo, když by to tak bylo, a fungovalo, bylo by to dobré.

Ve zkratce: odešle se číslo, které napíše do inputu s názvem, jeho jména (například: marek) potom díky while t načtu že dám $_POST['$login']; , toto v jedne chvili kdyz bude $login == marek, tak to udela to, že z $_POST['$login (login je v tomto kole while marek)'] což jakoby odpovídá $_POST['marek'] a pak se teprve vypíše to číslo, které je v $_POST['marek'] uložené...
orava
Profil
AHA no uz som tomu pochopil ze ako to mas spravene
kubiseg
Profil
a co $_POST[$login] ??
Watchick
Profil *
kubiseg
jooo, to je poradny slovo, díky moc :-)
kubiseg
Profil
a dalsi pripominka je:

<input name="login" /> === $_POST['login']


tedy v pripade, kdy odesilas formular metodou post... pri get to bude samo $_GET['login']
Watchick
Profil *
v cem je chyba v tom ze tam nemam to \ ?
kubiseg
Profil
Watchick
chyba to neni... je to spise sila zvyku, pac jsem zvyklej kodovat v XHTML, kde je standardem neparovy tag (input, img, meta atp.) uzavirat / na konci tagu... ;-)

chyba to neni, nemas-li v deklaraci dokumentu (tzv. DOCTYPE) napsano, ze je dokument kodovany v XHTML

vice info o tomto na www.w3.org
Chamurappi
Profil
Reaguji na kubisega:
chyba to neni, nemas-li v deklaraci dokumentu (tzv. DOCTYPE) napsano, ze je dokument kodovany v XHTML
Ne, <!doctype> o syntaxi nerozhoduje.

Tu „další připomínku“ také moc nechápu.
kubiseg
Profil
Chamurappi
nerozhoduje, ale urcuje jazyk pouzity pri stavbe stranky... tento jazyk ma sve specifikace a tudiz bychom je meli ctit a pouzivat...

nemam cas to tu rozebirat, jen jsem chtel naznacit, jak je to mysleno... chapu deklaraci dokumentu jako to, co rika parserum, jaky jazyk jsem pouzil na strance... ;-) bejt to moje zaezitost, cely podelany doctype poslu do kytek...
Chamurappi
Profil
Reaguji na kubisega:
ale urcuje jazyk pouzity pri stavbe stranky
Ne.

chapu deklaraci dokumentu jako to, co rika parserum, jaky jazyk jsem pouzil na strance
To ho chápeš špatně. Parsery očekávají cosi jako HTML 4 (či spíš 5) nehledě na údaje v deklaraci.

nemam cas to tu rozebirat, jen jsem chtel naznacit, jak je to mysleno
Spíš vysvětli tu další připomínku.

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