Chciałem stworzyć jakąś wyszukiwarkę bazodanową z prawdziwego zdarzenia wykorzystującą operatory logiczne. 

Narazie probuje napisać coś prostego, później wyszukiwarke rozbudować. Do tej pory mam coś takiego, a jako że moje umiejętności programowania są jak narazie baaaaaardzo ograniczone to być może ktoś powie czy to co napisałem ma sens... smile.gif Więc w formularzu chce przekazywa jakąś zmienną do zapytania (w później zastąpie ją zmienną pobieraną z listy wybieranej) i porównanie ją ze zmiennymi odpowiadającymi za operatory logiczne.

  1. formularz
  2.  
  3. <?php
  4. include ("define.php");
  5.  
  6. if (empty ($aDBC))
  7.    {
  8.    include ("dbmysql.php");
  9.    $aDBC = new DBMySQL($MySQLServer,$MySQLDB,$MySQLUser,$MySQLPass);
  10.    }
  11. if (empty ($aDBC))
  12.    {
  13.    echo "Brak podlaczenia do bazy danych!";
  14.   exit;
  15.    }
  16.    
  17.  //$autor = $aDBC->FieldByName ("autor");
  18.  $autor = $_REQUEST['autor'];
  19.    
  20. ?>
  21. <form action="set_szukaj.php" method='POST'> 
  22. <b>Znajdź wyniki</b><br> 
  23. Jakakolwiek z tej frazy<input type="text" length=40 name="any" value='<?php print($autor); ?>'> <br> 
  24. Wszystkie frazy z<input type="text" length=40 name="all" value='<?php print($autor); ?>'> <br> 
  25. Żadna z tych fraz<input type="text" length=40 name="none" value='<?php print($autor); ?>'> <br> 
  26. <input type="submit" value="Szukaj"> 
  27. </form> 


  1. plik set_szukaj.php
  2.  
  3. <?php 
  4.  
  5. include ("define.php");
  6.  
  7. if (empty ($aDBC))
  8.    {
  9.    include ("dbmysql.php");
  10.    $aDBC = new DBMySQL($MySQLServer,$MySQLDB,$MySQLUser,$MySQLPass);
  11.    }
  12. if (empty ($aDBC))
  13.    {
  14.    echo "Brak podlaczenia do bazy danych!";
  15.   exit;
  16.    }
  17.    
  18.  //$autor = $aDBC->FieldByName ("autor");
  19.   $autor = $_REQUEST['autor'];
  20.  
  21.   if((!$all) || ($all == "")) { $all = ""; } else { $all = "+(".$all.")"; } 
  22.   if((!$any) || ($any == "")) { $any = ""; }  
  23.   if((!$none) || ($none == "")) { $none = ""; } else { $none = "-(".$none.")"; } 
  24.     
  25.   $SQL = "SELECT autor MATCH('$autor') AGAINST ('$all $none $any' IN BOOLEAN MODE) AS alias FROM przy_dokumenty WHERE MATCH('$autor') AGAINST ('$all $none $any' IN BOOLEAN MODE)"; 
  26.   $aDBC->ExecSQL ($SQL);
  27.    
  28.   if (isset($SQL))
  29.   {
  30.   echo $SQL; 
  31.   }
  32.   else
  33.   {
  34.   echo "Błędne zapytanie";
  35.   }
  36. ?>
 

Pozdrawiam