Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Zapsání proměných do databáze v cyklu WHILE (PHP a MySQL)

Pokiaľ som správne pochopil, tak v POST-e ti prídu dáta pre polia obsahN, sideN, zapN, poradiN a pod., kde N je identifikátor riadku. Takže sa nemôžeš spoľahnúť na to, že by ti prišli dáta pre všetky N od 1 po nejaké Nmax a bude to tým pádom trochu zložitejšie.

Princíp bude taký, že prebehneš všetky kľúče v POST-e a keď nájdeš kľúč v tvare obsahN, tak spracuješ vstup pre záznam s identifikátorom N.

Takže kód by mohol vyzerať približne takto (netestované, môžu tam byť preklepy a iné chyby):

foreach ($_POST as $key => $value)
  if (substr($key, 0, 5) == "obsah") {
    $n = (int)substr($key, 5);
    $obsah = mysql_real_escape_string($value);
    $side = isset($_POST["side$n"]) && $_POST["side$n"] == "R" ? "R" : "L";
    $zap = isset($_POST["zap$n"]) && $_POST["zap$n"] == "1" ? 0 : 1;
    $poradi = isset($_POST["poradi$n"]) ? (int)$_POST["poradi$n"] : 0;

    mysql_query("UPDATE bloky SET obsah='$obsah', side='$side', zap=$zap, poradi=$poradi WHERE id='$n';");
  }

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny