Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] wyszukiwarka - przełączanie na inna strone
Forum PHP.pl > Forum > Przedszkole
em-ba
Witam, w jaki sposób mogę uzyskać taki efekt w wyszukiwarce aby po kliknięciu submita "szukaj" po wpisaniu odpowiednich kryteriów były one wyświetlane w formularzu na innej stronie? dodam ze pole id jest przypisane inne dla jednej pozycji i jest niepowtarzalne
  1. <?php
  2. mysql_connect ('localhost', 'root', 'krasnal') or die ("nie udało sie połączyć");
  3. mysql_select_db('aaa') or die ("Nie mozna zlokalizowac bazy danych");
  4.  
  5. $dn = "SELECT * FROM `bbb` WHERE id LIKE '%".$id."%' AND date LIKE '%".$date."%'";
  6. $dn2 = mysql_query ($dn);
  7.  
  8.  
  9.  '<div>
  10.       <form action="wyszukiwarka1.php" method="POST">
  11.              <div>
  12.               <div id="md">
  13.                <div>
  14.                  <label for="id">nr miejsca:</label>
  15.                  <input id="id" name="id" class="text" type="text" maxlength="30" value="'.$dn2['id'].'" />
  16.                </div>
  17.                <div>
  18.                  <label for="date">data:</label>
  19.                  <input id="date" name="date" class="text" type="text" maxlength="30" value="'.$dn2['id'].'" />
  20.                </div>
  21.                <div>
  22.                  <input id="submit" class="submit" type="submit" value="Szukaj" />
  23.                </div>
  24.               </div>
  25.              </div>
  26.          </form>
  27.          </div>';
  28. ?>

formularz na kolejnej stronie mam zrobiony... chodzi mi o samo przełączenie smile.gif
lub, żeby dopiero po kliknięciu "szukaj" wyświetlił sie formularz z wyszukanymi danymi pod spodem wyszukiwarki (na tej samej str)
webasek
Nie bardzo rozumiem ale może chodzi o to żeby w tym nowym formularzu dać:

  1. <?php
  2. '<div>
  3.      <form action="wyszukiwarka1.php" method="POST">
  4.             <div>
  5.              <div id="md">
  6.               <div>
  7.                 <label for="id">nr miejsca:</label>
  8.                 <input id="id" name="id" class="text" type="text" maxlength="30" value="'.$_POST['id'].'" />
  9.               </div>
  10.               <div>
  11.                 <label for="date">data:</label>
  12.                 <input id="date" name="date" class="text" type="text" maxlength="30" value="'.$_POST['date'].'" />
  13.               </div>
  14.               <div>
  15.                 <input id="submit" class="submit" type="submit" value="Szukaj" />
  16.               </div>
  17.              </div>
  18.             </div>
  19.         </form>
  20.         </div>';
  21. ?>


Wtedy w formularzu na następnej stronie będzie wpisane to co wyszukiwane. Czy o to chodzi?
em-ba
tzn. chodzi mi o to, ze na jednej stronie mam pola z kryteriami wyszukiwania, a na drugiej mam formularz do ktorego te kryteria są pobierane...
golaod
Wciąż nie wiadomo o co Ci chodzi.
Pierwsza strona to formularz w którym się coś wpisuje, dajmy na to datę tak ?
Po kliknięciu szukaj, możesz przekierować stronę albo do niej samej albo do innej np. właśnie do drugiego skryptu jak w Twoim przypadku.
Ok to jest zrozumiałe ale co ty chcesz osiągnąć w tym drugim skrypcie ?
Ma się pojawić taki sam formularz (zakładając, że formularz to TYLKO pola do wypełnienia - bo tak właśnie jest) tylko z danymi które ktoś wprowadził we WCZEŚNIEJSZYM formularzu ?
Czy Tobie raczej chodzi o to, że jak otrzymałeś już te dane z formularza to chcesz ODSZUKAĆ coś w bazie i potem wyświetlić to ? Błagam następnym razem pisać dokładnie najlepiej podając jakiś przykład, żeby było łatwiej to zobaczyć.

@edit

Przy okazji to Twój skrypt jest błędny bo w zmiennej dn2 posiadasz tylko identyfikator do zapytania, nie zaś wynik.
Po drugie wprowadzasz do formularza 2 razy tą samą rzecz czyli $dn2['id'] a powinno być chyba jeszcze $dn2['data']
em-ba
ok.. moze napisze jeszcze raz bardziej zrozumiale... (to moja pierwsza wyszukiwarka i dlatego mam z tym problem)
a więc tak.. mam strone wyszukiwarka1.php. znajduje się na niej jedno pole do wyszukiwania numeru miejsca (parkingowego) przechowywanego w bazie danych...
wiec zrobiłem taki plik wyszukiwarka1.php
  1. <?php
  2. mysql_connect ('localhost', 'root', 'krasnal') or die ("nie udało sie połączyć");
  3. mysql_select_db('aaa') or die ("Nie mozna zlokalizowac bazy danych");
  4.  
  5. $dn = "SELECT * FROM `bbb` WHERE id LIKE '%".$id."%'";
  6. $dn2 = mysql_query ($dn);
  7.  '<div>
  8.       <form action="wyszukiwarka2.php" method="POST">
  9.              <div>
  10.               <div id="md">
  11.                <div>
  12.                  <label for="id">nr miejsca:</label>
  13.                  <input id="id" name="id" class="text" type="text" maxlength="30" value="'.$dn2['id'].'" />
  14.                </div>
  15.                <div>
  16.                  <input id="submit" class="submit" type="submit" value="Szukaj" />
  17.                </div>
  18.               </div>
  19.              </div>
  20.          </form>
  21.          </div>';
  22. ?>

teraz chce aby pod wyszukiwarką lub najlepiej na drugiej stronie wyświetlił się formularz z reszta danych do tego miejsca parkingowego, np. nr tego miejsca, marka_auta, model_auta, itp
ta druga str nosi nazwe wyszukiwarka2.php na ktorej znajduja się pola do ktorych chce pobrac dane z bazy według numeru miejsca parkingowego
wyszukiwarka2.php
  1. <?php
  2. mysql_connect ('localhost', 'root', 'krasnal') or die ("nie udało sie połączyć");
  3. mysql_select_db('aaa') or die ("Nie mozna zlokalizowac bazy danych");
  4. '<div>
  5.      <form action="wyszukiwarka2.php" method="POST">
  6.             <div>
  7.              <div id="md">
  8.               <div>
  9.                 <label for="id">nr miejsca:</label>
  10.                 <input id="id" name="id" class="text" type="text" maxlength="30" readonly="readonly" value="'.$dn2['id'].'" />
  11.               </div>
  12.               <div>
  13.                 <label for="marka_auta">marka_auta:</label>
  14.                 <input id="marka_auta" name="marka_auta" class="text" type="text" maxlength="30" readonly="readonly" value="'.$dn2['marka_auta'].'" />
  15.               </div>
  16.               <div>
  17.                 <label for="model_auta">model_auta:</label>
  18.                 <input id="model_auta" name="model_auta" class="text" type="text" maxlength="30" readonly="readonly" value="'.$dn2['model_auta'].'" />
  19.               </div>
  20.              </div>
  21.             </div>
  22.         </form>
  23.         </div>';
  24. ?>



....tylko, że nie pobiera mi danych do tego formularza co powinien je wyświetlać :/
golaod
Geh. Bo te Twoje skrypty w ogóle nie mają na celu tego robić. Po kolei zatem Ci wyjaśnie co zrobiłeś...

Przypuśćmy, że Twoja tabela bbb ma w sobie takie oto rekordy
id
--
1
2
3
4
5

Twój skrypt teraz łączy się z bazą ok (dodałbym tylko fakt, że warto przed tym a zaraz po znaczniku <?dać
  1. <?php
  2. ?>
ale to dla chętnych)
Następnie tworzysz zapytanie i wykonujesz zapytanie o identyfikator
czyli: $dn2 = mysql_query($dn) or die;
Wszystko w porządku ale to nie daje Ci jeszcze wyniku! Żeby takowy dostać trzeba użyć pętli (pętli dlatego, że nie ograniczasz swoich wyników sql przez np. LIMIT 1)
a zatem pętla:
  1. <?php
  2. while($wiersz = mysql_fetch_array($dn2))
  3. print_r($wiersz);
  4. ?>

dzięki temu wyświetlają Ci się wszystkie wyniki.
Wszystko fajnie pięknie ale po co to się robi skoro zaraz potem masz FORMULARZ dzięki któremu powinno się właśnie WYSZUKAĆ dany rekord tak ?
Nie widzę po prostu tego co ty chciałeś osiągnąć pisząc ten skrypt. dodam jeszcze, że teraz jak zastosujesz $wiersz['id'] to otrzymasz tą wartość o którą Ci tak chodziło.
Lecimy dalej, po kliknięciu szukaj przenosi Cię na wyszukiwarka2.php no i fajnie.
Co się znajduje w tym skrypcie ? Wszystko to co jest potrzebne do wyświetlenia....POZA POBRANIEM DANYCH Z BAZY!!!!!!
Chcesz pobrać dane ? No to znowu tworzysz zapytanie:
$dn = "SELECT....";
następnie identyfikator zapytania $dn2 = mysql_query($dn);
Na koniec pobierasz dane dzięki temu "wskaźnikowi" na wynik:
  1. <?php
  2. while($wynik = mysql_fetch_array($dn2)
  3. {
  4.   echo '<table>';
  5.   echo $wynik['id'];
  6.   echo $wynik['marka_auta'];
  7.   // sporo pominąłem no bo za Ciebie kodu nie będę pisał...
  8. }
  9. ?>


A do Ciebie młody adepcie php...czytaj manuale ze zrozumieniem.
batman
Cytat
(brak bbcode bo byłem zbulwersowany)

Ciekawe w takim razie jak zareagujesz na warna z powodu braku bbcode. Rozumiesz aluzję?
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.