Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Nietypowe przyporządkowanie tablicy do bazy
djgarsi
post 29.03.2014, 10:35:58
Post #1





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

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


Witam. Piszę pewną apikację webową i jak to bywa, napotkałem problem.
Otóż aplikacja jest narzędziem do generowania treningów. Mam tablicę z podziałem partii na dni:
  1. (
  2. [poniedzialek] => Array
  3. (
  4. [0] => klatka piersiowa
  5. [1] => biceps
  6. )
  7.  
  8. [wtorek] => Array
  9. (
  10. [0] => plecy
  11. [1] => triseps
  12. )
  13.  
  14. [sroda] => Array
  15. (
  16. [0] => nogi
  17. )
  18.  
  19. [piatek] => Array
  20. (
  21. [0] => barki
  22. )
  23.  
  24. )


W bazie mam tabelę z ćwiczeniami na konkretne partie. I teraz generując tygodniowy trening chciałbym przyporządkować do konktretnego ćwiczenia nazwę dnia w którym będzie się odbywało, czyli np.

pompki -> poniedziałek
wyciskanie -> poniedziałek
modlitewnik -> poniedzialek
martwy ciag -> wtorek
francuz -> wtorek
itd.

Chodzi o to żeby na podstawie tej tablicy dopasować dzień.
Da się coś takiego zrobić?
Proszę o pomoc.


--------------------
Go to the top of the page
+Quote Post
slash^
post 29.03.2014, 10:49:48
Post #2





Grupa: Zarejestrowani
Postów: 278
Pomógł: 36
Dołączył: 9.04.2003
Skąd: Płock

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


Pokaz strukture tabel w bazie.


--------------------
d(^^)b
Go to the top of the page
+Quote Post
djgarsi
post 29.03.2014, 11:00:57
Post #3





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

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




i chcę odpowiedni dzień wrzucić do pona nazwa_dnia


--------------------
Go to the top of the page
+Quote Post
slash^
post 29.03.2014, 11:12:52
Post #4





Grupa: Zarejestrowani
Postów: 278
Pomógł: 36
Dołączył: 9.04.2003
Skąd: Płock

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


Rozumiem, że pole nazwa_partii_miesniowej, zawiera wartosci np. plecy, barki, klatka piersiowa odpowiadajace polom w tablicy z php?


--------------------
d(^^)b
Go to the top of the page
+Quote Post
djgarsi
post 29.03.2014, 11:13:25
Post #5





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

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


tak, oczywiście


--------------------
Go to the top of the page
+Quote Post
slash^
post 29.03.2014, 11:17:13
Post #6





Grupa: Zarejestrowani
Postów: 278
Pomógł: 36
Dołączył: 9.04.2003
Skąd: Płock

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


Możesz zatem pobrać selectem calą zawartość tej tabeli z bazy(lub tylko gdzie żądana wartość jest pusta) a potem w pętli porównywać ja z tabela z php i robic update pola z nazwa dnia.


--------------------
d(^^)b
Go to the top of the page
+Quote Post
djgarsi
post 29.03.2014, 11:19:57
Post #7





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

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


No właśnie nie bardzo wiem jak to porównać. Rozumiem że trzeba porównać wartość tablicy php z polem nazwa partii i w momencie jak będzie taka sama to wpisać do bazy klucz tej tablicy php tak?


--------------------
Go to the top of the page
+Quote Post
-Gość-
post 29.03.2014, 11:21:15
Post #8





Goście







zakladam ze masz tam juz rekordy i chcesz tylko dopasowac nazwe dnia
1) pobierasz wszystkie rekordy z bazy
2) wewnatrz petli po wszystkich rekordach przeszukujesz swoja tablice z mapowaniem dzien - partia i wybierasz odpowiedni dzien
Kod
//załóżmy, że szukasz tekstu "barki"
$to_find = 'barki';
$dzien = '';
foreach($tabela_mapowan as $dzien_tygodnia => $mapowanie_dnia)
{
    if (array_search($to_find, $mapowanie_dnia))
    {
         $dzien = $dzien_tygodnia;
         break;
    }
}
echo $dzien;
// powinno wyswietlic "piatek"
// nie testowane, ale powinno dzialac, jezeli za $tabela_mapowan przyjmiemy Twoja tablice z pierwszego postu

3) za pomoca zapytania UPDATE aktualizujesz dane w bazie http://dev.mysql.com/doc/refman/5.0/en/update.html
Kod
$sql = "UPDATE twoja_tabela set nazwa_dnia = $twoja_nazwa_dnia WHERE id = $id "

Go to the top of the page
+Quote Post
slash^
post 29.03.2014, 11:29:15
Post #9





Grupa: Zarejestrowani
Postów: 278
Pomógł: 36
Dołączył: 9.04.2003
Skąd: Płock

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


Do powyższego wystarczy zmienić:

  1. if (array_search($to_find, $mapowanie_dnia) !== false)


i smiga :-)


--------------------
d(^^)b
Go to the top of the page
+Quote Post
djgarsi
post 29.03.2014, 11:30:30
Post #10





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

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


Super, dziękuję wink.gif


--------------------
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: 14.08.2025 - 09:02