Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]require/inlude i wybor wszystkich danych z zapytania do bazy
Forum PHP.pl > Forum > Przedszkole
bercow
Witam.

Starając się napisać coś, co zachowuje prowizorycznie MVC, stworzyłem takie coś, ale w jaki sposób inludujac plik, wczytać wszystkie dane z bazy. Jezeli dobrze rozumiem MVC, nie mogą tam występować pętle itd., czyli PHP, jedynie, jakis HTML, wstawione po prostu $zmienna, i tyle. Wynikiem jest jedynie Kategoria 5. Czyli ostatnia wartość. mimo iż w bazie jest więcej.
  1. (1, 'Kategoria 1', 1, 1, 1),
  2. (2, 'Kategoria 2', 1, 1, 0),
  3. (3, 'Kategoria 3', 1, 1, 1),
  4. (4, 'Kategoria 4', 1, 1, 0),
  5. (5, 'Kategoria 5', 1, 1, 1);


index.php
  1. <?php
  2.  
  3. require "components/menu.php";
  4.  
  5. echo $menu_name;
  6. ?>


menu.php
  1. <?php
  2.  
  3. require "components/connection.php";
  4. connection();
  5.  
  6. $query = mysql_query("SELECT * FROM menu")
  7. or die('Błąd zapytania');
  8. if(mysql_num_rows($query) > 0) {
  9. while($m = mysql_fetch_assoc($query)) {
  10. if ($m['visible'] == True)
  11. {
  12. $menu_name = $m['name'];
  13. $menu_position = $m['position'];
  14. $menu_permit = $m['permit'];
  15. $menu_visible = $m['visible'];
  16. }
  17. }
  18. }
  19. ?>

pmir13
Za każdym przejściem pętli podstawiasz nowe wartości do czterech zmiennych, nic z nimi nie robiąc, więc naturalnie ostatnie wartości zostają.
bercow
To jak przechwycić wszystkie wartości i np. wstawić w tabelkę, zachowując MVC
pmir13
Możesz rozwinąć myśl o MVC i pętlach?
Jak widzisz poszczególne elementy wzorca u siebie w kodzie?
bercow
Jak widzę MCV, mam na myśli podzielenie wszystkie na trzy części
1. Cały kod PHP.
2. Cały kod HTML, czyli pseudo wizualne rozmieszczenie danych.
3. Wygląd strony w div i CSS.

Chciał bym za pomocą <table><tr><td><?php echo $menu_name; ?> </td></tr></table> Uzykac tabele z trzema warosciami, Kategoria1, Kategoria3, Kategoria5. Oczywiscie wiem, ze to nie zadziała.

Jeżeli dobrze rozumiem MVC, umożliwia on oddzielnie skryptu od prezentacji, czyli w jednym pliku moge wynik zapisac w tabeli, na strone, a w drugim RSS. Wszytsko za pomoca jednego skryptu PHP, wyłapującego z bazy to co chce.

Mam nadzieje, ze polaczy smile.gif

A druga sprawa, jak napisac funkcje ktora po zapytanie($menu), zwroci nam cale $manu z bazy, cos w styelu: ....
  1. function zapytanie($tabela) {
  2. global $query = mysql_query("SELECT * FROM $tabela") or die ('Błąd zapytania');
  3. }

pmir13
Funkcja zwraca wartość przy pomocy return.
  1. function dodawanie( $a, $b )
  2. {
  3. $wynik = $a + $b;
  4. return $wynik;
  5. // lub od razu return $a + $b;
  6. }
  7. // i wtedy wywołujemy ją:
  8. $suma = dodawanie(1,2);

Na twoim miejscu nie przejmowałbym się wzorcami i dziwnymi regułami tylko próbował zrobić najpierw coś co działa, przy czym php wyrzucałby poprawny walidujący się html, który mógłbyś sobie obejrzeć w surowej postaci, a style css robiłyby z tego przyzwoicie wyglądającą stronę.
bercow
Dajmy na to taki kod, musze jednoczesnie zrobic z niego menu na strone, i rss, albo cos innego. Oddzielajac PHP od HTML, bedzie duzo latwiej, tworze jeden plik do generowania calego kodu, a potem mozliwosci wyswietlania ile tylko chce moge zrobic. Prezentuje kod, i jego wynik
  1. <?php
  2.  
  3. require "connection.php";
  4. connection();
  5.  
  6. $query = mysql_query("SELECT * FROM menu") or die('Błąd zapytania');
  7. if(mysql_num_rows($query) > 0) {
  8. while($m = mysql_fetch_assoc($query)) {
  9. if ($m['visible'] == True) {
  10. echo $menu_name = $m['name'];
  11. $query2 = mysql_query("SELECT * FROM sub_menu WHERE id_menu=".$m['id_menu']) or die('Błąd zapytania');
  12. if(mysql_num_rows($query2) > 0) {
  13. echo '<ul>';
  14. while($sm = mysql_fetch_assoc($query2)) {
  15. echo '<li>'.$sm['name'].'</li>';
  16. }
  17. echo '</ul>';
  18. }
  19. }
  20. }
  21. }
  22. ?>

Kategoria 1
  • sub_menu 1
  • sub_menu 6
  • sub_menu 11

Kategoria 3
  • sub_menu 3
  • sub_menu 8
  • sub_menu 13

Kategoria 5
  • sub_menu 5
  • sub_menu 10
  • sub_menu 15
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.