Запросы с несколькими парпметрами

maxxp2004

Guest
Запросы с несколькими парпметрами

Здраствуйте.
Подскажите как правильно произвести выбрку по нескольким параметрам ???

Вначале пытался реализовать такую структуру
PHP:
    $r=mysql_query("SELECT *FROM student WHERE
yea_=$kurs1 OR yea_=$kurs2 OR yea_=$kurs3 OR yea_=$kurs4 OR yea_=$kurs5
AND
spe_=$spec1 OR spe_=$spec2 OR spe_=$spec3 OR spe_=$spec4 OR spe_=$spec5
ORDER BY srb DESC LIMIT 0,$howmuch");
1064 You have an error in your SQL syntax near 'OR yea_=2001 OR yea_=1900 AND spe_=1 OR spe_=2 OR spe_=3 OR spe_=4 OR spe_=5 ' at line 2

Затем такую

PHP:
$r=mysql_query("SELECT *FROM student WHERE
yea_=$kurs1 OR yea_=$kurs2 OR yea_=$kurs3 OR yea_=$kurs4 OR yea_=$kurs5
ORDER BY srb DESC LIMIT 0,$howmuch");
1064 You have an error in your SQL syntax near 'OR yea_=2001 OR yea_=1900 ORDER BY srb DESC LIMIT 0,25' at line 2


Может есть схема решения выборки по нескольким параметрам ?
 

crocodile2u

http://vbolshov.org.ru
1) "SELECT *FROM" -> замени на "SELECT * FROM" (пробел после *)

2) Видимо, в первом случае ты хочешь все-таки что-то вроде:
[sql]
WHERE (field1=val1 OR field1=val2) AND (field2=val3 OR field2=val4)
[/sql]
- обрати внимание на скобки

3) Значительно удобнее в таких случаях использовать конструкцию IN:

[sql]
WHERE field1 IN (val1, val2,.. valN) AND field2 IN (val3, val4,.. valM)
[/sql]
 

maxxp2004

Guest
Не получилось :(
PHP:
$r=mysql_query("SELECT * FROM student WHERE
IN yea_($kurs1, $kurs2, $kurs3, $kurs4, $kurs5)
AND IN spe_($spec1, $spec2, $spec3, $spec4, $spec5)
ORDER BY srb DESC LIMIT 0,$howmuch");

1064 You have an error in your SQL syntax near 'IN yea_(1900, 1900, 1900, 2001, 1900) AND IN spe_(1, 2, 3, 4, 5) ORDER BY srb ' at line 2

?????
 

Cougar

Кошак
maxxp2004
Естественно. А вот так получится:

[sql]
yea_ IN ($kurs1 , $kurs2 , $kurs3 , $kurs4 , $kurs5 )
[/sql]

-~{}~ 30.12.04 19:42:

Неужели так сложно заглянуть в мануал и уточнить, когда встречаешь неизвестные ранее конструкции?
 
Сверху