Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: prosta wyszukiwarka mysql
Forum PHP.pl > Forum > Przedszkole
driv
Witam
Szukam jak najprostszego skryptu na wyszukiwarkę oraz pogrupowanie danych z bazy. NP: Chciał bym wyświetlić wszystko na literę A z kolumny tytuł. Oraz zrobić prostą wyszukiwarkę szukającą fraz również w tej samej kolumnie. Jak to zrobić ?
nospor
  1. $sql = 'select * from tabela where kolumna like \'A%\'';

I teraz pobierz sobie dane z takiego zapytania.
driv
Tylko ja jestem na tyle zielony, że nie mam pojęcia jak zapakować to do mojego skryptu sad.gif
nospor
No skrypt to ci napisałem smile.gif
A konkretnie to z czym masz problem?
driv
Z jakimś poradnikiem skleiłem taki kod i nie wiem jak umieścić tą wyszukiwarkę w nim. Mam tu wyświetlanie rekordów bazy...

  1. <?php
  2. include('forum/config.php');
  3. $sql_conn = mysql_connect($dbhost, $dbuser, $dbpasswd) or die('Brak polaczenia');
  4. mysql_select_db($dbname);
  5.  
  6. $start = (int)$_GET['start'];
  7. $na_stronie = 15;
  8.  
  9. $wykonaj=mysql_fetch_array (mysql_query("SELECT COUNT(*) FROM baza_gier WHERE `access`=1 ",$sql_conn));
  10. $znaleziono=$wykonaj[0];
  11.  
  12. $result = mysql_query ("SELECT `id`, `tytul`, `okladka`, `developer`, `gatunek`, `nick`, `datanap`, `access` FROM baza_gier WHERE `access`=1 ORDER BY tytul LIMIT $start, $na_stronie",$sql_conn);
  13. while ($row = mysql_fetch_array($result)) {
  14. echo ' <div class="inner"><a href="baza.php?id='.$row['id'].'">'.$row['tytul'].'<div class="extra-link">';
  15. ?>
nospor
No jesli twoje zapytanie wygląda przykładowo tak:
  1. $sql = 'select * from tabela';

To zeby dorobic do tego wyszukiwanie to musisz dodać wartosc szukaną z formularza.
Przy założeniu, ze twoje pole w formularzu nazywa się X, to kod będzie wyglądał tak:
  1. $sql = 'select * from tabela where pole like \''.$_POST['x'].'%\'';

A dalej normalnie jak miałeś do tej pory.

Widzę, iż robisz też stronicowanie.
Pozwolę sobie więc podać linka do arta, gdzie opisywałem jak połączyć wyszukiwarkę ze stronicowaniem
http://nospor.pl/formularz-i-stronicowanie...anie-stanu.html
Masz tam podane jak zrobić wyszukiwarkę i dodatkowo jak nie tracić danych przy przechodzeniu na kolejne podstrony
driv
Mam takie coś ale dalej sypie mi błąd w linii z tym ['x']

  1. <?php
  2. include('forum/config.php');
  3. $sql_conn = mysql_connect($dbhost, $dbuser, $dbpasswd) or die('Brak polaczenia');
  4. mysql_select_db($dbname);
  5.  
  6. // wyświetlamy treść naszej tabeli
  7. $zapytanie = "SELECT `tytul` FROM `baza_gier` where pole like \''.$_POST['x'].'%\''";
  8. $idzapytania = mysql_query($zapytanie);
  9. echo '<table>';
  10. while ($wiersz = mysql_fetch_row($idzapytania)) {
  11. echo '<tr><td>'. $wiersz[0] .'</td><td>';
  12. }
  13. echo '</table>';
  14. ?>
nospor
zobacz czym ja rozpocząłęm stringa a czym ty winksmiley.jpg
driv
Nie wiem już teraz nie mam błędów ale nie pokazuje praktycznie nic. Nie ma żadnych wyników - gdzie jest błąd ?

  1. <form action="xxx.php" method="post">
  2. <input type="text" class="bazagier" name="x" />
  3. <input type="submit" name="szukaj" />
  4. </form>



  1. <?php
  2. include('forum/config.php');
  3. $sql_conn = mysql_connect($dbhost, $dbuser, $dbpasswd) or die('Brak polaczenia');
  4. mysql_select_db($dbname);
  5.  
  6. $sql = 'select * from baza_gier where tytul like \''.$_POST['x'].'%\'';
  7. $idzapytania = mysql_query($sql);
  8. echo '<table>';
  9. while ($wiersz = mysql_fetch_row($idzapytania)) {
  10. echo '<tr><td>'. $wiersz[0] .'</td><td>';
  11. }
  12. echo '</table>';
  13. ?>
nospor
$idzapytania = mysql_query($sql) or die(mysql_error());
CuteOne
Zobacz co wyświetli..
  1.  
  2. $query = mysql_query( "select * from baza_gier where tytul like '".$_POST['x']."'");
  3. $row = mysql_fetch_array($query);
  4.  
  5.  
  6. print_r($row);
  7.  
driv
dalej ani błędów ani wyników sadsmiley02.gif
nospor
No to nie masz rekordów spelniających warunek smile.gif
echo "select * from baza_gier where tytul like '".$_POST['x']."'";
I sobie wykonaj w PMA to co ci zwroci to echo a się dowiesz smile.gif
driv
okej jak wpisuje cały rekord to działa myślałem ze 3 literki wystarczą...

A jak chce wyświetlić wszystko na literkę np G to mi wywala taki błąd :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource


  1. <?php
  2. include('forum/config.php');
  3. $sql_conn = mysql_connect($dbhost, $dbuser, $dbpasswd) or die('Brak polaczenia');
  4. mysql_select_db($dbname);
  5.  
  6. $query = mysql_query( "select * from baza_gier where tytul like \'G%\'");
  7. $row = mysql_fetch_array($query);
  8.  
  9. print_r($row);
  10.  
  11. ?>
nospor
Przeciez ci napisalem bys uzyl mysql_error()... przeciez po chinsku nie piszę....
$query = mysql_query( "select * from baza_gier where tytul like \'G%\'") or die(mysql_error());
driv
Okej poprawiłem i zrobiłem tak :

Kod
<?php
include('forum/config.php');
$sql_conn = mysql_connect($dbhost, $dbuser, $dbpasswd) or die('Brak polaczenia');
mysql_select_db($dbname);

$query = mysql_query( "select * from baza_gier where tytul like '\'G%\'' ") or die(mysql_error());
$row = mysql_fetch_array($query);

print_r($row);

?>


Ale dalej pusto, nie wyświetla się nic, a chciałem wszystko na G...
nospor
balansujesz tymi ciapkami bez jakiejkolwiek podstawowej wiedzy....
$query = mysql_query( "select * from baza_gier where tytul like 'G%'") or die(mysql_error());
driv
Okej wielkie dzięki mam jeszcze ostatnie pytanie.
Wynik wyświetla mi się tak : Array ( [0] => Groszek [tytul] => Groszek )

A jak zrobić aby było samo Groszek ?
nospor
Przeciez to tablica. Jak chcesz miec element tablicy to:
print_r($row[0]);
driv
Nie jestem pewny jeszcze o co biega z tym, że jak dam wyświetlanie wyników w echo to w nim wyświetla mi nr wyniku czyli 1, 2,3 itp a nad echo wartości które powinny być w nim czyli tytuł itp

  1. <?php
  2. include('forum/config.php');
  3. $sql_conn = mysql_connect($dbhost, $dbuser, $dbpasswd) or die('Brak polaczenia');
  4. mysql_select_db($dbname);
  5.  
  6. $query = mysql_query( "select `id`, `tytul` from xxx where tytul like 'G%'") or die(mysql_error());
  7. while ($row = mysql_fetch_array($query)) {
  8. echo '<br><br>'.print_r($row[1]).'<br><br>'
  9. ;}
  10. ?>


O co biega ?
nospor
echo '<br><br>';
print_r($row[1]);
echo '<br><br>';

poczytaj sobie co robi echo, co robi kropka, co robi srednik, co robi print_r
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.