Autor Zpráva
Musilda
Profil
Zdravím potřebuji poradit.

Do databáze jsem uložil pole $podnik['kraj']['dalsi_udaj'] . Při načtení pole z DB a pokusu projití pole mi hlásí chybu Warning: Invalid argument supplied for foreach() in.....

K projití pole používám :

 if (!empty($result['kraj'])){
  foreach ($result['kraj'] as $pole){
  echo "<tr><td></td><td>$pole</td></tr> ";
      }
}


Kde jsem udělal chybu?
Taps
Profil
Musilda
a je proměnná $result['kraj'] skutečně pole ? Vyzkoušej níže uvedený skript. Pokud se ti ukáže promněnná není pole tak zřejmě máš chybu v naplňování pole
 if (is_array($result['kraj'])){
  foreach ($result['kraj'] as $pole){
  echo "<tr><td></td><td>$pole</td></tr> ";
      }
}
else{
echo "promněnná není pole";
}

Filip111
Profil
Musilda:
Není tvá úvaha úplně zcestná?...jde mi o to, jestli si jseš vědom toho, že v databázi je uložen nějaký řetězec a ty z něj musíš pole nejprve vytvořit (což asi neděláš vzhledem k použití $result['kraj']) pokud se jedná např o seznam oddělený čárkami

Jinak pole jako takové do DB neuložíš...
nightfish
Profil
Jinak pole jako takové do DB neuložíš...
do mySQL neuložíš... viz Pole v PostgreSQL
Filip111
Profil
S PostgreSQL jsem nikdy nepracoval (pouze MySQL a MS SQL a ty to myslím neumí), takže beru zpět.
Spíš jsem podle uvedeného příkladu usuzoval na neznalost Musildy,

viz např.
pokud má bejt
$podnik['kraj']
také pole ($podnik je tedy minimálně 2D pole), pak je celkem nesmysl ho vypisovat jako
echo $pole


Počkáme co na to Musilda, nebudu dál věštit z křišťálový koule.
Musilda
Profil
V tom případě je má úvaha zcela zcestná. Chtěl jsem se vyhnout skládání řetězce a následného uložení DB. Jde o mou neznalost.
hanakus
Profil
Můžeš ho uložit jako JSON string. Viz. PHP funkce json_encode a json_decode. Nicméně není to zrovna elegantní řešení, být tebou tak si ještě jednou promyslím návrh databáze.

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: