Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wyszukiwanie, 1 tabela, wiele kategorii szukania
pablo301287
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 29.05.2009

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


Witam

Zwracam sie do Was z prosba o pomoc... Otoz, mam utworzona jedna tabele "ksiazki" a w niej id_ksiazki, tytul, autor, rok wydania oraz isbn. Chcialbym aby w swojej utworzonej stronie byla mozliwosc wyszukiwania ksiazki ale pod wieloma wzgledami, tj. po tytule, autorze, roku wydania i isbn oraz aby wyniki byly wyswietlane w tabeli, tak jak w ponizszym skrypcie tylko, ze on dotyczy wyszukiwania tylko pod wzgledem tytulu. Jak moglbym to zrobic?? prosze o pomoc..

Kod
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
</head>
<body bgcolor="#666699">
<CENTER><H1> <FONT COLOR="red"> Szukanie ksiazki </h1>
<table><tr>
<td><a href="index.html"><font color="yellow">Powrót do głównej</a></td>

</td></tr></table>

</FONT> </H2></CENTER>
<HR>

    <table border="0">
    <form method="post" action="<?php echo $PHP_SELF?>">
    <tr><td>Podaj tytuł:</td><td><input type="Text" name="xtytul" size="5"></td>
    <td><Input type="submit" name="submit" value="ok"></td></tr>
    </form></table>

<?
$submit=$_POST['submit'];
$xtytul=$_POST['xtytul'];
    //---kolorek
    

    function kolor_linii()
    {
        static $kolor;
        if($kolor=="#EFEFEF")
            $kolor="#AAAAAA";
        else
            $kolor="#EFEFEF";

    return($kolor);
    }
    //---

    if ($submit && $xtytul!='') {

    mysql_connect('localhost', '..........', '.........')
    or die ("Nie mozna sie polaczyc z serwerem");

    mysql_select_db("..........[php][/php]")
       or die ("Nie mozna sie polaczyc z baza");
     $result = mysql_query("SELECT tytul, autor, rok_wydania, isbn FROM ksiazki WHERE tytul LIKE '%$xtytul%' ");

   //---------------
   $dzisiaj=date("Y-m-d");
   $i=0;
    print ("<HR>");
    print ("<FONT COLOR = blue SIZE=4> Lista dostępnych książek: $xtytul</FONT>");
          print ("<P>");
    //
    //print ("<Table border=\"0\">\n");
    //print ("<tr><td>");
    //
       //print "<font size=5>";
   if(mysql_num_rows($result)!=0)
   {
       print ("<Table border=\"0\">
       <tr>
           <td>lp.</td>
           <td>Tytuł</td>
           <td>Autor</td>
           <td>Rok Wydania</td>
           <td>ISBN</td>
       
       
           
       </tr>");
   }
           while ($row = mysql_fetch_array($result)) {
            $i++;
            $kolorek=kolor_linii();
                 print ("<TR BGCOLOR=\"$kolorek\">\n");
               print ("<TD>"."$i"."</TD>\n");
            print ("<TD>$row[0]</TD>\n");
                        print ("<TD>$row[1]</TD>\n");    
                 print ("<TD>$row[2]</TD>\n");
                 print ("<TD>$row[3]</TD>\n");
                 print ("<TD>$row[4]</TD>\n");
                 
               print ("</TR>\n");

       }
       print ("</Table>\n");
    
    print("<P>");
    if ($i==0) print ("<b>Brak wpisów!</b>");
    print "</font>";

} // submit
?>
</body>
<html>
<head>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
okitoki
post
Post #2





Grupa: Zarejestrowani
Postów: 214
Pomógł: 18
Dołączył: 25.04.2009

Ostrzeżenie: (20%)
X----


SELECT tytul, autor, rok_wydania, isbn FROM ksiazki WHERE tytul LIKE '%{$xszukaj}%' or autor LIKE '%{$xszukaj}%' or rok_wydania LIKE '%{$xszukaj}%' or isbn LIKE '%{$xszukaj}%"

zmien xtytul na xszukaj

Ten post edytował okitoki 30.05.2009, 04:05:53


--------------------
Go to the top of the page
+Quote Post
pablo301287
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 29.05.2009

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


Chodzilo mi bardziej o to jak zrobic zeby kazde kryterium mialo swoje pole do wpisywania... tak jak w moim przykladzie jest utworzone pole "podaj tytul" i wyszukiwanie jest tylko wedlug tytulu, to potrzebuje jeszcze aby byly takie pola jak "podaj autora"(wyszukiwanie wg. autora), "podaj rok_wydania" (wyszukiwanie wg. roku wydania), jak przerobic ten formularz zeby tak bylo i czy wogole da sie to zrobic w jednym formularzu?? smile.gif
Go to the top of the page
+Quote Post
MWL
post
Post #4





Grupa: Zarejestrowani
Postów: 493
Pomógł: 32
Dołączył: 14.04.2008
Skąd: Lenkowski.net

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


Tak jak wyżej pobaw sie z like i daj tam przesłane dane przez formularz, warto też zobaczyć coś takiego jak REGEX


--------------------
Wpadaj na mój kanał o PHP. Dużo mięsa 🥩!
Go to the top of the page
+Quote Post
SzamanGN
post
Post #5





Grupa: Zarejestrowani
Postów: 94
Pomógł: 14
Dołączył: 11.10.2007

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


Nie wiem czy o to chodzi, ale ja bym zrobił tak:
na stronie formularz do szuka nia z polami: tytuł, autor, rok wydania i ISBN.
Dane z formularza odczyta skrypt PHP, który stworzy na ich podstawie zapytanie w następujący sposób:

  1. <?php
  2. $zapytanie='';
  3. if (isset($_GET['tytul']) $zapytanie.='tytul LIKE "%'.$_GET['tytul'].'%" ';
  4. if (isset($_GET['autor']) $zapytanie.='autor LIKE "%'.$_GET['autor'].'%" ';
  5. if (isset($_GET['rok_wydania']) $zapytanie.='rok_wydania LIKE "%'.$_GET['rok_wydania'].'%" ';
  6. if (isset($_GET['autor']) $zapytanie.='autor LIKE "%'.$_GET['autor'].'%" ';
  7. if ($zapytanie!='')
  8. { //Podano dane do przeszukiwania.
  9. $result = mysql_query('SELECT tytul, autor, rok_wydania, isbn FROM ksiazki WHERE '.$zapytanie);
  10. //...
  11. }
  12. else
  13. { //Nie będzie wyszukiwania w bazie danych.
  14. //...
  15. }
  16. ?>


--------------------
SzamanGN
Go to the top of the page
+Quote Post
pablo301287
post
Post #6





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 29.05.2009

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


niewiem, nie moge sie w tym polapac... Uzyje metody ktora zaproponowal okitoki:) a jeszcze jedna sprawa- w jaki sposob usuwac pojedynczo rekordy z tabeli i tym samym z bazy danych, chodzi mi o te rekordy ktore sa wynikiem wyszukiwania. Chcialbym aby do kazdego wyszukanego rekordu bylo pole "usun". Jak bedzie wygladal taki kod i w ktorym miejscu nalezy go umiescic?? Prosze o pomoc. Jutro mam oddac projekt bazy danych i chcialbym ja udoskonalic:)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 12:53