Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL] kilka pól i LIKE
Cod
post
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 20.03.2003
Skąd: Warszawa

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


Mój ojciec zaczął ostatnio używać do programowania w Visual Basicu bazy danych SQL. Poprosił mnie, żebym zapytał na forum o taką rzecz:

- w tabeli znajduje się dużo pól, dajmy na to 20, mają one różne nazwy, np.: aaa, bbb, ccc, itd.,
- tata chce zrobić wyszukiwanie w swojej bazie, korzystające z LIKE.

Czy jest jakieś zapytanie, gdzie po przecinku wypisywałoby się pola, które chce się przeszukać, a działałoby ono, jak LIKE?

Takie coś: "aaa LIKE 'xxx' OR bbb LIKE 'xxx' OR ccc LIKE 'xxx'" zupełnie mu nie pasuje. Chciałby to jakoś wszystko uporządkować. Proszę pomóżcie! Bo stary nie daje mi spokoju (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) .
Go to the top of the page
+Quote Post
kicaj
post
Post #2





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

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


http://www.mysql.com/doc/en/Fulltext_Search.html - moze pomoze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
polaczek
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 24.02.2003
Skąd: Gliwice

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


Jeżeli dobrze cie zrozumiałem to chcesz aby wyszukiwał w paru polach tego samego??
spubuj tak
Kod
SELECT * FROM tabela WHERE (aaa LIKE "$ble" || bbb LIKE "$ble")

jeżeli dobrze cie zrozumiałem to tak to wygląda
Go to the top of the page
+Quote Post
Wankster
post
Post #4





Grupa: Zarejestrowani
Postów: 208
Pomógł: 0
Dołączył: 19.04.2003

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


W php byś musiał użyć funkcji explode...
[php:1:cb968f3898]<?php

$gdzie_szukac = 'aaa, bbb, ccc, ddd, eee';
$co_szukac = 'jakaś fraza';

$where = explode( ', ', $gdzie_szukac );

$where_clouse = '';
$i = 0;

foreach( $where AS $field )
{
$spacer = $i == ( count( $where ) - 1 ) ? '' : ' || ';
$where_clouse .= $field . ' LIKE '%' . $co_szukac . '%'' . $spacer;

$i++;
}

$sql = 'SELECT *
FROM nazwa_tabeli
WHERE ( ' . $where_clouse . ' )
ORDER BY aaa ASC
LIMIT 10';

$r = mysql_query( $sql );

while( $row = mysql_fetch_array( $r ) )
{
echo 'aaa : ' . $row['aaa'] . '<br />';
}
?>[/php:1:cb968f3898]
Go to the top of the page
+Quote Post
Wankster
post
Post #5





Grupa: Zarejestrowani
Postów: 208
Pomógł: 0
Dołączył: 19.04.2003

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


a przeczytałeś jakie on zadał pytanie?
Cytat
Czy jest jakieś zapytanie, gdzie po przecinku wypisywałoby się pola, które chce się przeszukać, a działałoby ono, jak LIKE?

no to są wpisywane w zmiennej (gdzie_szukac) po przecinku (', ') nazwy pól i te przeszukuje (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Jeżeli o to mu w tym chodzi...
Go to the top of the page
+Quote Post
Cod
post
Post #6





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 20.03.2003
Skąd: Warszawa

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


Ten skrypcik php jest bardzo fajny i na pewno by zadziałał, ale ojciec używa Visual Basica! Polaczek: To też na pewno by zadziałało, ale nam jest potrzebne zapytanie, w którym pola wypisujesz po przecinku. Coś podobnego jest chyba w IN: "SELECT "xxx" IN (aaa,bbb,ccc,nnn)", ale on musi mieć takie coś z LIKE. Mimo wszystko dziękuję za poświęcony mi czas (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Ale czekam na dalsze odpowiedzi (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) .

Cytat

O! Dzięki za tego linka! Nie zauważyłem go na początku. Zobaczymy, czy działa, to co tam napisali (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 23:58