Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [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 tongue.gif.


--------------------
Cod | codslfc@o2.pl | gg#1405724 | www.footbag.p2.pl
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
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 smile.gif


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
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


--------------------
nr gg:2966211
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 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 smile.gif. Ale czekam na dalsze odpowiedzi 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 smile.gif.


--------------------
Cod | codslfc@o2.pl | gg#1405724 | www.footbag.p2.pl
Go to the top of the page
+Quote Post

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 Aktualny czas: 20.08.2025 - 05:02