Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Warunkowe wykonywanie zapisu do bazy - jak najprościej?
phpamator
post 24.01.2017, 10:38:39
Post #1





Grupa: Zarejestrowani
Postów: 321
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

Ostrzeżenie: (0%)
-----


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 ?

Go to the top of the page
+Quote Post
kapslokk
post 24.01.2017, 10:41:24
Post #2





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
phpamator
post 24.01.2017, 11:37:57
Post #3





Grupa: Zarejestrowani
Postów: 321
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

Ostrzeżenie: (0%)
-----


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 ?

Ten post edytował phpamator 24.01.2017, 11:39:15
Go to the top of the page
+Quote Post
nospor
post 24.01.2017, 11:38:41
Post #4





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Cytat
nie da się tego prościej ?

Da sie. Kapslokk napisal jak


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
phpamator
post 24.01.2017, 11:39:54
Post #5





Grupa: Zarejestrowani
Postów: 321
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

Ostrzeżenie: (0%)
-----


Ahahhaa no tak, ale bez wprowadzania zmian w strukturze bazy chciałem smile.gif
Go to the top of the page
+Quote Post
kapslokk
post 24.01.2017, 11:48:17
Post #6





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
phpamator
post 24.01.2017, 12:22:05
Post #7





Grupa: Zarejestrowani
Postów: 321
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

Ostrzeżenie: (0%)
-----


Na szczęście w najbliższym czasie nie palnuję ale wezmę to pod uwagę smile.gif
Dziękuję za podpowiedzi Panowie/Panie.

Pozdrawiam
Go to the top of the page
+Quote Post
com
post 24.01.2017, 12:25:14
Post #8





Grupa: Zarejestrowani
Postów: 3 033
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


phpamator lepiej wcześniej dokonać zmian niż potem przebudowywać całość, co będzie bardziej kosztowne.
Go to the top of the page
+Quote Post
phpamator
post 24.01.2017, 12:57:26
Post #9





Grupa: Zarejestrowani
Postów: 321
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

Ostrzeżenie: (0%)
-----


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

Ten post edytował phpamator 24.01.2017, 12:58:03
Go to the top of the page
+Quote Post
Puszy
post 24.01.2017, 16:06:32
Post #10





Grupa: Zarejestrowani
Postów: 279
Pomógł: 42
Dołączył: 10.10.2011

Ostrzeżenie: (0%)
-----


Możesz dostosować pod siebie rozwiązanie z tego posta http://stackoverflow.com/a/15061507/2621852
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2024 - 11:05