Autor Zpráva
Johny_5
Profil *
Dobrý den, chci se zeptat proč mi tohle nefunguje? Názvy políček v poly: id[], account[](v selectu). Děkuju všem za radu
foreach($_POST["del"] as $keyword => $upravit){
mysql_query("UPDATE auto_sekce SET account='".$_POST["account"][$keyword]."' WHERE id='".$_POST["del"][$keyword]."'");
}
AM_
Profil
stará písnička...

Johny_5:
proč mi tohle nefunguje?
ale funguje - něco to dělá. Abys mohl říct nefunguje, musíš říct, co to dělat má a co to dělá teď (hlavně to druhé, to první se ještě dá odhadnout). "Nic" není uspokojivá odpověď, chybová hláška ano.

Tento kousek skriptu je opravdu v naprostém pořádku, chyba bude jinde... co takhle si vypsat dotaz, který se na databázi posílá?
mysql_query($q="UPDATE auto_sekce SET account='".$_POST["account"][$keyword]."' WHERE id='".$_POST["del"][$keyword]."'");
echo "SQL query: $q<br>";
if (mysql_errno()){
  echo "Returned error: <span style="color:red">".mysql_error()."</span><br>";
} else {
  echo "query OK<br>";
}
panther
Profil
AM:
na ř. 4 vyescapepuj uvozovky u atributu style, aby Johny_5 nepsal, že mu tvůj kód hází další chyby :-).
Johny_5
Profil *
To je dobrý :-) Uvozovky jsem opravil :-) chyba je vtom, že nechce brát zvolený select(name="account[]")
AM_
Profil
Johny_5:
nechce brát
to probíhá jak? zdroják selectu, dump $_POST['account']...
Johny_5
Profil *
Omlouvám se. Zdroj selectu jsem měl napsat hned.
echo "<select name=\"account[]\">
    <option value=\"off\">OFF</option>
    <option value=\"on\"";if($row["account"] == 'on'){echo ' selected';}echo ">ON</option>
  </select>";
AM_
Profil
a dump jsi měl utajit? co to teď odesílá?
předpokládám, že pole account[] by se mělo s čímsi shodovat (ID účtů), nemělo by tedy v těch hranatých závorkách to ID být?
__construct
Profil
Mal by si si najprv pozrieť ako funguje cyklus foreach:
Toto je nezmysel (nenapíšem Ti ako to má byť lebo neviem čo máš v poly del)
foreach($_POST["del"] as $keyword => $upravit){
mysql_query("UPDATE auto_sekce SET account='".$_POST["account"][$keyword]."' WHERE id='".$_POST["del"][$keyword]."'");
}

foreach ($_POST['del'] as $pole) {
    //$pole je teraz skratka za $_POST['del'], takže $_POST['del']['account'] je teraz $pole['account']
}
Nox
Profil
mj. http://php.vrana.cz/hromadna-aktualizace-zaznamu.php
AM_
Profil
[#8] __construct
Nesmysl je obojí, teď na to koukám. Jeho verze vrátí indexy všech selectů ve stránce (čili řadu čísel 1..n), tvoje verze zase samé "on off on off on off"... Především si ty selecty musí nějak rozumně oklíčovat, bohužel z těch útržků není moc jasné, jak to mělo fungovat...
Johny_5
Profil *
Já ted tomu vůbec nerozumím :-( můžete mi prosím napsat jak to mám opravit? Děkuji
__construct
Profil
AM:
Nesmysl je obojí, teď na to koukám. Jeho verze vrátí indexy všech selectů ve stránce (čili řadu čísel 1..n), tvoje verze zase samé "on off on off on off"... Především si ty selecty musí nějak rozumně oklíčovat, bohužel z těch útržků není moc jasné, jak to mělo fungovat...
Jaký nezmysel ? Ja som mu napísal, že má zle použitý foreach (čo je pravda) a to čo som mu napísal, je len ukážka ako funguje. Nenapísal som mu, že to je riešenie. Asi nikto nevie čo tam chce uložiť pretože to nenapísal, ani sem nepostol var_dumpy ako mu tu niekto písal ..
Johny_5
Profil *
Napíšu ještě jednou a snad pořádně všechno:
<?php
foreach($_POST["del"] as $keyword => $upravit){
mysql_query("UPDATE auto_sekce SET account='".$_POST["account"][$keyword]."' WHERE id='".$_POST["del"][$keyword]."'");
}

echo "<form action=\"\" method=\"post\">
<input type=\"checkbox\" name=\"del[]\" value=\"".$row["id"]."\">
<select name=\"account[]\">
    <option value=\"off\">OFF</option>
    <option value=\"on\"";if($row["account"] == 'on'){echo ' selected';}echo ">ON</option>
  </select>
</form>";
?>
AM_
Profil
a proč to raději neuděláš takto?
echo "<form action=\"\" method=\"post\"> 
<select name=\"account[${row["id"]}]\"> 
<option value=\"off\">OFF</option> 
<option value=\"on\"";if($row["account"] == 'on'){echo ' selected';}echo ">ON</option> 
</select> 
</form>";

nehledě na to, že takovéhle bloky HTML bych nerval do echa, ale to je teď vedlejší... tvůj kód mi moc nedává smysl, nejdřív účet zaškrtneš/nezaškrtneš a pak mu ještě budeš nastavovat on/off? k čemu to?
Johny_5
Profil *
Checkboxem říkám co se má upravit a v selectu mám na co se to má upravit. :-) Dává to smysl jen to takhle prázdně vypadá divně :-) Později otestuju :-) snad to už bude fungovat :-) děkuju
AM_
Profil
a není lepší "co se má upravit" nechat být, načíst defaultní hodnoty do on/off a pak upravit všechno? pro návštěvníka musí být toto dost matoucí...

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