Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Książka "od podstaw PHP4" czy jest ważne jaka wersja php jest zainstalowana na serwerze?
Forum PHP.pl > Forum > Przedszkole
cosmatus
Kłaniam się Wszystkim!
Jest to mój pierwszy post na tym Forum i jesli nie trafiłem z tematem prosze o wyrozumiałość lub przeniesienie do odpowiedniego działu.

Rozpocząłem zabawę z PHP na podstawie książki "Od podstaw PHP4" dotarłem do rozdziału 16 - "Generacja grafiki"
No i trafiłem na mur dla mnie nie do przebycia - Tworzenie planu centrum handlowego.
Aplikacja składa się z trzech plików:
Index.html
  1. <HEAD><TITLE>Interaktywne Centrum Handlowe</TITLE></HEAD>
  2. <FRAMESET COLS="200,*">
  3. <FRAME NAME="sidebar" SRC="menu.html" FRAMEBORDER="No" BORDER=0 NORESIZE>
  4. <FRAME NAME="mall" SRC="blank.html" FRAMEBORDER="No" BORDER=0 NORESIZE>
  5. </FRAMESET>


Menu:
  1. <HTML>
  2. <BODY>
  3. Podaj czego szukasz...
  4. <FORM NAME="search" ACTION="mall.php" TARGET="mall">
  5. <INPUT TYPE="text" NAME="criteria" SIZE="15">
  6. <BR>
  7. <INPUT TYPE="submit" VALUE="Szukaj">
  8. </FORM>
  9. </BODY>
  10. </HTML>


Blank:
  1.  
  2. No szukamy!
  3.  
  4. </body>
  5. </html>


mall.php:
  1. <?php
  2. //mall.php
  3. include "../common_db.inc";
  4.  
  5. if ($criteria!="") {
  6. $link_id = db_connect('mapping');
  7. $query = "SELECT * FROM mall WHERE m_name LIKE '%".$criteria."%' ";
  8. $mallResult = mysql_query($query, $link_id);
  9.  
  10. if (mysql_num_rows($mallResult) > 0) {
  11. while ($mallRow = mysql_fetch_array($mallResult)) {
  12. echo $mallRow[0]."<BR>";
  13. }
  14. }
  15. }
  16. ?>


Baza Mysql - mapping- działa poprawnie, bo gdy zadaje to zapytanie z terminala to jest Ok, natomiast skrypt mi NIC nie wyswietla, żadnych wyników. dodam, że nieco zmodyfikowałem zapytanie szukając jakiegoś rozwiązania. Pytając bazę o 'gazety' z tabeli mall nawet w terminalu nie otrzymywałem wyników a przeciez gazety stoją jak wół w tej kolumnie.
  1.  
  2.  
  3. mysql> SELECT * FROM mall WHERE m_name LIKE 'kolporter';
  4. +------+---------+--------+-----------+----------+-----------------------------+----------+-------------------------------------------------------------------+
  5. | m_id | m_floor | m_shop | m_name | m_phone | m_area | m_center | m_desc |
  6. +------+---------+--------+-----------+----------+-----------------------------+----------+-------------------------------------------------------------------+
  7. | 2 | G | G2 | Kolporter | 555-6843 | 300,0,300,100,350,100,350,0 | 325,50 | gazety,magazyny,periodyki,materia?y pi?miennicze,kolportarz,prasa |
  8. +------+---------+--------+-----------+----------+-----------------------------+----------+-------------------------------------------------------------------+
  9. 1 row IN SET (0.00 sec)
  10.  
  11. mysql>


Zapytanie o gazety:
  1. mysql> SELECT * FROM mall WHERE m_desc LIKE 'gazety';
  2. Empty SET (0.00 sec)
  3.  
  4. mysql>

Oryginalne zapytanie z książki:
  1. $query = "SELECT m_id FROM mall WHERE m_desc LIKE '%".$criteria."%'";

Serwer apache2, Mysql5, PHP5, GD zainstalowane, edyto Bluefish.
W zasadzie wszystkie inne skrypty, chocby z książki " PHP i MySQL Tworzenie stron WWW"
działają. Znalazłem w necie kody tych skryptów, bo myslałem, że mam jakieś błędy w tekscie, których nie dostrzegam.
Dlaczego ten jeden nie wyswietla żadnych wyników , nieważne jakie zapytanie bym nie wpisał w skrypcie?
minolone
Witam.

w "Menu" zamien to

  1. <FORM NAME="search" ACTION="mall.php" TARGET="mall">


na to

  1. <FORM NAME="search" ACTION="mall.php" TARGET="mall" METHOD="post">


a w "mall.php" dodaj na górze po znaczniku 
  1. <?php
to


  1. $criteria = $_POST['criteria'];


powinno pomoc, pozdrawiam




cosmatus
Dzięki minolone - Pomogło!
Otrzymuje teraz wyniki w formie tekstowej, jednak juz widzę krzaki przy próbie wyswietlenia w formie graficznej.
Ale nie chce Wam głowy tym zawracać, ze 100 kartek książki wstecz i "replay" sciana.gif

A czy mógłbyś skrobnąć coś w temacie dlaczego nie chodziło na podstawie skryptów z książki?


minolone
Kolego moim zdaniem to był ten powód, niedociągnięcie w książce, nie jestem znowu jakimś nie wiadomo znawcą, ale wydaje mi się że formularz musi zostać wysłany z jakąś metodą " POST, GET", pamiętam swojego czasu czytałem książkę "PHP i MySQL - Tworzenie stron WWW - Vademecum profesjonalisty - wyd 3" i tam też było kilka niedociągnięć. najważniejsze że działa, jeżeli mówisz o krzakach może chodzi ci o kodowanie w sekcji <HEAD>

[HTML] pobierz, plaintext
  1. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
  2.  
  3. <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
[HTML] pobierz, plaintext

jeżeli nie to napewno znajdą się osoby które będą ci w stanie pomóc, pisz śmiało nawet w tym temacie żeby nie zaśmiecać forum.

EDIT


Kolego rozmawiałem na ten temat ze znajomym, powiedział mi ze jeżeli w <form> nie będziesz miał METHOD=POST to wtedy automatycznie zostaje wysłane metodą GET czyli tak jak pewnie zauważyłeś pojawia się też w adresie strony, ale w pliku mall.php musisz mieć odebranie tego czyli wtedy $_GET['criteria']; , tak jak ci już napisałem jest to jest to pewnie niedociągnięcie w książce. PS. w GET jest ograniczenie, poczytaj tutaj

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.