Witam.
Mam do zrobienia projekt bazy zintegrowanej ze stronką. Coś prostego. W zasadzie wszystko już jest, są tylko 2 "małe" zgrzyty, z czego zależy mi najbardziej na rozwiązaniu tego drugiego:
- Podczas próby zrobienia update przez php wyrzuca błąd 403. Sprawdziłem na necie i podobno może być to związane z brakiem uprawnień do wywołania. Serwis stoi na darmowym hoście - może być to jego wina?
- Mam zapytanie, które ma wyświetlić niezbędne informacji odnośnie przepisu. Wykorzystałem tam funkcje typu group_concat() , aby wyświetlić ładnie po przecinku składniki czy przybory w jednej tabeli, ALE... w bazie mam przepisów 7-8 (testowo), a wyświetla mi się parę mniej. Zastanawiam się czy to nie wina JOINów, bo trochę ich nawrzucałem, ale... każe mini-zapytanie działa dobrze, ale przy group_concat() nie można (źle działa) użyć UNION. Wrzucam zapytanie oraz link do struktury bazy danych:
SELECT TRIM( nazwa_przepisu ) AS 'Nazwa przepisu',
IFNULL(TRIM(nick_autora), 'Autor nieznany') AS 'Autor przepisu',
data_dodania AS 'Data dodania',
GROUP_CONCAT( DISTINCT TRIM( rodzaj_dania ) ORDER BY rodzaj_dania ASC SEPARATOR ', ' ) AS 'Rodzaj dania',
TRIM(czas_przygotowania) AS 'Czas przygotowania',
TRIM(koszt_przygotowania) AS 'Koszt przygotowania',
TRIM(stopien_skomplikowania_przepisu) AS 'Stopien skomplikowania',
TRIM(opis_zdjecia) AS 'Opis zdjęcia',
TRIM(url_zdjecia) AS 'URL zdjęcia',
TRIM(prawa_autorskie) AS 'Copyright by ',
GROUP_CONCAT( DISTINCT TRIM( nazwa_przyboru ) ORDER BY nazwa_przyboru ASC SEPARATOR ', ' ) AS 'Niezbędne przybory',
GROUP_CONCAT( DISTINCT TRIM( nazwa_skladnika ) , CASE WHEN ilosc_skladnikow = '' THEN '' ELSE ' (' END, TRIM( ilosc_skladnikow ) , CASE WHEN ilosc_skladnikow = '' THEN '' ELSE ')' END ORDER BY nazwa_skladnika ASC SEPARATOR ', ' ) AS 'Składniki',
TRIM( opis_wykonania ) AS 'Opis wykonania'
FROM `Przepisy`
JOIN Przepisy_Skladniki ON Przepisy.id_przepisu = Przepisy_Skladniki.id_przepisu
JOIN Skladniki ON Przepisy_Skladniki.id_skladnika = Skladniki.id_skladnika
JOIN Przepisy_Przybory ON Przepisy.id_przepisu = Przepisy_Przybory.id_przepisu
JOIN Przybory ON Przepisy_Przybory.id_przyboru = Przybory.id_przyboru
LEFT JOIN CzasyPrzygotowan ON Przepisy.id_czasu_przygotowania = CzasyPrzygotowan.id_czasu_przygotowania
LEFT JOIN Przepisy_RodzajeDan ON Przepisy.id_przepisu = Przepisy_RodzajeDan.id_przepisu
LEFT JOIN RodzajeDan ON Przepisy_RodzajeDan.id_rodzaju_dania = RodzajeDan.id_rodzaju_dania
LEFT JOIN StopnieSkomplikowania ON Przepisy.id_stopnia_skomplikowania = StopnieSkomplikowania.id_stopnia_skomplikowania
JOIN Zdjecia ON Przepisy.id_zdjecia = Zdjecia.id_zdjecia
LEFT JOIN Autorzy ON Przepisy.id_autora = Autorzy.id_autora
LEFT JOIN KosztyPrzygotowan ON Przepisy.id_kosztu = KosztyPrzygotowan.id_kosztu
GROUP BY nazwa_przepisu
ORDER BY nazwa_przepisu ASC
Link do struktury: http://i.imgur.com/JES24wf.png