Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Warunkowe wykonywanie zapisu do bazy - jak najprościej?
Forum PHP.pl > Forum > Przedszkole
phpamator
Witajcie,
To znowu Ja wasz amator z kolejnym beznadziejnym pytaniem.
Walczę z pewnym problemem i nie wiem jak powinienem go rozwiązać albo może jak byłoby najlepiej to zrobić.
Otóż mam trzy pola, w niektórych są już jakieś dane w innych nie, problem polega na tym, że nie "kumam" jak zorganizować sprawdzanie jeśli pierwsze pole zawiera już jakieś dane zapisz do drugiego, jeśli drugie zawiera zapisz to do trzeciego.
Oczywiście sprawdź najpierw czy te dane nie są takie same bo jeśli są to oczywiście pomiń i idź dalej.


Np:

film_1, film_2, film_3
Jeśli pole film_1 jest puste zapisz do pierwszego, jeśli pierwsze jest zajęte zapisz do drugiego a jeśli pierwsze i drugie jest zajęte zapisz do trzeciego.
po drodze muszę jeszcze sprawdzić czy aby dane w zajętych polach nie są takie same jak już wcześniej wspominałem. No i tu się zamotałem jak pająk ....
podpowiedzcie, jak to zrobić żeby było dobrze i efektywnie ?

kapslokk
Masz źle zaprojektowaną bazę.
Musisz rozbić to co masz na dwie tabele. W jednej trzymasz to co masz oprócz filmów, w drugiej id wpisu z pierwszej i film. Wtedy dodajesz sobie unique na ID i film i nie będziesz miał duplikatów i nie będziesz sie musiał martwić o dodawanie kolejnych filmów.
phpamator
Rozwiązałem problem ale nie wydaje mi się by było to rozwiazanie optymalne ;(

  1. if(empty($skuRow['yt_link_1'])){
  2. // VIDEO 1 pusty
  3. $enterVideo = "UPDATE `catalog_product_flat_1` SET `yt_link_1`='" . $videoIdADD . "' WHERE `sku`='" . $mySku . "' LIMIT 1;";
  4. $enterVideoQuery = $link->query($getVideos);
  5. } elseif(empty($skuRow['yt_link_2']) && $skuRow['yt_link_1'] != $videoIdADD){
  6. // VIDEO 2 pusty i VIDEO 1 inne niż
  7. $enterVideo = "UPDATE `catalog_product_flat_1` SET `yt_link_2`='" . $videoIdADD . "' WHERE `sku`='" . $mySku . "' LIMIT 1;";
  8. $enterVideoQuery = $link->query($getVideos);
  9. } elseif(empty($skuRow['yt_link_3']) && $skuRow['yt_link_1'] != $videoIdADD && $skuRow['yt_link_2'] != $videoIdADD){
  10. // VIDEO 3 pusty i inny niż VIDEO 2 i VIDEO 3
  11. $enterVideo = "UPDATE `catalog_product_flat_1` SET `yt_link_3`='" . $videoIdADD . "' WHERE `sku`='" . $mySku . "' LIMIT 1;";
  12. $enterVideoQuery = $link->query($getVideos);
  13. }

nie da się tego prościej ?
nospor
Cytat
nie da się tego prościej ?

Da sie. Kapslokk napisal jak
phpamator
Ahahhaa no tak, ale bez wprowadzania zmian w strukturze bazy chciałem smile.gif
kapslokk
No to sie nie da tongue.gif Btw. pomyśl co Cie czeka jeśli będziesz chciał zmienić ilość filmów np z 3 na 6 biggrin.gif Powodzenia i miłej zabawy smile.gif
phpamator
Na szczęście w najbliższym czasie nie palnuję ale wezmę to pod uwagę smile.gif
Dziękuję za podpowiedzi Panowie/Panie.

Pozdrawiam
com
phpamator lepiej wcześniej dokonać zmian niż potem przebudowywać całość, co będzie bardziej kosztowne.
phpamator
Zgadzam się, niemniej, ponieważ ktoś to wcześniej tak właśnie zbudował .... ja tylko usprawniam co nieco smile.gif
Jeśli zajdzie potrzeba rozwijania ..... z pewnością zapytam smile.gif
Puszy
Możesz dostosować pod siebie rozwiązanie z tego posta http://stackoverflow.com/a/15061507/2621852
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.