Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> prosta wyszukiwarka mysql
driv
post 3.09.2010, 19:54:53
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 31.08.2010

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


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ć ?
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 20)
nospor
post 3.09.2010, 19:57:02
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. $sql = 'select * from tabela where kolumna like \'A%\'';

I teraz pobierz sobie dane z takiego zapytania.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
driv
post 4.09.2010, 15:14:13
Post #3





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 31.08.2010

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


Tylko ja jestem na tyle zielony, że nie mam pojęcia jak zapakować to do mojego skryptu sad.gif
Go to the top of the page
+Quote Post
nospor
post 4.09.2010, 15:23:47
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No skrypt to ci napisałem smile.gif
A konkretnie to z czym masz problem?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
driv
post 4.09.2010, 15:31:59
Post #5





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 31.08.2010

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


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. ?>
Go to the top of the page
+Quote Post
nospor
post 4.09.2010, 16:09:26
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
driv
post 4.09.2010, 16:41:08
Post #7





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 31.08.2010

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


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. ?>
Go to the top of the page
+Quote Post
nospor
post 4.09.2010, 17:03:50
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




zobacz czym ja rozpocząłęm stringa a czym ty winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
driv
post 4.09.2010, 19:03:09
Post #9





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 31.08.2010

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


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. ?>
Go to the top of the page
+Quote Post
nospor
post 4.09.2010, 19:10:05
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




$idzapytania = mysql_query($sql) or die(mysql_error());


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
CuteOne
post 4.09.2010, 19:13:49
Post #11





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


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.  
Go to the top of the page
+Quote Post
driv
post 4.09.2010, 19:15:37
Post #12





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 31.08.2010

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


dalej ani błędów ani wyników sadsmiley02.gif
Go to the top of the page
+Quote Post
nospor
post 4.09.2010, 19:21:55
Post #13





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
driv
post 4.09.2010, 19:30:17
Post #14





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 31.08.2010

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


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. ?>
Go to the top of the page
+Quote Post
nospor
post 4.09.2010, 19:36:31
Post #15





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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());
Powód edycji: [nospor]:


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
driv
post 4.09.2010, 19:38:52
Post #16





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 31.08.2010

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


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...

Ten post edytował driv 4.09.2010, 19:52:23
Go to the top of the page
+Quote Post
nospor
post 4.09.2010, 20:46:56
Post #17





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




balansujesz tymi ciapkami bez jakiejkolwiek podstawowej wiedzy....
$query = mysql_query( "select * from baza_gier where tytul like 'G%'") or die(mysql_error());


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
driv
post 4.09.2010, 21:09:25
Post #18





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 31.08.2010

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


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 ?
Go to the top of the page
+Quote Post
nospor
post 4.09.2010, 21:10:36
Post #19





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przeciez to tablica. Jak chcesz miec element tablicy to:
print_r($row[0]);


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
driv
post 5.09.2010, 08:35:37
Post #20





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 31.08.2010

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


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 ?
Go to the top of the page
+Quote Post
nospor
post 5.09.2010, 19:01:24
Post #21





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 10:32