Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mySQL]Wyszukiwanie frazy w bazie danych-Pilne
Forum PHP.pl > Forum > Przedszkole
fotex
Witam.
Mam ogromna prośbę
Walcze juz pare godzin z następującym problemem:
Oto struktura bazy:
  1. CREATE TABLE `lance_jobs` (
  2. `job_id` mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `buyer_id` mediumint(8) UNSIGNED NOT NULL DEFAULT '0',
  4. `job_title` varchar(50) NOT NULL DEFAULT '',
  5. `job_company` varchar(50) NOT NULL DEFAULT '',
  6. `job_category` mediumint(8) NOT NULL DEFAULT '0',
  7. `job_location` enum('0','1') NOT NULL DEFAULT '0',
  8. `job_country` varchar(60) NOT NULL DEFAULT '',
  9. `job_type` mediumint(8) UNSIGNED NOT NULL DEFAULT '0',
  10. `job_salary` varchar(20) NOT NULL DEFAULT '0',
  11. `job_desc` mediumtext NOT NULL,
  12. `job_status` SET('0','1') NOT NULL DEFAULT '0',
  13. PRIMARY KEY (`job_id`)
  14. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;


chce przeszukac baze i wyswietlić wyniki w postaci tabeli, tabela ma zawierać pola:
tytuł (job_title) ,kwotę (job_salary) ,kategorię (job_category) oraz status (job_status)

Wyszukiwanie w bazie ma polegac na przeszukaniu opisów (job_desc) na obecność frazy podanej w formularzu i zwróceniu wyników zawierajacych podana frazę.Tytuł w wynikach powinien linkowac do pełnego opisu np  job.php?id=1 gdzie id zawarty jest w komórce  job_id

Nazwa pola w formularzu to "zapytanie"

Nioe bardzo wiem jak wykonac zapytanie do bazy aby wyszukiwał tylko konkretne słowo w opisie i zwracało wyniki  zawierajace podana fraze w sposób jaki napisałem......

Moje poczynania zakończyły sie na nawiązaniu połączenia z baza
  1. <?php
  2. $polaczenie = @mysql_connect('localhost', 'myszcz01_aukcja', 'komiszke') or die('Brak połączenia z serwerem mysql. Błąd: '.mysql_error());
  3. $db = @mysql_select_db('myszcz01_aukcja', $polaczenie) or die ('Nie mogę połączyć się z bazą danych. Błąd: '.mysql_error());
  4. ?>


Bardzo prosze o pomoc!!!!
drPayton
  1. <?php
  2. $result = mysql_query("SELECT * FROM lance_jobs WHERE job_desc LIKE '%{$_POST['zapytanie']}%'");
  3. /* Albo $_GET['zapytanie'], zależy jak wysyłasz formularz */
  4. ?>


A wyświetlanie, no cóż, poszukaj na forum, googlach etc bo to już żłobek a nie przedszkole.

Pozdrawiam!
fotex
  1. <?php
  2. $polaczenie = @mysql_connect('localhost', 'myszcz01_aukcja', 'komiszke') or die('Brak połączenia z serwerem mysql. Błąd: '.mysql_error());
  3. $db = @mysql_select_db('myszcz01_aukcja', $polaczenie) or die ('Nie mogę połączyć się z bazą danych. Błąd: '.mysql_error());
  4.  
  5. $zapytanie = "SELECT * FROM lance_jobs WHERE job_desc LIKE '%{$_POST['zapytanie']}%'";
  6. $wykonaj = mysql_query($zapytanie);
  7. while($wiersz = mysql_fetch_array($wykonaj))
  8. {
  9. print "Pole pierwsze".$wiersz['pole1']."<br>";
  10.  
  11.  
  12. }
  13.  
  14. ?>


Teraz mam coś takiego niby wszystko jest ok nie zwraca błędów aczkolwiek nie zwraca tez wyników smile.gif co może byc powodem?
-neeeo-
  1. <?php
  2. $words = $_POST['words'];
  3.  
  4. if($_POST['good']=='yes') 
  5. { 
  6.  $db_table = "lance_job"; 
  7.  $mysql_row = "job_desc"; 
  8.  
  9.  $conn = mysql_connect("host","user","password");
  10.  if (!$conn) die ("Could not connect MySQL"); 
  11.  mysql_select_db(nazwa_bazy,$conn) or die ("Brak połączenia z bazą"); 
  12.  
  13.  $query = "ALTER TABLE $db_table ORDER BY job_id DESC"; 
  14.  $result = mysql_query($query);
  15.  
  16.  $query = "SELECT * FROM $db_table"; 
  17.  $result = mysql_query($query); 
  18.  $numrows = mysql_num_rows($result); 
  19.  while($row = mysql_fetch_array($result)){ 
  20.  
  21.  if(preg_match("/$words/i", $row[$mysql_row]))
  22.  { 
  23. $rawid = ($row[job_id]); 
  24. $rawtitle = ($row[job_title]); 
  25. $rawsalary = ($row[job_salary]); 
  26. $rawcategory = ($row[job_category]); 
  27. $rawstatus = ($row[job_status]); 
  28. $display = '<a href="job.php?id='.$rawid.'">' .$rawtytul . '</a>'; 
  29. echo($display); 
  30. } 
  31.  } 
  32. }
  33. ?>


tu wyświetla ci się tylko tytuł i przechodzi do job.php?id=id, niechciało mi sie robić tabeli, mam nadzieje że wiesz jak sobie z tym poradzić. Nie sprawdzałem czy skrypt działa ale powinien zadziałać smile.gif
Lion_87
A może podobnie:

$pytanie = "select * from lance_jobs where job_desc like '%$search%' ";


@$polaczenie = mysql_pconnect("---","---", "---");
if (!$polaczenie) {
echo "Nie udało się nawi±zać poł±czenia z serwerem.";
exit;
}
mysql_select_db("---");
if(!mysql_select_db("---")) {
echo "Nie udało się poł±czyć z baz±";
exit;
}
$wyniki = mysql_query($pytanie);


while ($row = mysql_fetch_array($wyniki))
{

$tytuł=$row['job_title'];

echo "$tytuł";
}
Neeeo
A czy dodałeś do formularzu w którym jest wpisywana szukana fraza
  1. <input type="hidden" name="good" value="yes">
questionmark.gif
fotex
  1. <?php
  2. $words = $_POST['words'];
  3.  
  4. if($_POST['good']=='yes') 
  5. { 
  6.  $db_table = "lance_job"; 
  7.  $mysql_row = "job_desc"; 
  8. $conn = mysql_connect("localhost","root","krasnal");
  9.  if (!$conn) die ("Could not connect MySQL"); 
  10.  mysql_select_db(myszcz01_aukcja,$conn) or die ("Brak połączenia z bazą"); 
  11.  
  12.  $query = "ALTER TABLE $db_table ORDER BY job_id DESC"; 
  13.  $result = mysql_query($query);
  14.  
  15.  $query = "SELECT * FROM $db_table"; 
  16.  $result = mysql_query($query); 
  17.  $numrows = mysql_num_rows($result); 
  18.  while($row = mysql_fetch_array($result)){ 
  19.  
  20.  if(preg_match("/$words/i", $row[$mysql_row]))
  21.  { 
  22. $rawid = ($row[job_id]); 
  23. $rawtitle = ($row[job_title]); 
  24. $rawsalary = ($row[job_salary]); 
  25. $rawcategory = ($row[job_category]); 
  26. $rawstatus = ($row[job_status]); 
  27. $display = '<a href="job.php?id='.$rawid.'">' .$rawtytul . '</a>'; 
  28. echo($display); 
  29. } 
  30.  } 
  31. }
  32. ?>


Zwraca takie błędy:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\usr\krasnal\www\aukcja\wyszukaj.php on line 18

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\usr\krasnal\www\aukcja\wyszukaj.php on line 19

Niewiem co jest grane
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.