Autor | Zpráva | ||
---|---|---|---|
DusanHell Profil |
#1 · Zasláno: 15. 1. 2014, 12:21:45
Dobrý den,
už si opravdu nevím rady, a tak se obracím na zkušenější. Můj nápad je že si vytvořím pole z načtených dat s databáze, která se snažím následně uložit do DB na každý řádek zvlášť. Viz. kód: $sql = "SELECT id, name_atribut FROM eshop_atributy"; $result = $this->mysqli->query($sql); $a .= '<form action="" method="post" enctype="multipart/form-data">'; $a .= '<div class="element">'; $a .= '<label name="atribut_produkt">Atributy a hodnoty</label>'; while ($row = $result->fetch_object()) { $a .= '<strong>'.$row->name_atribut.'<strong><br />'; $i =$row->id; $sql1 = "SELECT * FROM eshop_atributy,eshop_atributy_values WHERE eshop_atributy.id = eshop_atributy_values.id_atribut AND id_atribut='$i'"; $result1 = $this->mysqli->query($sql1); $pole = array(); while ($row = $result1->fetch_array()) { $pole[] = $row["id"]; $pole[] = $row["id_atribut"]; $a .= '<div class="element">'; $a .='<strong>'.$row["values_atribut"].'<br />'; $a .= '</div>'; } if(!empty($_POST['addAtributes'])){ if(is_array($pole)){ foreach($pole as $r){ $id = $r["id"]; $id_atributy_values = $r["id_atribut"]; $sql3 = "INSERT INTO eshop_product_values (id, id_product, id_atributy_values) values ('','$id','$id_atributy_values')"; $result3 = $this->mysqli->query($sql3); } } } } Snad jsem napsal vše srozumitelně. Díky za vaše rady a náměty. |
||
Jozin Profil |
#2 · Zasláno: 16. 1. 2014, 11:17:18
Zdravím,
problém je v tom, že do $pole ukládáš hodnoty a je jim přiřazeno pořadí neexistuje $pole['id'], ale jen $pole[0] ... podmínka if (is_array($pole)) bude vždy true, protože před cyklem máš $pole = array(); ... řešením by bylo místo řádku 20 a 21 udělat $pole[] = array('id' => $row['id'], 'id_atribut' => $row['id_atribut']); případně kratší $pole[] = $row; poté bude takto napsaný foreach funkční a bude ukládat ty dvě položky do jednoho záznamu nikoli do více. |
||
Časová prodleva: 10 let
|
0