Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Nietypowe przyporządkowanie tablicy do bazy
Forum PHP.pl > Forum > Przedszkole
djgarsi
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.
slash^
Pokaz strukture tabel w bazie.
djgarsi


i chcę odpowiedni dzień wrzucić do pona nazwa_dnia
slash^
Rozumiem, że pole nazwa_partii_miesniowej, zawiera wartosci np. plecy, barki, klatka piersiowa odpowiadajace polom w tablicy z php?
djgarsi
tak, oczywiście
slash^
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.
djgarsi
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ść
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 "

slash^
Do powyższego wystarczy zmienić:

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


i smiga :-)
djgarsi
Super, dziękuję wink.gif
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.