Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> query was empty
Ka-lolek
post
Post #1





Grupa: Zarejestrowani
Postów: 104
Pomógł: 0
Dołączył: 26.01.2005

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


Witam,
mam taki skrypt:
  1. <?php
  2.  
  3. //utwórz połączenia z bazą danych
  4. $conn = mysql_connect(&#092;"localhost\", \"root\", \"root\") or die(mysql_error());
  5. $db = mysql_select_db(&#092;"MyDB\", $conn) or die(mysl_error());
  6. //polecenie sql
  7. $get_cats = &#092;"SELECT DISTINCT CATEGORY FROM MASTER_PRODUCTS ORDER BY CATEGORY\";
  8. $get_cats_res = mysql_query($sql, $conn) or die(mysql_error());
  9. //sprawdz czy są jakiekolwiek kategorie
  10. if(mysql_num_rows($get_cats_res) < 1) {
  11. $display_block = &#092;"<p>Przepraszamy, brak kategorii</p>\";
  12. } else {
  13. //jezeli nie bylo, to wyswietl odpowiedni tekst ^, a jezeli sa, to:
  14. //jezeli sa, to wyswietl je wraz z zawartoscia tych kategorii:
  15. while ($cat = mysql_fetch_array($get_cats_res))
  16. {
  17. $display_block .= &#092;"<p><strong>$cat[CATEGORY]</strong></p> <ul>\";
  18. //pobierz z bazy danych ksiazki , ktore sa z danej kategorii
  19. $get_books = &#092;"SELECT ID, TITLE, AUTHOR FROM MASTER_PRODUCTS
  20.  WHERE CATEGORY=$cat[CATEGORY]&#092;";
  21. $get_books_res = mysql_query($get_books, $conn) or die(mysql_error());
  22. while ( $book = mysql_fetch_array($get_books_res))
  23. {
  24. $display_block .= &#092;"<li><a href=\"shop_iteminfo.php?id=$id\">
  25. <strong>$book[TITLE]</strong></a>
  26. <em>(by $book[AUTHOR])</em>&#092;";
  27. }
  28.  $display_block .= &#092;"</ul>\";
  29.  
  30.  }
  31. }
  32. ?>
  33. <html>
  34. <head>
  35. <title>SKLEP FIRMY XYZ: Widok według kategorii</title>
  36. </head>
  37. <body>
  38. <h1>Sklep firmy XYZ: Lista kategorii</h1>
  39. <? echo &#092;"$display_block\"; ?>
  40. </body>
  41. </html>


I pierwsze pytanie brzmi:
co jest w nim źle, ponieważ pojawia mi się błąd
Kod
query was empty

i nic więcej. Ani numeru lini , w której jest błąd - nic!:( Dlatego zwracam się z prośbą do was, bo skoro nie pisze mniej więcej miejsca gdzie mam szukać błędu, to pewnie go nie znajdę , bo jestem za mało obeznany w php:)

Drugie moje pytanie odnosi się tego, że Jabol i aleksander mowili, iz nazwy zmiennych w tablicy asocjacyjnej nalezy dawac w " lub ' .
zatem mialem tak napisane w tym fragmencie tego skryptu co powyzej (od powyzszego fragmentu rozni sie tym, ze zamiast $cat[CATEGORY] jest $cat['CATEGORY']) i ten skrypt nie działa: (zadzialal dopiero po usunieciu apostrofow dookola tych zmiennych tablicy asocjacyjnej)
  1. <?php
  2.  
  3. while ($cat = mysql_fetch_array($get_cats_res))
  4. {
  5. $display_block .= &#092;"<p><strong>$cat['CATEGORY']</strong></p> <ul>\";
  6. //pobierz z bazy danych ksiazki , ktore sa z danej kategorii
  7. $get_books = &#092;"SELECT ID, TITLE, AUTHOR FROM MASTER_PRODUCTS
  8.  WHERE CATEGORY=$cat['CATEGORY]'&#092;";
  9. $get_books_res = mysql_query($get_books, $conn) or die(mysql_error());
  10. while ( $book = mysql_fetch_array($get_books_res))
  11. {
  12. $display_block .= &#092;"<li><a href=\"shop_iteminfo.php?id=$id\">
  13. <strong>$book['TITLE']</strong></a>
  14. <em>(by $book['AUTHOR'])</em>&#092;";
  15. }
  16.  $display_block .= &#092;"</ul>\";
  17.  
  18.  }
  19.  
  20. ?>



No , to by bylo na tyle. prosze o pomoc:)
Pozdrawiam
Ka-lolek
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zbig13
post
Post #2





Grupa: Zarejestrowani
Postów: 214
Pomógł: 0
Dołączył: 3.04.2004
Skąd: Legionowo

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


Tu nie ma zbyt wiele do tłumaczenia, a co dopiero pisać o tym teksty naukowe (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Znaki apsotrofu (' ') powinno sie stosować w nazwie każdej zmiennej superglobalnej (np. $_POST['']), tablicy asocjacyjnej itp, pod warunkiem, że klucz jest tekstem a nie liczbą. Czyli np. :
  1. <?php
  2.  
  3. $tablica['klucz'] = 'wartośc'; // Klucz jest łańcuchem znaków.
  4. $tablica[0] = 'wartość'; // Klucz jest cyfrą. Tu nie stosuje się apostrofów,
  5.  
  6. ?>

A jeśli chodzi o nawiasy klamrowe { } to używa się ich wtedy, gdy dana zmienna superglobalna lub tablica występuje w łańcuchu:
  1. <?php
  2.  
  3. $string = &#092;"Jakiś tekst {$tablica['klucz']}. I kolejny tekst\"; // Tablica, klucz jest łańcuchem.
  4. $string = &#092;"Jakiś tekst {$tablica[3]}. Dalszy ciąg tekstu\"; // Tablica, klucz jest cyfrą.
  5. $string = &#092;"Jakiś tekst {$_POST['zmienna']}. itd...\"; // Zmienna superglobalna.
  6.  
  7. ?>

Natomiast jeśli przypisujesz element tablicy lub zmienną superglobalną do zwykłej zmiennej to nie używasz nawiasów klamrowych.
  1. <?php
  2.  
  3. $imie = $_POST['imie']; // Zmienna superglobalna.
  4. $kowalski = $nazwiska[4]; // Tablica, klucz jest cyfrą.
  5.  
  6. ?>

Mam nadzieję, że teraz już jest wszystko jasne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Zajrzyj jeszcze do manuala i poczytaj trochę o używaniu tablic i zmiennych superglobalnych.
Pozdrawiam!
Go to the top of the page
+Quote Post

Posty w temacie


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: 11.10.2025 - 15:59