Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyszukiwarka nie szuka
Forum PHP.pl > Forum > PHP
graf
Mam problem z ponizszym skryptem.
Nie wiem co jest nie tak, gdzie jest blad. Niezaleznie czy cos wpisze czy nie,
w wynikach wyszukiwania za kazdym razem wyswietlane sa wszystkie wpisy z bazy.

  1. <head>
  2. <link rel="stylesheet" type="text/css" href="includescss.css">
  3. </head>
  4. <html> 
  5.  <body>
  6. <font face="tahoma" size="4"> <font face="Verdana, Arial, Helvetica, sans-serif"></font></font>
  7. <form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post">
  8. <font face="Verdana, Arial, Helvetica, sans-serif">
  9. <input type="text" name="words" value="<?php echo($words); ?>">
  10. <br>
  11. <br>
  12. <input type="hidden" name="good" value="yes">
  13. <input type="submit" value="Szukaj">
  14. </font>
  15. </form>
  16. <p><font face="Verdana, Arial, Helvetica, sans-serif"><br>
  17. <br>
  18. <? 
  19. /*
  20. This script is set up specifically for me so some things will need changing.
  21. I made this script because there is a lack of good mysql serching scripts out th
    ere.
  22. */
  23. if($_POST['good']=='yes') 
  24. { 
  25.  echo("<font face="tahoma" size="3" color="green"><b>Wyszukiwanie dla : $words</b></font><br><br>");
  26.  $location = "localhost"; // database host (localhost)
  27.  $username = "uzytkownik"; // mysql username
  28.  $password = "haslo"; //mysql password
  29.  $database = "nazwa_bazy"; //mysql database name
  30.  $db_table = "tabelka"; // mysql table name to search
  31.  $mysql_row = "opis"; // This is the row in your mysql database that you want to search for text in.
  32.  
  33.  $conn = mysql_connect("$location","$username","$password"); 
  34.  if (!$conn) die ("Could not connect MySQL"); 
  35.  mysql_select_db($database,$conn) or die ("Could not open database"); 
  36.  
  37.  $query = "ALTER TABLE $db_table ORDER BY nazwa DESC";
  38.  $result = mysql_query($query); // bad coding yes ;)
  39.  
  40.  $query = "SELECT * FROM $db_table"; 
  41.  $result = mysql_query($query); 
  42.  $numrows = mysql_num_rows($result); 
  43.  while($row = mysql_fetch_array($result)){ 
  44.  
  45.  if(preg_match("/$words/i", $row[$mysql_row]))
  46.  { 
  47.  
  48. /*
  49. event_id
  50. event_date
  51. event_venue
  52. event_headline
  53. event_town
  54. are all rows in my mysql table. You must replace them with your own rows / rows
  55. */
  56.  
  57. $rawid = ($row[id]);
  58. $rawmonth = ($row[nazwa]); //yes strange variable names. It works so it doesnt matter.
  59. $rawdate = ($row[adres]); //T just grab extra data to be added with the search tool
  60. $rawyear = ($row[kontakt_osoba]);
  61. $newnews = preg_replace("/$words/i", "<b><font color="red">$words</font></b>", $row[$mysql_row]);
  62. $display = '<font face="tahoma" size="2"><b>' .$rawmonth . ' ' . $rawdate . ', ' . $rawyear . '</b><br>' . $newnews . '</font><br><br>'; 
  63. echo($display); 
  64. $foundcount++; 
  65.  } 
  66.  $totalcount++; 
  67.  } 
  68. if(is_null($foundcount)){$foundcount=0;} 
  69. echo("<font face="tahoma" size="3" color="green"><b>Przeszukano: $totalcount wpisy, Znaleziono: $foundcount </b></font>");
  70. } 
  71. ?>
  72. <br>
  73. </font></p>

moze mi pomozecie
kossa
Możesz zmodyfikować zapytanie:

  1. <?php
  2. $query = "SELECT * FROM $db_table";
  3. ?>


na

  1. <?php
  2. $query = "SELECT * FROM $db_table where $kolumna_opis LIKE '%$words%' ";
  3. ?>


wtedy będzą wyśwoetlane rekody gdzie kolumna z opisem zawiera szukaną frazę.

Łukasz
graf
sad.gif niestety to nie pomoglo.
Co zauwazylem,
wpisane szukane slowo nie jest wyswietlane nawet w informacji czyli tu:
Wyszukiwanie dla :$words

wyglada mi na to ze cos jest moze nie tak z:

  1. <form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post">
  2. <font face="Verdana, Arial, Helvetica, sans-serif">
  3. <input type="text" name="words" value="<?php echo($words); ?>">
  4. ...

Moze wiec jesli szukane slowo nie jest prezentowane w tym miejscu: Wyszukiwanie dla :$words ,
to zarazem nie jest pewnie "wysylane aby przeszukac baze" (?)
domis86
rada: nie bierz się za wyszukiwarki tylko za podstawy php, mysql i htmla mad.gif
ten kod to jest jakaś zbitka niezrozumianych przez Ciebie części.

co to ma byc?
  1. <?php
  2. $query = "ALTER TABLE $db_table ORDER BY nazwa DESC";
  3.  $result = mysql_query($query); // bad coding yes ;)
  4. ?>

za kazdym razem zmieniasz tabele? no troche powagi


albo co to jest $words? gdzie inicjujesz ta zmienna?
na poczatku powinno byc : $words = $_POST['words'];

NIE UZYWAJ register globals - NIGDY mad.gif



pozatym <font> jest zbanowane - uzywaj styli css


znacznik <html> po <head> questionmark.gif



-----------
reasumujac: zastanow sie nad tym wszystkim jeszcze raz i przeczytaj jakieś książki o php, html, css i mysql dokladnie (tylko nowe, a nie jakies php4)
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.