- рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐
- рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрдиреЗрдХреНрд╢рди
- рдХрдХреНрд╖рд╛ рдХрд╣рд╛рдБ
- рдХрдХреНрд╖рд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ
- рдХрдХреНрд╖рд╛ рдХреА рдХреНрд╡реЗрд░реА
тХФтХРтХРтХРтХЧтХФтХРтХРтХРтХЧтХФтХРтХРтХРтХЧтХФтХРтХРтХРтХЧтХФтХЧтФАтХФтХЧтФАтФАтФАтФАтХФтХРтХРтХРтХЧтХФтХРтХРтХЧтХФтХРтХРтХРтХЧ тХСтХФтХРтХРтХЭтХСтХФтХРтХЧтХСтХСтХФтХРтХРтХЭтХСтХФтХРтХРтХЭтХСтХЪтХРтХЭтХСтФАтФАтФАтФАтХСтХФтХРтХЧтХСтХЪтХЧтХФтХЭтХСтХФтХРтХРтХЭ тХСтХСтХФтХРтХЧтХСтХЪтХРтХЭтХСтХСтХЪтХРтХРтХЧтХСтХЪтХРтХРтХЧтХСтХФтХЧтФАтХСтФАтФАтФАтФАтХСтХЪтХРтХЭтХСтФАтХСтХСтФАтХСтХСтХФтХРтХЧ тХСтХСтХЪтХЧтХСтХСтХФтХЧтХФтХЭтХСтХФтХРтХРтХЭтХСтХФтХРтХРтХЭтХСтХСтХЪтХЧтХСтФАтФАтФАтФАтХСтХФтХРтХРтХЭтФАтХСтХСтФАтХСтХСтХЪтХЧтХС тХСтХЪтХРтХЭтХСтХСтХСтХСтХСтФАтХСтХЪтХРтХРтХЧтХСтХЪтХРтХРтХЧтХСтХСтФАтХСтХСтФАтФАтФАтФАтХСтХСтФАтФАтФАтХФтХЭтХЪтХЧтХСтХЪтХРтХЭтХС тХЪтХРтХРтХРтХЭтХЪтХЭтХЪтХЭтФАтХЪтХРтХРтХРтХЭтХЪтХРтХРтХРтХЭтХЪтХЭтФАтХЪтХЭтФАтФАтФАтФАтХЪтХЭтФАтФАтФАтХЪтХРтХРтХЭтХЪтХРтХРтХРтХЭ 5HHHG HH HHHHHHH 9HHHA HHHHHHHH5 HHHHHHHHHHHHHHHHHH 9HHHHH5 5HHHHHHHHHHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHHHHHHHHHHHHHH ;HHHHHHHHHHHHHHHHHHHHHHHHHHA H2 HHHHHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHHHHHHHHH9 HHHHHHHHHHHHHHHHHHHHHHH AHHHHHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHHHHHHH9 iHS HHHHHHHHHHHHHHHHHHHHHHhh HHHHHHHHHHHHHHHHHH AA HHHHHHHHHHHHHH3 &H Hi HS Hr & H& H& Hi
рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐
рдореИрдВ рдЖрдкрдХреЛ php рдореЗрдВ рдЕрдкрдиреА рдЫреЛрдЯреА рд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБред рд╡рд╣ рдХрд┐рди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ? рдореИрдВрдиреЗ рдЗрд╕реЗ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдХреНрдпреЛрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдЦреИрд░ рдЗрди рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред
рдЧреНрд░реАрдирдкреАрдЧ (рдЗрд╕рдХреЗ рдмрд╛рдж рдЬреАрдкреА ) рдПрдХ рдЫреЛрдЯрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд╣рд╛рдпрдХ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА php рдврд╛рдВрдЪреЗ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдкреВрд░рдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдХрд┐рд╕реА рднреА GP рдЙрдкрдХрд░рдг рдХреА рддрд░рд╣, рдЗрд╕реЗ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рддреЗрдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рд╢реБрджреНрдз рдПрд╕рдХреНрдпреВрдПрд▓ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд╡реЗрд░реА рд▓рд┐рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рдХреНрд░рд┐рдп рд░рд┐рдХреЙрд░реНрдб рдФрд░ рдЕрдиреНрдп рд╕рдорд╛рди рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрд╛рдо рдкрд░ рдПрдХ рдУрд░реЗрдХрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ рдФрд░ рдЕрдХреНрд╕рд░ рджрд░реНрдЬрдиреЛрдВ рдЬреЙрдиреНрд╕, plsql рдлрд╝рдВрдХреНрд╢рди, рдпреВрдирд┐рдпрди рдСрд▓ рдЗрддреНрдпрд╛рджрд┐ рдХреЗ рд╕рд╛рде рдХрдИ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрджрд┐, рдЗрд╕рд▓рд┐рдП рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрдЪрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╢реБрджреНрдз sql рдореЗрдВ рдкреНрд░рд╢реНрди рд▓рд┐рдЦреЗрдВред
рд▓реЗрдХрд┐рди рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдпрд╣ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рдиреЗ рдкрд░ рдПрд╕рдХреНрдпреВрдПрд▓ рдХреНрд╡реЗрд░реА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдХрд╣рд╛рдБ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ? рдЬреАрдкреА рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╣реИ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, php рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рдВрдХрд▓рди рдкрд░, рдЬрд╣рд╛рдВ рдХрд┐рд╕реА рднреА рдЬрдЯрд┐рд▓рддрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдзред
рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдореБрдЭреЗ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ (рд╕рд┐рд╡рд╛рдп, рджрд┐рд▓рдЪрд╕реНрдк рдЕрдиреБрднрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)? рдпреЗ рддреАрди рдЪреАрдЬреЗрдВ рд╣реИрдВ:
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдПрдХ рдорд╛рдирдХ рдлреНрд▓реИрдЯ рдЙрддреНрддрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдиреЗрд╕реНрдЯреЗрдб, рдкреЗрдбрд╝ рдХреА рддрд░рд╣ рд╕рд░рдгреАред
рдпрд╣рд╛рдБ рдПрдХ рдорд╛рдирдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдирдореВрдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: [ [0] => [ ['id'] => 1 ['type'] => 'car' ['val_id'] => 1 ['name'] => ' ()' ['value'] => 790 ], [1] => [ ['id'] => 1 ['type'] => 'car' ['val_id'] => 2 ['name'] => ' ' ['value'] => 24 ], [2] => [ ['id'] => 1 ['type'] => 'car' ['val_id'] => 3 ['name'] => ' ' ['value'] => 75 ], [3] => [ ['id'] => 4 ['type'] => 'phone' ['val_id'] => 10 ['name'] => ' ' ['value'] => 5 ], [4] => [ ['id'] => 4 ['type'] => 'phone' ['val_id'] => 8 ['name'] => ' ()' ['value'] => 0.12 ], [5] => [ ['id'] => 4 ['type'] => 'phone' ['val_id'] => 9 ['name'] => ' ' ['value'] => 1 ], [6] => [ ['id'] => 4 ['type'] => 'phone' ['val_id'] => 10 ['name'] => ' ' ['value'] => 5 ], [7] => [ ['id'] => 4 ['type'] => 'phone' ['val_id'] => 8 ['name'] => ' ()' ['value'] => 0.12 ], [8] => [ ['id'] => 4 ['type'] => 'phone' ['val_id'] => 9 ['name'] => ' ' ['value'] => 1 ], [9] => [ ['id'] => 4 ['type'] => 'phone' ['val_id'] => 10 ['name'] => ' ' ['value'] => 5 ], [10] => [ ['id'] => 4 ['type'] => 'phone' ['val_id'] => 8 ['name'] => ' ()' ['value'] => 0.12 ], [11] => [ ['id'] => 4 ['type'] => 'phone' ['val_id'] => 9 ['name'] => ' ' ['value'] => 1 ], [12] => [ ['id'] => 1 ['type'] => 'car' ['val_id'] => 1 ['name'] => ' ()' ['value'] => 790 ], [13] => [ ['id'] => 1 ['type'] => 'car' ['val_id'] => 2 ['name'] => ' ' ['value'] => 24 ], [14] => [ ['id'] => 1 ['type'] => 'car' ['val_id'] => 3 ['name'] => ' ' ['value'] => 75 ], [15] => [ ['id'] => 1 ['type'] => 'car' ['val_id'] => 1 ['name'] => ' ()' ['value'] => 790 ], [16] => [ ['id'] => 1 ['type'] => 'car' ['val_id'] => 2 ['name'] => ' ' ['value'] => 24 ], [17] => [ ['id'] => 1 ['type'] => 'car' ['val_id'] => 3 ['name'] => ' ' ['value'] => 75 ] ]
рдПрдХ рдкреЗрдбрд╝ рдХреЗ рд╕рдорд╛рди рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╡рд╛рдВрдЫрд┐рдд рд░реВрдк рдореЗрдВ рд╕реНрд╡рдпрдВ рд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП рдПрди рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рд╢реНрди рдмрдирд╛рдПрдВред рдФрд░ рдЕрдЧрд░ рд╣рдореЗрдВ рдЫрдБрдЯрд╛рдИ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдФрд░ рдЫрдБрдЯрд╛рдИ рдХреЗ рд╕рд╛рде рднреА? рдЬреАрдкреА рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рдпрд╣рд╛рдБ рдЬреАрдкреА рдХреЗ рд╕рд╛рде рдирдореВрдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
[ [1] => [ ['prod_type'] => 'car' ['properties'] => [ [1] => [ ['name'] => ' ()' ['value'] => 790 ] [2] => [ ['name'] => ' ' ['value'] => 24 ] [3] => [ ['name'] => ' ' ['value'] => 75 ] ] ] [4] => [ ['prod_type'] => 'phone' ['properties'] => [ [10] => [ ['name'] => ' ' ['value'] => 5 ] [8] => [ ['name'] => ' ()' ['value'] => 0.12 ] [9] => [ ['name'] => ' ' ['value'] => 1 ] ] ] ]
рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкреЗрдЬреЗрд╢рди рдФрд░ рд╕реЙрд░реНрдЯрд┐рдВрдЧ: ->pagination(1, 10)->sort('id')
ред
рджреВрд╕рд░рд╛ рдХрд╛рд░рдг рдЕрдХреНрд╕рд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ (рдФрд░ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдореБрдЦреНрдп рдХрд╛рд░рдг рд╣реИ)ред рдпрджрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреБрдЫ рдЗрдХрд╛рдЗрдпрд╛рдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ, рдФрд░ рдЗрди рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдЧреБрдг рдЧрддрд┐рд╢реАрд▓ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИрдВ, рддреЛ рдЬрдм рдЖрдкрдХреЛ рдЙрдирдХреЗ рдЧреБрдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╕рдВрдкрддреНрддрд┐ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рддрд╛рд▓рд┐рдХрд╛ (рдЬрд┐рддрдиреА рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИ) рдЬреЛрдбрд╝рдиреА рд╣реЛрдЧреАред рдЧреБрдг рдЬрдм рдЦреЛрдЬ)ред рддреЛ рдЬреАрдкреА рдЖрдкрдХреЛ рд╕рднреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ рдФрд░ рдЬрд╣рд╛рдВ рдХреНрд╡реЗрд░реА рд▓рдЧрднрдЧ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдореИрдВ рдЗрд╕ рдорд╛рдорд▓реЗ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реВрдВрдЧрд╛ред
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдпрд╣ рд╕рдм Oracle рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ mySql рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рднреА рд╣реИрдВред
рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рджреВрд╕рд░реА рдмрд╛рдЗрдХ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рд╡рд┐рд╡реЗрдХрдкреВрд░реНрд╡рдХ рдЦреЛрдЬ рдХреА рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдЦреЛрдЬрд╛ред рдпрджрд┐ рдЖрдк рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬрд╛рдирддреЗ рд╣реИрдВ рдЬреЛ рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ - рдХреГрдкрдпрд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВред
рд╕реНрд╡рдпрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдПрдХ рдкрд░реАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдХреЗ рдмрд┐рдирд╛ рдХреЗрд╡рд▓ рд╕рд╛рд░ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЬреАрдкреА рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдкреНрд░рд▓реЗрдЦрди рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдореЗрдВ рдореИрдВрдиреЗ рд╕рдм рдХреБрдЫ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрдиреЗрдХреНрд╢рди
рд╕рдВрдЧреАрддрдХрд╛рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: composer require falbin/green-pig-dao
рдлрд┐рд░ рдЖрдкрдХреЛ рдПрдХ рдХрд╛рд░рдЦрд╛рдирд╛ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдк рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рдХрдХреНрд╖рд╛ рдХрд╣рд╛рдБ
рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдХрд┐рд╕реА рднреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ sql рдХреНрд╡реЗрд░реА рдХреЗ рднрд╛рдЧ рдХрд╛ рд╕рдВрдХрд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдиреБрд░реЛрдз рдХрд╛ рдкрд░рдорд╛рдгреБ рднрд╛рдЧ
рдХрд┐рд╕реА рдХреНрд╡реЗрд░реА рдХреЗ рд╕рдмрд╕реЗ рдЫреЛрдЯреЗ, рдкрд░рдорд╛рдгреБ рднрд╛рдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдпрд╣ рдПрдХ рд╕рд░рдгреА рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рд╣реИ: [, , ]
рдЙрджрд╛рд╣рд░рдг: ['name', 'like', '%%']
- рд╕рд░рдгреА рдХрд╛ рдкрд╣рд▓рд╛ рддрддреНрд╡ рд╕рд┐рд░реНрдл рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ, рдЬрд┐рд╕реЗ рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд┐рдирд╛ sql рдХреНрд╡реЗрд░реА рдореЗрдВ рдбрд╛рд▓рд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП, рдЖрдк рдЗрд╕рдореЗрдВ sql рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг:
['LOWER(name)', 'like', '%%']
- рджреВрд╕рд░рд╛ рддрддреНрд╡ рднреА рджреЛ рдСрдкрд░реЗрдВрдб рдХреЗ рдмреАрдЪ рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд┐рдирд╛ рдПрд╕рдХреНрдпреВрдПрд▓ рдореЗрдВ рдбрд╛рд▓рд╛ рдЧрдпрд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИред рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рди рд▓реЗ рд╕рдХрддрд╛ рд╣реИ: =,>, <,> =, <=, <>, рдЬреИрд╕реЗ, рдмреАрдЪ рдореЗрдВ рдирд╣реАрдВ, рдмреАрдЪ рдореЗрдВ рдирд╣реАрдВ, рдЬреИрд╕реЗ, рдореЗрдВ рдирд╣реАрдВ ред
- рд╕рд░рдгреА рдХрд╛ рддреАрд╕рд░рд╛ рддрддреНрд╡ рдпрд╛ рддреЛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЬрд╣рд╛рдБ рд╡рд░реНрдЧ рд╕реНрд╡рддрдГ рдЙрддреНрдкрдиреНрди рдЙрдкрдирд╛рдо рдХреЛ sql рдХреНрд╡реЗрд░реА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдкрдиреНрди рдХрд░ рджреЗрдЧрд╛ред
- Sql рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдРрд░реЗ рддрддреНрд╡ред рдХрднреА-рдХрднреА рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдореВрд▓реНрдп рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд┐рдирд╛ sql рдХреЛрдб рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕реЗ 'sql' рдХреЛ рдХреБрдВрдЬреА (3 рддрддреНрд╡ рдХреЗ рд▓рд┐рдП) рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг:
['LOWER(name)', 'like', 'sql' => "LOWER('$name')"]
- рдмрд╛рдБрдз рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рддрддреНрд╡ рдмрд╛рдБрдз рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рдгреА рд╣реИред рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЧрд▓рдд рд╣реИред рдЖрдк рдЪрд░ рдореЗрдВ рд╡рд░реНрдЧ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ - рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЗрдВрдЬреЗрдХреНрд╢рди рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЙрдкрдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
['LOWER(name)', 'like', 'sql' => "LOWER(:name)", 'bind'=> ['name' => $name] ]
- рдСрдкрд░реЗрдЯрд░ рдХреЛ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
['curse', 'not in', [1, 3, 5]]
ред рдж рдХреНрд▓рд╛рд╕ рдиреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рд╡реЗрд╢ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрд╕рдХреНрдпреВрдПрд▓ рдХреЛрдб рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ: curse not in (:al_where_jCgWfr95kh, :al_where_mCqefr95kh, :al_where_jCfgfr9Gkh)
- рдЗрд╕ рдХрдерди рдХреЛ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
['curse', ' between', 1, 5]
ред рдирд┐рдореНрди рд╡рд░реНрдЧ рдХреЛрдб рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рд╡реЗрд╢ рдХреЛ рдХрд╣рд╛рдВ рд╡рд░реНрдЧ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ: рдХреЗ curse between :al_where_Pi4CRr4xNn and :al_where_WiPPS4NKiG
рд▓реЗрдХрд┐рди рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ, рдпрджрд┐ рд╕рд░рдгреА рдХреЗ рддреАрд╕рд░реЗ рдФрд░ рдЪреМрдереЗ рддрддреНрд╡ рддрд╛рд░ рд╣реИрдВ, рддреЛ рд╡рд┐рд╢реЗрд╖ рддрд░реНрдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЪрдпрди рдПрдХ рддрд┐рдерд┐ рд╕реАрдорд╛ рд╕реЗ рд╣реЛрддрд╛ рд╣реИ рдФрд░, рдЗрд╕рд▓рд┐рдП, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдХрд┐рд╕реА рджрд┐рдирд╛рдВрдХ рдореЗрдВ рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ sql рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд┐рд╕реА рджрд┐рдирд╛рдВрдХ (mySql рдФрд░ Oracle рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд╛рд▓реЗ) рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдФрд░ рдЗрд╕рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА (рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЕрдзрд┐рдХ) рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рд░рдгреА ['build_date', 'between', '01.01.2016', '01.01.2019']
рдХреЛ sql рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛: build_date between TO_DATE(:al_where_fkD7nZg5lU, 'dd.mm.yyyy hh24:mi::ss') and TO_DATE(:al_where_LdyVRznPF8, 'dd.mm.yyyy hh24:mi::ss')
рдЬрдЯрд┐рд▓ рдХреНрд╡реЗрд░реА
рдЪрд▓реЛ рдХрд╛рд░рдЦрд╛рдиреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╣реИрдВ: $wh = GP::where();
рдЕрдиреБрд░реЛрдз рдХреЗ "рдкрд░рдорд╛рдгреБ рднрд╛рдЧреЛрдВ" рдХреЗ рдмреАрдЪ рддрд╛рд░реНрдХрд┐рдХ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ linkAnd()
рдпрд╛ linkOr()
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдПрдХ рдЙрджрд╛рд╣рд░рдг:
рдЬрдм linkAnd / linkOr рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реЛрдВ, рддреЛ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдЬрд╣рд╛рдБ - $ wh рд╡рд░реНрдЧ рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЗ рдЕрдВрджрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд╛рде рд╣реА, рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЗрдВрдЧрд┐рдд рд╕рднреА "рдкрд░рдорд╛рдгреБ рднрд╛рдЧреЛрдВ" рдХреЛ рдмреНрд░реИрдХреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред
рдХрд┐рд╕реА рднреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ Sql рдХреЛ рддреАрди рдХрд╛рд░реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: linkAnd(), linkOr(), getRaw()
ред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
рдЬрд╣рд╛рдБ рдХрдХреНрд╖рд╛ рдореЗрдВ рдПрдХ рдирд┐рдЬреА рдЪрд░ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдХрдЪреНрдЪреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред linkAnd()
рдФрд░ linkOr()
рд╡рд┐рдзрд┐рдпрд╛рдБ рдЗрд╕ рдЪрд░ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП, рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп, рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде linkOr()
рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЪрд░ рдХреЗ рд╕рд╛рде рдЪрд░ рдореЗрдВ рдЕрдВрддрд┐рдо рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╡рд┐рдзрд┐ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рд╣реЛрддрд╛ рд╣реИред
рдЬреЙрдп рдХреНрд▓рд╛рд╕
рдЬреНрд╡рд╛рдЗрди рдПрдХ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ sql рдХреЛрдб рдХреЗ рдПрдХ рд╕рдВрдпреБрдХреНрдд рдЯреБрдХрдбрд╝реЗ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдЪрд▓реЛ рдХрд╛рд░рдЦрд╛рдиреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдХреНрд╖рд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╣реИрдВ: $jn = GP::leftJoin('coursework', 'student_id', 's.id')
, рдЬрд╣рд╛рдБ:
- coursework рд╡рд╣ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗред
- student_id - coursework рдЯреЗрдмрд▓ рд╕реЗ рдПрдХ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рд╡рд╛рд▓рд╛ рдПрдХ рдХреЙрд▓рдоред
- s.id - рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕реНрддрдВрдн рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП, рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЙрдкрдирд╛рдо рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдирд╛рдо s рд╣реИ)ред
рдЬрдирд░реЗрдЯреЗрдб sql: left JOIN coursework coursework_joM9YuTTfW ON coursework_joM9YuTTfW.student_id = s.id
рдХрдХреНрд╖рд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╕рдордп, рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред LinkAnd / linkOr рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреА: $jn->linkAnd(['semester_number', '>', 2])
рдЙрддреНрдкрдиреНрди inner JOIN coursework coursework_Nd1n5T7c0r ON coursework_Nd1n5T7c0r.student_id = s.id and (semester_number > :al_where_M1kEcHzZyy)
: inner JOIN coursework coursework_Nd1n5T7c0r ON coursework_Nd1n5T7c0r.student_id = s.id and (semester_number > :al_where_M1kEcHzZyy)
рдпрджрд┐ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЯреЗрдмрд▓ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдПрдХ рдХрдХреНрд╖рд╛ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ: CollectionJoin ред
рдХрдХреНрд╖рд╛ рдХреА рдХреНрд╡реЗрд░реА
рдпрд╣ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рд╡рд░реНрдЧ рд╣реИ, рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдЪрдпрди, рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ, рдЕрдкрдбреЗрдЯ рдФрд░ рд╡рд┐рд▓реЛрдкрди рд╣реЛрддрд╛ рд╣реИред рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреА рдХреБрдЫ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдЪрд▓реЛ рдХрд╛рд░рдЦрд╛рдиреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╣реИрдВ: $qr = GP::query();
рдЕрдм рд╣рдо sql рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗ, рджрд┐рдП рдЧрдП рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдорд╛рдиреЛрдВ рдХреЛ sql рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдкрдиреНрди рдХрд░реЗрдВрдЧреЗ рдФрд░ рдХрд╣реЗрдВрдЧреЗ рдХрд┐ рд╣рдо рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдФрд╕рдд_рдорд╛рд░реНрдХ рдХреЙрд▓рдо рд╕реЗ рдбреЗрдЯрд╛ред
$rez = $qr->sql("select /*select*/ from student s inner join mark m on s.id = m.student_id inner join lesson l on l.id = m.lesson_id /*where*/ /*group*/") ->sqlPart('/*select*/', 's.name, avg(m.mark) average_mark', []) ->whereAnd('/*where*/', ['s.id', '=', 1]) ->sqlPart('/*group*/', 'group by s.name', []) ->one('average_mark');
рдкрд░рд┐рдгрд╛рдо: 3,16666666666666666666666666666666666667
рдиреЗрд╕реНрдЯреЗрдб рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЪрдпрди
рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ, рдореЗрд░реЗ рдкрд╛рд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЯреНрд░реА рд╡реНрдпреВ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдЪрдпрди рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдирд╣реАрдВ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рдЬреАрдкреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдРрд╕рд╛ рдЕрд╡рд╕рд░ рд╣реИ, рдФрд░ рдШреЛрдВрд╕рд▓реЗ рдХреА рдЧрд╣рд░рд╛рдИ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИред
рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рд▓реЗрддреЗ рд╣реИрдВ :

рддрд╛рд▓рд┐рдХрд╛ рд╕рд╛рдордЧреНрд░реА:

рдЕрдХреНрд╕рд░, рдЬрдм рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдПрдХ рдкреЗрдбрд╝ рдХреА рддрд░рд╣ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдПрдХ рд╕рдкрд╛рдЯ рдЬрд╡рд╛рдм рдирд╣реАрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдХреНрд╡реЗрд░реА рдХреЛ рдЪрд▓рд╛рдХрд░:
SELECT s.id, s.name, c.id title_id, c.title FROM student s INNER JOIN coursework c ON c. student_id = s.id WHERE s.id = 3
рд╣рдореЗрдВ рдПрдХ рд╕рдкрд╛рдЯ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИ:
[ 0 => [ 'id' => 3, 'name' => '', 'title_id' => 6, 'title' => '┬л┬╗ ', ], 1=> [ 'id' => 3, 'name' => '', 'title_id' => 7, 'title' => ' ' ] ]
рдЬреАрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдпрд╣ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
[ 3 => [ 'name' => '', 'courseworks' => [ 6 => ['title' => '┬л┬╗ '], 7 => ['title' => ' '] ] ] ]
рдЗрд╕ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ all
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдкрд╛рд╕ рдХрд░рдиреА рд╣реЛрдЧреА (рдлрд╝рдВрдХреНрд╢рди рд╕рднреА рдХреНрд╡реЗрд░реА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ):
all([ 'id'=> 'pk', 'name' => 'name', 'courseworks' => [ 'title_id' => 'pk', 'title' => 'title' ] ])
рдлрд╝рдВрдХреНрд╢рдВрд╕ рдПрдЧреНрд░реАрдЧреЗрдЯрд░ рдореЗрдВ $option
рд╕рд░рдгреА ( $option
, $ рд░реЙрдбреЗрдЯрд╛) рдФрд░ рд╕рднреА ( $options
) рдирд┐рдореНрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
- рдПрд░реЗ рдХреАрдЬрд╝ - рдХреЙрд▓рдо рдирд╛рдоред рдПрд░реЗ рддрддреНрд╡реЛрдВ - рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП рдирдП рдирд╛рдо, рдЖрдк рдкреБрд░рд╛рдиреЗ рдирд╛рдо рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рд╕рд░рдгреА рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд░рдХреНрд╖рд┐рдд рд╢рдмреНрдж рд╣реИ -
pk
ред рдпрд╣ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдХреЛ рдЗрд╕ рдХреЙрд▓рдо рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рд╕рд░рдгреА рдХреБрдВрдЬреА рдХреЙрд▓рдо рдХрд╛ рдирд╛рдо рд╣реИ)ред - рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░ рдкрд░ рдХреЗрд╡рд▓ рдПрдХ
pk
рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред - рдПрдХрддреНрд░рд┐рдд (рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк) рд╕рд░рдгреА рдореЗрдВ,
pk
рджреНрд╡рд╛рд░рд╛ рдШреЛрд╖рд┐рдд рдХреЙрд▓рдо рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред - рдпрджрд┐ рд╕реНрддрдВрднреЛрдВ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдПрдХ рд╕реНрддрд░ рдХрдо рд░рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рддреЛ рдПрдХ рдирдпрд╛, рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдирд╛рдо рдПрдХ рд╕рд░рдгреА рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирд┐рд░реНрдорд┐рдд рдПрдХ рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдореВрд▓реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдПрдХ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдореЗрдВ рд╕рднреА рдЫрд╛рддреНрд░реЛрдВ рдХреЛ рдЙрдирдХреЗ рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рдирд╛рдо рдФрд░ рд╕рднреА рд╡рд┐рд╖рдпреЛрдВ рдореЗрдВ рд╕рднреА рдЧреНрд░реЗрдб рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рдПрдХ рд╕рдкрд╛рдЯ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рд╡реГрдХреНрд╖ рдХреА рддрд░рд╣, рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЗ рдмрд┐рдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдиреАрдЪреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП рд╡рд╛рдВрдЫрд┐рдд рдХреНрд╡реЗрд░реА рд╣реИред
SELECT s.id student_id, s.name student_name, s.semester_number, c.id coursework_id, c.semester_number coursework_semester, c.title coursework_title, l.id lesson_id, l.name lesson, m.id mark_id, m.mark FROM student s LEFT JOIN coursework c ON c.student_id = s.id LEFT JOIN mark m ON m.student_id = s.id LEFT JOIN lesson l ON l.id = m.lesson_id ORDER BY s.id, c.id, l.id, m.id
рдкрд░рд┐рдгрд╛рдо рд╣рдореЗрдВ рд╢реЛрднрд╛ рдирд╣реАрдВ рджреЗрддрд╛:

рдХрд╛рд░реНрдп рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд $option
рд╕рд╛рд░рдгреА рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
$option = [ 'student_id' => 'pk', 'student_name' => 'name', 'courseworks' => [ 'coursework_semester' => 'pk', 'coursework_title' => 'title' ], 'lessons' => [ 'lesson_id' => 'pk', 'lesson' => 'lesson', 'marks' => [ 'mark_id' => 'pk', 'mark' => 'mark' ] ] ];
рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд╡реЗрд░реА:
aggregator
рдлрд╝рдВрдХреНрд╢рди рдХрд┐рд╕реА рднреА рд╕рд░рдгреА рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд╡реЗрд░реА рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рдорд╛рди рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, $option
рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ред
$result
рдЪрд░ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбреЗрдЯрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
[ 1 => [ 'name' => '', 'courseworks' => [ 1 => ['title' => ' '], ], 'lessons' => [ 1 => [ 'lesson' => '', 'marks' => [ 1 => ['mark' => 3], 2 => ['mark' => 4] ] ], 2 => [ 'lesson' => '', 'marks' => [ 3 => ['mark' => 2], 4 => ['mark' => 2], 5 => ['mark' => 3] ] ], 4 => [ 'lesson' => '', 'marks' => [ 6 => ['mark' => 5] ] ] ] ], 3 => [ 'name' => '', 'courseworks' => [ 1 => ['title' => '┬л┬╗ '], 2 => ['title' => ' '] ], 'lessons' => [ 1 => [ 'lesson' => '', 'marks' => [ 17 => ['mark' => 5] ] ], 2 => [ 'lesson' => '', 'marks' => [ 18 => ['mark' => 2] ] ], 3 => [ 'lesson' => '-', 'marks' => [ 20 => ['mark' => 4] ] ], 4 => [ 'lesson' => '', 'marks' => [ 16 => ['mark' => 2], 19 => ['mark' => 3] ] ], ] ] ]
рд╡реИрд╕реЗ, рд╕рдордЧреНрд░ рдХреНрд╡реЗрд░реА рдХреЗ рд╕рд╛рде рдкреГрд╖реНрдард╛рдВрдХрди рдХреЗ рд╕рд╛рде, рдХреЗрд╡рд▓ рд╢реАрд░реНрд╖, рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рдбреЗрдЯрд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдкрд░реНрдпреБрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдкреГрд╖реНрдарди рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ 2 рд░реЗрдЦрд╛рдПрдБ рд╣реЛрдВрдЧреАред
рдЦреЛрдЬ рдХреЗ рдирд╛рдо рдкрд░ рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рдХрдИ рдорд┐рд▓рди
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд▓рд┐рдЦрд╛ рдерд╛, рдореЗрд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдЪреБрдирд┐рдВрджрд╛ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП рднрд╛рдЧреЛрдВ рдХреА рдкреАрдврд╝реА рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рд╣реИред рддреЛ рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣рдореЗрдВ рдЙрд╕ рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП рдмрд╛рд░-рдмрд╛рд░ рдПрдХ рд╣реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ? рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЙрддреНрдкрд╛рдж рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЧреБрдг рдкрд╣рд▓реЗ рд╕реЗ рдЬреНрдЮрд╛рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд╣рдореЗрдВ рдЗрди рдЧрддрд┐рд╢реАрд▓ рдЧреБрдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрд╛рджреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╕рдордЭрд╛рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ред
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдВрдкреНрдпреВрдЯрд░ рдШрдЯрдХреЛрдВ рдХреА рдмрд┐рдХреНрд░реА рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдСрдирд▓рд╛рдЗрди рд╕реНрдЯреЛрд░ рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдЦреНрдд рд╡рд░реНрдЧреАрдХрд░рдг рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╣рдо рд╕рдордп-рд╕рдордп рдкрд░ рдПрдХ рдШрдЯрдХ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреЛ рдЦрд░реАрджреЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рд╣рдо рдЕрдкрдиреЗ рд╕рднреА рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдПрдХ рдЗрдХрд╛рдИ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рд╕рднреА рдЙрддреНрдкрд╛рджреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рддреЛ, рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдХрд┐рди рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- рдорд╛рд▓ред рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЗрдХрд╛рдИ рдЬрд┐рд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд╕рдм рдХреБрдЫ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
- рдЙрддреНрдкрд╛рдж рдХрд╛ рдкреНрд░рдХрд╛рд░ред рдЗрд╕реЗ рдЕрдиреНрдп рд╕рднреА рдЙрддреНрдкрд╛рдж рдЧреБрдгреЛрдВ рдХреЗ рд▓рд┐рдП рдореВрд▓ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдЫреЛрдЯреЗ рд╕реНрдЯреЛрд░ рдореЗрдВ рдпрд╣ рдХреЗрд╡рд▓ рд╣реИ: рд░реИрдо, рдПрд╕рдПрд╕рдбреА рдФрд░ рдПрдЪрдбреАрдбреАред
- рдЙрддреНрдкрд╛рдж рдХреЗ рдЧреБрдгред рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдХрд┐рд╕реА рднреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрддреНрдкрд╛рдж рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╡рд┐рдХрд▓реНрдк рдкреНрд░рдмрдВрдзрдХ рдХреЗ рд╡рд┐рд╡реЗрдХ рдкрд░ рд░рд╣рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рд╕реНрдЯреЛрд░ рдореЗрдВ, рдкреНрд░рдмрдВрдзрдХреЛрдВ рдиреЗ рдХреЗрд╡рд▓ 3 рдЧреБрдг рдмрдирд╛рдП: рдореЗрдореЛрд░реА рд╕рд╛рдЗрдЬрд╝, рдлреЙрд░реНрдо рдлреИрдХреНрдЯрд░ рдФрд░ рдбреАрдбреАрдЖрд░ред
- рдорд╛рд▓ рдХрд╛ рдореВрд▓реНрдпред рд╡рд╣ рдореВрд▓реНрдп рдЬреЛ рдЦрд░реАрджрд╛рд░ рдЦреЛрдЬ рдореЗрдВ рдЪрд▓рд╛рдПрдЧрд╛ред
рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдХреЗ рд╕рднреА рдиреАрдЪреЗ рдХреА рдЫрд╡рд┐ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЙрддреНрдкрд╛рдж рд╣реИ: 16 рдЬреАрдмреА рдбреАрдбреАрдЖрд░ 3 рд░реИрдо ред рдЖрд░реЗрдЦ рдкрд░ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдбреЗрдЯрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрдВрдХрдбрд╝реЛрдВ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ:

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЖрд░реЗрдЦ рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рд╕рднреА рдЧреБрдгреЛрдВ рдХреЗ рд╕рднреА рдореВрд▓реНрдп рдПрдХ рд╡реИрд▓ рдЯреЗрдмрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рд╡реИрд╕реЗ, рд╣рдорд╛рд░реЗ рд╕рд░рд▓реАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд╕рднреА рдЧреБрдгреЛрдВ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рди рд╣реИрдВ)ред рдЗрд╕рд▓рд┐рдП, рдЕрдЧрд░ рд╣рдо AND рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд╕рд╛рде рдХрдИ рдЧреБрдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рде рдЦреЛрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдПрдХ рдЦрд╛рд▓реА рдЪрдпрди рдорд┐рд▓рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЦрд░реАрджрд╛рд░ рдРрд╕реЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдЙрддреНрдкрд╛рджреЛрдВ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИ: рдореЗрдореЛрд░реА рдХреА рдорд╛рддреНрд░рд╛ 10 рдЬреАрдмреА рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рдлреЙрд░реНрдо рдлреИрдХреНрдЯрд░ 2.5 рдЗрдВрдЪ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ред рдпрджрд┐ рд╣рдо рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЕрдиреБрд╕рд╛рд░ sql рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдПрдХ рдЦрд╛рд▓реА рдЪрдпрди рдорд┐рд▓рддрд╛ рд╣реИ:
select * from product p inner join val v on v.product_id = p.id where (v.property_id = 1 and v.value > 10) AND (v.property_id = 3 and v.value = 2.5)
рдЪреВрдВрдХрд┐ рд╕рднреА рдЧреБрдгреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрдИ рдЧреБрдгреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ рдШрд╛рдЯреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рдЦреЛрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдПрдХ рдЕрддрд┐ рд╕реВрдХреНрд╖реНрдо рдЕрдВрддрд░ рд╣реИ, рдЬреЙрдЗрди рдЯреЗрдмрд▓ "рдХреНрд╖реИрддрд┐рдЬ" рд╕реЗ рдЬреБрдбрд╝реЗрдВ (рд╢рдмреНрдж рд╕рдВрдШ рдореЗрдВ рд╕рднреА "рд▓рдВрдмрд╡рдд" рдЬреБрдбрд╝рддреЗ рд╣реИрдВ), рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

рдпрд╣ рдкрд░рд┐рдгрд╛рдо рд╣рдореЗрдВ рд╢реЛрднрд╛ рдирд╣реАрдВ рджреЗрддрд╛, рд╣рдо рд╕рднреА рдореВрд▓реНрдпреЛрдВ рдХреЛ рдПрдХ рдХреЙрд▓рдо рдореЗрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрди рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рд╕реЗ 1 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рддрд╛рд▓рд┐рдХрд╛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬ рдХреА рдЬрд╛рддреА рд╣реИред

рд╣рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ sql рдХреНрд╡реЗрд░реА рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рдХрд░реАрдм рд╣реИрдВред рдЖрдЗрдП рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджреЗрдЦреЗрдВ
whereWithJoin ($aliasJoin, $options, $aliasWhere, $where)
, рдЬреЛ рд╕рднреА рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ:
- $ aliasJoin - рдЖрдзрд╛рд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдПрдХ рдЙрдкрдирд╛рдо, рдЬрд┐рд╕рдХреЗ рдмрдЬрд╛рдп рдЬреЙрдЗрди рдХреЗ рд╕рд╛рде sql рднрд╛рдЧ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- $ рд╡рд┐рдХрд▓реНрдк - рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдореЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреАред
- $ aliasWhere - рдмреЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдПрдХ рдЙрдкрдирд╛рдо, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдЬрд╣рд╛рдВ sql рднрд╛рдЧ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред
- $ рдЬрд╣рд╛рдВ рдЬрд╣рд╛рдВ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред
рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ: whereWithJoin('/*join*/', $options, '/*where*/', $wh)
ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, $ рд╡рд┐рдХрд▓реНрдк рдЪрд░ рдмрдирд╛рдПрдВ: $options = ['v' => ['val', 'product_id', 'p.id']];
v рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдирд╛рдо рд╣реИред рдпрджрд┐ рджрд┐рдП рдЧрдП рдЙрдкрдирд╛рдо $ рдХ рдореЗрдВ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ , рддреЛ рдПрдХ рдирдИ рд╡реИрд▓ рдЯреЗрдмрд▓ рдХреЛ рдЬреНрд╡рд╛рдЗрди рдХрд░рдХреЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ (рдЬрд╣рд╛рдВ product_id рд╡реИрд▓ рдЯреЗрдмрд▓ рдХреА рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рд╣реИ, рдФрд░ p.id рдПрд▓реАрд╕ рдкреА рдХреЗ рд╕рд╛рде рдЯреЗрдмрд▓ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рд╣реИ), рдПрдХ рдирдпрд╛ рдЙрдкрдирд╛рдо рдФрд░ рдпрд╣ рдЙрдкрдирд╛рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред рдХрд╣рд╛рдБ рдореЗрдВ v рдХреА рдЬрдЧрд╣ рд▓реЗрдЧрд╛ред
$ рд╡реНрд╣ рдХрд╣рд╛рдБ рдХрдХреНрд╖рд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рд╣рдо рдПрдХ рд╣реА рдЕрдиреБрд░реЛрдз рдмрдирд╛рддреЗ рд╣реИрдВ: рдореЗрдореЛрд░реА 10 рдЬреАрдмреА рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рдлреЙрд░реНрдо рдлреИрдХреНрдЯрд░ 2.5 рдЗрдВрдЪ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
$wh->linkAnd([ $wh->linkAnd([ ['v.property_id', '=', 1], ['v.value', '>', 10] ])->getRaw(),
рдЬрд╣рд╛рдВ рдПрдХ рдЕрдиреБрд░реЛрдз рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдИрдбреА рд╕рдВрдкрддреНрддрд┐ рдФрд░ рдмреНрд░реИрдХреЗрдЯ рдореЗрдВ рдЗрд╕рдХреЗ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рднрд╛рдЧ рдХреЛ рд▓рдкреЗрдЯрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдпрд╣ рдЬрд╣рд╛рдВ whereWithJoin()
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдЯреЗрдмрд▓ рдЙрд░реНрдл тАЛтАЛрд╕рдорд╛рди рд╣реЛрдЧрд╛ред
$qr->sql("select p.id, t.name type_name, pr.id prop_id, pr.name prop_name, v.id val_id, v.value from product p inner join type t on t.id = p.type_id inner join val v on v.product_id = p.id inner join properties pr on pr.id = v.property_id /*join*/ /*where*/") ->whereWithJoin('/*join*/', $options, '/*where*/', $wh)
рд╣рдо рдЙрддреНрдкрдиреНрди sql, рдмрд╛рдЗрдВрдб рдФрд░ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ: $qr->debugInfo()
:
[ [ 'type' => 'info', 'sql' => 'select p.id, t.name type_name, pr.id prop_id, pr.name prop_name, v.id val_id, v.value from product p inner join type t on t.id = p.type_id inner join val v on v.product_id = p.id inner join properties pr on pr.id = v.property_id inner JOIN val val_mIQWpnHhdQ ON val_mIQWpnHhdQ.product_id = p.id inner JOIN val val_J0uveMpwEM ON val_J0uveMpwEM.product_id = p.id WHERE ( val_mIQWpnHhdQ.property_id = :al_where_leV5QlmOZN and val_mIQWpnHhdQ.value > :al_where_ycleYAswIw ) and ( val_J0uveMpwEM.property_id = :al_where_dinxDraTOE and val_J0uveMpwEM.value = :al_where_wZJhUqs74i )', 'binds' => [ 'al_where_leV5QlmOZN' => 1, 'al_where_ycleYAswIw' => 10, 'al_where_dinxDraTOE' => 3, 'al_where_wZJhUqs74i' => 2.5 ], 'timeQuery' => 0.0384588241577 ] ]
$qr->rawData()
:
[ [ 'id' => 3, 'type_name' => 'SSD', 'prop_id' => 1, 'prop_name' => ' ', 'val_id' => 5, 'value' => 512 ], [ 'id' => 3, 'type_name' => 'SSD', 'prop_id' => 3, 'prop_name' => '-', 'val_id' => 6, 'value' => 2.5 ], [ 'id' => 4, 'type_name' => 'SSD', 'prop_id' => 1, 'prop_name' => ' ', 'val_id' => 7, 'value' => 256 ], [ 'id' => 4, 'type_name' => 'SSD', 'prop_id' => 3, 'prop_name' => '-', 'val_id' => 8, 'value' => 2.5 ], [ 'id' => 6, 'type_name' => 'HDD', 'prop_id' => 1, 'prop_name' => ' ', 'val_id' => 11, 'value' => 1024 ], [ 'id' => 6, 'type_name' => 'HDD', 'prop_id' => 3, 'prop_name' => '-', 'val_id' => 12, 'value' => 2.5 ] ]
$qr->aggregateData()
:
[ 3 => [ 'type' => 'SSD', 'properties' => [ 1 => [ 'name' => ' ', 'values' => [ 5 => ['val' => 512] ] ], 3 => [ 'name' => '-', 'values' => [ 6 => ['val' => 2.5] ] ] ] ], 4 => [ 'type' => 'SSD', 'properties' => [ 1 => [ 'name' => ' ', 'values' => [ 7 => ['val' => 256] ] ], 3 => [ 'name' => '-', 'values' => [ 8 => ['val' => 2.5] ] ] ] ], 6 => [ 'type' => 'HDD', 'properties' => [ 1 => [ 'name' => ' ', 'values' => [ 11 => ['val' => 1024] ] ], 3 => [ 'name' => '-', 'values' => [ 12 => ['val' => 2.5] ] ] ] ] ]
, , whereWithJoin()
, .
whereWithJoin()
, , n , m . n m 1 id . , AND .
GitHub .