Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] jak wybrac rekordy "z pomiedzy"
AndyPSV
post
Post #1





Grupa: Zarejestrowani
Postów: 393
Pomógł: 5
Dołączył: 6.02.2003
Skąd: The.Luciferian.Doctrine.p
df

Ostrzeżenie: (30%)
XX---


Jak wybrac te rekordy "spomiedzy" logd: 1 do 1?

  1. id_u date ip logd
  2. 1 2010-11-05 12:17:34 127.0.0.1 1 /**** to pominac
  3. 1 2010-11-05 12:17:29 127.0.0.1 0 /*** OD TAD
  4. 1 2010-11-05 12:17:19 127.0.0.1 0
  5. 1 2010-11-05 12:17:18 127.0.0.1 0
  6. 1 2010-11-05 12:17:17 127.0.0.1 0
  7. 1 2010-11-05 12:17:16 127.0.0.1 0
  8. 1 2010-11-05 12:17:15 127.0.0.1 0
  9. 1 2010-11-05 12:17:14 127.0.0.1 0
  10. 1 2010-11-05 12:17:13 127.0.0.1 0
  11. 1 2010-11-05 12:17:13 127.0.0.1 0 **** DO TAD WYBRAC TE REKORDY */
  12. 1 2010-11-05 12:17:12 127.0.0.1 1
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
AndyPSV
post
Post #2





Grupa: Zarejestrowani
Postów: 393
Pomógł: 5
Dołączył: 6.02.2003
Skąd: The.Luciferian.Doctrine.p
df

Ostrzeżenie: (30%)
XX---


ten kod mi wyswietla 1, co nie jest prawidlowa wartoscia (powinno byc 4)
jak wstawic ta "procedure"? wszedzie szukalem ale pewnie cos zle robie, bo nikt tych "procedur" w kodzie php nie podaje;


pomozcie mi to zrobic, bo juz mnie
(IMG:http://img209.imageshack.us/img209/3903/kurrrrr.gif)


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

w koncu

  1. $q = q('SELECT m.*
  2. , COUNT(n.id_u) total
  3. FROM
  4. (
  5. SELECT a.date AS start
  6. , MIN(c.date) end
  7. , a.logd
  8. , a.ip
  9. FROM
  10. ( SELECT x.date
  11. , x.ip
  12. , x.logd
  13. , COUNT(*) id
  14. FROM chcur_logd x
  15. JOIN chcur_logd y
  16. ON y.date <= x.date
  17. GROUP BY x.date
  18. ) AS a
  19. LEFT JOIN
  20. ( SELECT x.date
  21. , x.ip
  22. , x.logd, COUNT(*) id
  23. FROM chcur_logd x
  24. JOIN chcur_logd y
  25. ON y.date <= x.date
  26. GROUP BY x.date
  27. ) AS b ON a.id = b.id + 1 AND b.logd = a.logd AND b.ip = a.ip
  28. LEFT JOIN
  29. ( SELECT x.date
  30. , x.ip
  31. , x.logd
  32. , COUNT(*) id
  33. FROM chcur_logd x
  34. JOIN chcur_logd y
  35. ON y.date <= x.date
  36. GROUP BY x.date
  37. ) c ON a.id <= c.id AND c.logd = a.logd AND c.ip = a.ip
  38. LEFT JOIN
  39. ( SELECT x.date
  40. , x.ip
  41. , x.logd
  42. , COUNT(*) id
  43. FROM chcur_logd x
  44. JOIN chcur_logd y
  45. ON y.date <= x.date
  46. GROUP BY x.date
  47. ) AS d ON c.id = d.id - 1 AND d.logd = c.logd AND d.ip = c.ip
  48. WHERE b.id IS NULL
  49. AND c.id IS NOT NULL
  50. AND d.id IS NULL
  51. GROUP
  52. BY start
  53. ) m
  54. JOIN chcur_logd n
  55. ON n.date BETWEEN m.start AND m.end
  56. GROUP
  57. BY m.start
  58. HAVING m.logd = 1
  59. ORDER
  60. BY m.start LIMIT 1;');
  61. IF(n_r($q) > 0) $logd = f($q); var_export($logd);


Ten post edytował AndyPSV 26.11.2010, 02:32:13
Go to the top of the page
+Quote Post

Posty w temacie


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: 11.10.2025 - 12:20