Jump to content
php.lv forumi

kāds kverijs


stencilz

Recommended Posts

ir datubāze kurā lauks id ar auto_increment

 

vajag izvēlēties rindu kurā col_1 vai col_2 ir $user, bet tā kā šādas rindas var būt vairākas tad rindu ar lielāko id

 

mysql_query("SELECT * FROM tabula WHERE col_1='".$user."' || col_2='".$user."'")

 

kaut kur jāliek MAX(), vai kā man tikt pie tā ko vajag?

Link to comment
Share on other sites

kaut kas nepareizi man te notiek :(

 

izdarīju šādi

 

SELECT COUNT(*) FROM tabula WHERE col_1='".$user."' || col_2='".$user." AND time < DATE_SUB(NOW(), INTERVAL  10 MINUTE) ORDER BY id DESC LIMIT 1

 

un man atgriež 8 kā tas var būt? mysql_error() arī neko nesaka :(

 

un vispār man atgriež visas tabulas rindu skaitu

 

palīdziet lūdzu kāds :)

 

man ir tabula no kuras vajag izvilkt ārā tabulu kurai laiks nav mazāks nekā pirms 10 minūtēm un jaunāko no tām visām, pirmā kolonna ir id ar auto_increment

 

daru šādi bet nekā:

 

list($count) = mysql_fetch_row(mysql_query("SELECT COUNT(*) FROM table WHERE user_1='".$id."' || user_2='".$id."' AND time < DATE_SUB(NOW(), INTERVAL 10 MINUTE) ORDER BY id LIMIT 1"))

 

atgriež kopējo rindu skaitu

Edited by stencilz
Link to comment
Share on other sites

  • 2 weeks later...
atvainojiet par dubultpostu, bet savādāk laikam netikšu pamanīts

Jopt nu tu jau selectē COUNT(*) kas atgriež skaitli (nevis konkrēto rindu/ierakstu).. proti saskaita visas tās rindas kur izpildās minētais WHERE nosacijums .. Un LIMIT 1 šeit tikai norāda atgriežamo rindu skaitu..

 

Ja tev vajag konkrētu ierakstu nelieto COUNT(*).. bet gan vienkārši * vai arī tos laukus kurus tev vajag.. proti kā jau rakstīju šis kverijs:

 

SELECT * FROM tabula WHERE (col_1='".$user."' OR col_2='".$user.") AND time < DATE_SUB(NOW(), INTERVAL  10 MINUTE)  ORDER BY id DESC LIMIT 1

Link to comment
Share on other sites

×
×
  • Create New...