[ Rodja_ki @ 15.05.2013. 10:39 ] @
Pozdrav ljudi, imam problem sa insertom u dve tabele. Tacnije insert u prvoj tabeli uradi normalno, dok drugi u opste ne uradi. Iz prvog inserta treba da izvucem id, i da ubacim u drugi. Probao sam sa mysql_insert_id(), ali mi nesto ne radi, ne znam zasto...Evo koda:

Code:
public function create() {
    global $database;
    $attributes = $this->ocisceni_atributi();
    $sql = "INSERT INTO " .self::$ime_tabele. " (";
    $sql .= join(", ", array_keys($attributes)) . ") ";
    $sql .= "VALUES ('";
    $sql .= join("', '", array_values($attributes));
    $sql .= "') ";
    
    
if ($database->query($sql)) {
    $this->id = $database->insert_id();
    return true;
    $session->poruka("Uspesno je unet novi proizvod");
} else{
    $session->poruka("Nemoguce je uneti novi proizvod");
    return false;
}    
     $last_inserted_mysql_id = mysql_insert_id();
     $sql1="INSERT INTO slike (sifra_proizvoda, velika_slika, opis_slike) VALUES ('$last_inserted_mysql_id', '$this->slika', '$this->opis_slike')";
      
       $database->query($sql1);
}
[ Tpojka @ 15.05.2013. 11:09 ] @
Šta se dešava kad staviš sql1 statement u if petlju ispod linije gdje dobiješ insert id, a prije return true izvršenja?
[ ivan.a @ 15.05.2013. 12:14 ] @
Drugi INSERT ti ne radi jer se funkcija završava kod prvog return true;

Stavi upit pre toga (posle onog $sql).

Code:
$database->query($sql);
$last_inserted_mysql_id = $database->insert_id();
$sql1="INSERT INTO slike (sifra_proizvoda, velika_slika, opis_slike) VALUES ('$last_inserted_mysql_id', '$this->slika', '$this->opis_slike')";
$database->query($sql1);


"If" provere ukloni ili zameni sa svojim kodom za prvi i drugi INSERT, ali nakon izvrsenog upita (a ne pre).
[ Rodja_ki @ 15.05.2013. 12:48 ] @
Nista se ne desi, opet ne upisuje nista u tabelu...
Edit, proradilo je :) kada sam taj deo prebacio ispred returna, proradilo je :) Hvala na sugestijama!