Autor Zpráva
DusanHell
Profil
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); 
                            }
                        }
                    }        
                }
Můj problém spočívá v tom že při uložení do databáze se mi uloží hodnoty $id do sloupce id_product a id_atributy_values na samostatný řádek, a hodnota $id_atributy_values se opět uloží do sloupce id_product a id_atributy_values tak též na samostatný řádek. Chtěl bych docílit toho aby se mi uložila hodnota $id do sloupce id_product a hodnota $id_atributy_values do sloupce id_atributy_values.

Snad jsem napsal vše srozumitelně.

Díky za vaše rady a náměty.
Jozin
Profil
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.

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: