Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][mysql] Zapytanie do bazy, Co w nim jest zle?
lukash82
post
Post #1





Grupa: Zarejestrowani
Postów: 320
Pomógł: 2
Dołączył: 17.03.2006
Skąd: Siemianowice

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


Witam. Mam kolejne pytanko do Was... Robie sobie takie menu do stronki. Mam narzucone odgornie, ze strona musi dzialac w oparciu o baze danych:/ Moze na poczatek troche kodu:
  1. <HTML>
  2. <HEAD>
  3. <TITLE>
  4. BIP
  5. </TITLE>
  6. <meta http-equiv="Content-Type" content="text/html; CHARSET=iso-8859-2">
  7. <link rel="stylesheet" type="text/css" href="css.css">
  8. </HEAD>
  9. <BODY>
  10. <div align="center">
  11. <div id="strona">
  12. <div id="naglowek">
  13. </div>
  14. <div id="menu">
  15. <ul>
  16. <li><a href="index.php?url=kat100">Kategoria 1</a></li>
  17. <li><a href="index.php?url=kat200">Kategoria 2</a></li>
  18. </ul>
  19. </div>
  20. <div id="teksty">
  21. <?php
  22. $connect = mysql_connect("localhost", "root", "krasnal") or die ("Sprawdź połączenie z bazą danych.");
  23. if (!isset($_REQUEST["url"]))
  24. $url="kat100";
  25. else
  26. $url=$_REQUEST["url"];
  27. switch ($url)
  28. {
  29. case "kat100":
  30. echo "strona glowna";
  31. break;
  32. case "kat200":
  33. $query = "SELECT kategoria, tekst FROM Menu WHERE kategoria='kat200'";
  34. $results = mysql_query($query) or die(mysql_error());
  35. echo "$tekst";
  36. break;
  37. default:
  38. echo "zadna opcja nie dziala wiec nic nie zobaczysz...";
  39. }
  40. ?>
  41. </div>
  42. </div>
  43. </div>
  44. </BODY>
  45. </HTML>

Baza danych nazywa sie bip, mam w niej tabele Menu i w niej dwie kolumny kategoria i tekst. NIe wiem co jest zle w tym zapytaniu do bazy ale po kliknieciu powinna sie pojawic moim zdaniem zawartosc pola $tekst ale niestety nic sie nie pojawia. Sprawdzilem zawartosc zmiennej $results ale tam wyskoczylo mi $resource#id5 wiec chyba jesdnak zapytanie jest zle...:/ Jesli widzicie w tym jakis blad to pomozcie bo mi sie pomysly juz powoli koncza:/ Pozdrawiam, Łukasz.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
ale tam wyskoczylo mi $resource#id5

rety... manual zamkneli? Zobacz w manualu co zwraca mysql_query, a dowiesz sie ze jest to dobry wynik. Nastepnie doczytaj dalej w tym manuala jak dobrac sie do wynikow twojego zapytania, bo:
echo "$tekst";
to nie jest poprawne.

http://pl2.php.net/manual/pl/function.mysql-query.php
a pobierasz tym:
http://pl2.php.net/manual/pl/function.mysql-fetch-array.php
przejrzyj przyklady
Go to the top of the page
+Quote Post
lukash82
post
Post #3





Grupa: Zarejestrowani
Postów: 320
Pomógł: 2
Dołączył: 17.03.2006
Skąd: Siemianowice

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


Ok. Dzieki za szybko podpowiedz. Zamienilem teraz
  1. <?php
  2. echo "$tekst";
  3. ?>

na cos takiego:
  1. <?php
  2. while ($row = mysql_fetch_array($results)) 
  3. { 
  4. extract($row);
  5. echo "$tekst";
  6. }
  7. ?>

No i niby cos sie ruszylo, ale teraz az za bardzo... Tzn wyswietla mi tekst ze wszystkich wierszy kolumny tekst a nie tylko tam gdzie kategoria=kat200. Jak to ograniczyc tylko do tej kategorii?
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no skoro w zapytaniu masz:
kategoria='kat200'
i wyswietla ci wszystkie rekordy, znaczy ze wszystkie rekordy spelniaja ten warunek (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

pokaz kod po zmianach bo moze jeszcze cos namotales
Go to the top of the page
+Quote Post
lukash82
post
Post #5





Grupa: Zarejestrowani
Postów: 320
Pomógł: 2
Dołączył: 17.03.2006
Skąd: Siemianowice

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


NO wlasnie sie domyslam ze cos z tym kat200 bedzie nie tak ale nie wiem co... Kod po zmianach wyglada tak:
  1. <HTML>
  2. <HEAD>
  3. <TITLE>
  4. BIP
  5. </TITLE>
  6. <meta http-equiv="Content-Type" content="text/html; CHARSET=iso-8859-2">
  7. <link rel="stylesheet" type="text/css" href="css.css">
  8. </HEAD>
  9. <BODY>
  10. <div align="center">
  11. <div id="strona">
  12. <div id="naglowek">
  13. </div>
  14. <div id="menu">
  15. <ul>
  16. <li><a href="index.php?url=kat100">Kategoria 1</a></li>
  17. <li><a href="index.php?url=kat200">Kategoria 2</a></li>
  18. </ul>
  19. </div>
  20. <div id="teksty">
  21. <?php
  22. $connect = mysql_connect("localhost", "root", "krasnal") or die ("Sprawdź połączenie z bazą danych.");
  23. switch ($url)
  24. {
  25. case "kat100":
  26. echo "strona glowna";
  27. break;
  28. case "kat200":
  29. $query = "SELECT kategoria, tekst FROM Menu WHERE kategoria='kat200'";
  30. $results = mysql_query($query) or die(mysql_error());
  31. while ($row = mysql_fetch_array($results)) 
  32. { 
  33. extract($row);
  34. echo "$tekst";
  35.  
  36. }
  37. break;
  38. default:
  39. echo "zadna nie dziala wiec nic nie zobaczysz...";
  40. }
  41. ?>
  42. </div>
  43. </div>
  44. </div>
  45. </BODY>
  46. </HTML>


Acha, no i sa tylko narazie dwa wiersze w bazie danych. Do kategorii pierwszej tez bede chcial zrobic takie zapytanie ale narazie nie chce zaciemniac kodu... Wynik powinien byc rowny tylko jednemu wierszowi bo tak teraz jest a on mi wywala obydwa...

Ten post edytował lukash82 8.08.2007, 13:30:30
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




nie:
  1. <?php
  2. extract($row);
  3. echo "$tekst";
  4. ?>

a:
  1. <?php
  2. echo $row['tekst'];
  3. ?>

(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Edit:
hmm, choc w zasadzie to bez roznicy. Najwyrazniej jednak oba rekordy spelniaja ten warunek. Napewno masz oba rozne w tym polu? sprawdz
Go to the top of the page
+Quote Post
lukash82
post
Post #7





Grupa: Zarejestrowani
Postów: 320
Pomógł: 2
Dołączył: 17.03.2006
Skąd: Siemianowice

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


Tak tez juz probowalem, Niestety wynik jest ten sam czyli zwraca mi wszystkie wartosci z kolumny tekst a wedlug zapytania powinno mi zwrocic tyko tam gdzie kategoria=kat200. Co do niecheci do manuala to czytam go gdy jest mi potrzebny ale jakos niebardzo mi potem idzie wykorzystywanie go w praktyce:/ Masz moze jeszcze jakis pomysl jak to rozwiazac? Pozdrawiam
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 16:26