Autor Zpráva
Manny
Profil
Už delší dobu nějak nemůžu pohnout se vnořeným polem
Array ( [1] => Array ( [popis] => Nějaký popisek obrázku [razeni] => 1 [link] => upload/foto/0.jpg [idecko] => 1 ) [2] => Array ( [popis] => Další popisek fotky [razeni] => 2 [link] => upload/foto/1.jpg [idecko] => 2 ) ) 
Zkouším to procházet dvojitým foreachem
foreach($_POST as $item) a foreach($item as $set) 
abych mohl provést UPDATE, ale nedaří se.
Poradíte mi někdo řešení?
juriad
Profil
Co se ti nedaří? Ukaž celý nefunkční kus kódu.
Tori
Profil
Manny:
A můžete ukázat i ten nefungující kód?
Taps
Profil
Manny:
chyba bude asi někde na úrovni SQL dotazu
Manny
Profil
Taps:
K update jsem se ještě ani nedostal. Zkoušel jsem už při prvním foreachi naplnit přes list z pole $item proměnné, ale to mi ani nic nevypíše.
zkrátka potřebuju získat ty 4 proměnné do sql dotazu.
Taps
Profil
Manny:
níže uvedený kod ti tedy nevypíše vůbec nic ?
<?
foreach($_POST as $item){
   foreach($item as $set) {
   
   echo $set.'<br>';
   }
   }
 ?>
Manny
Profil
Taps:
Ano, tohle se vypíše. To už jsem taky zkoušel. Ale v každém cyklu potřebuju 4 různé proměnné z pole $item.
Tori
Profil
Manny:
v každém cyklu potřebuju 4 různé proměnné z pole $item
Spíš z pole $set, ne?
Bertram
Profil
Manny:
Upřesněte o jakém cyklu se bavíte.
<?php
header('Content-type: text/html;charset=UTF-8');
$post = array(array('popis' => 'Nějaký popisek obrázku', 'razeni' => 1, 'link' => 'upload/foto/0.jpg', 'idecko' => 1), array('popis' => 'Další popisek fotky', 'razeni' => 2, 'link' => 'upload/foto/1.jpg', 'idecko' => 2));

$iterator = 1;
foreach ($post as $item) {
    echo "průchod: $iterator <br />";
    
    foreach ($item as $column => $value) {
        echo $column . ' : ' . $value . '<br>';
    }
    $iterator++;
    echo "-------------------<br />";
}

A výsledek.
průchod: 1
popis : Nějaký popisek obrázku
razeni : 1
link : upload/foto/0.jpg
idecko : 1
-------------------
průchod: 2
popis : Další popisek fotky
razeni : 2
link : upload/foto/1.jpg
idecko : 2
-------------------
Manny
Profil
Tak konečně úspěch:
foreach($_POST as $item)
        {
        foreach($item as $set)
            {
            $sada[] = $set;
            }
        list($popisek, $ord, $link, $id) = $sada;
        echo $popisek.' - '.$ord.' - '.$link.' - '.$id.'<br>';
        }
Jen mi přijde trochu klopotné pole nejdřív rozebírat a pak zase vytvářet. Myslel jsem, že list zvládne i asociovaná pole.

Tak ještě ne. Asi se mi to přepisuje
Výstup:
Nějaký úžasný popisek - 1 - upload/foto/0.jpg - 1
Nějaký úžasný popisek - 1 - upload/foto/0.jpg - 1
Tori
Profil
Manny:
Jen mi přijde trochu klopotné pole nejdřív rozebírat a pak zase vytvářet.
Místo řádků 3–7 se dalo použít i list($popisek, $ord, $link, $id) = array_values($item);, anebo rovnou používat $item['popis'] apod.

Asi se mi to přepisuje
Nepřepisuje, jen za řádkem 2 chybí $sada = array();.

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: