Problem jest tego typu, że w projekci, który teraz piszę muszę współpracować z kilkoma bazami danych, spróbuję opisać to na przykładzie.
Mam główną bazę danych w niej znajduję się pewna liczba sklepów (poprzez odpowiedni formularz, użytkownik może w każdej chwili dodać kolejny sklep)
Teraz na podstawie zapytania pobieramy sklepy i wyświetlamy je w postaci checkboxów użytkownikowi, który dodając produkt ma możliwość wybrania do
których sklepów ma zostać dodany dany produkt.
Problem, który nie wiem jak rozwiązać polega na tym jak w klasie produkt rozpoznać, które sklepy zostały wybrane i połączyć się z bazą danych odzielną dla
każdego sklepu by do wybranych sklepów dodać produkt?
Obecny kod klasy Product:
<?php require_once(DIR_MAIN.'common.php'); require_once('interfaces/itemOperations.php'); class Product extends Item implements itemOperations { if($_SERVER['REQUEST_METHOD'] == 'POST'){ try { $db = new PDO($dsn,$user,$passwd); $db -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $query = $db->prepare('INSERT into `produkt` (`idjezyka`, `idkategorii`, `idprod`, `nazwap`, `kopisp`, `dopisp`, `plikp`, `cena`, `popis`, `pkluczowe`, `popisid`) VALUES (:idjezyka, :idkategorii, :idprod, :nazwap, :kopisp, :dopisp, :plikp, :cena, :popis, :pkluczowe, :popisid)'); $query->bindValue(':idjezyka', $_POST['idjezyka'], PDO::PARAM_INT); $query->bindValue(':idkategorii', $_POST['idkategorii'], PDO::PARAM_INT); $query->bindValue(':idprod', $_POST['idprod'], PDO::PARAM_INT); $query->bindValue(':nazwap', $_POST['nazwap'], PDO::PARAM_STR); $query->bindValue(':kopisp', $_POST['kopisp'], PDO::PARAM_STR); $query->bindValue(':dopisp', $_POST['dopisp'], PDO::PARAM_STR); $query->bindValue(':plikp', $_POST['plikp'], PDO::PARAM_STR); $query->bindValue(':cena', $_POST['cena'], PDO::PARAM_INT); $query->bindValue(':popis', $_POST['popis'], PDO::PARAM_STR); $query->bindValue(':pkluczowe', $_POST['pkluczowe'], PDO::PARAM_STR); $query->bindValue(':popisid', $_POST['popisid'], PDO::PARAM_INT); $count = $query->execute(); $idp = $db->lastInsertId(); foreach($_POST['sklep'] as $ids){ $ids = (int) $ids; if($ids){ $q = $db->prepare('INSERT into `asortyment` (`idproduktu`, `idsklepu`) VALUES ('.$idp.','.$ids.') '); $c = $q->execute(); } } } catch(PDOException $e) { } } else { addProduct(); } } $db = new PDO($dsn,$user,$passwd); $db -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } } ?>
przy dodawaniu widoczna jest jeszcze tabela asortyment, która pełni rolę magazynu.
Skąd wiedzieć ile i z którymi bazami przyporządkowanymi do poszczególnych sklepów, nawiązać połączenie i dodać produkt?
pzdr