| 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: 13 let
|
|||
0