рд╣рдо рдЖрдИрдбреА рдЬрд╛рдирдиреЗ рдХреЗ рдкрд┐рдЫрд▓реЗ рдФрд░ рдЕрдЧрд▓реЗ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ

рдореБрдЭреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдШрдбрд╝реА рдкреГрд╖реНрда рдкрд░ [GO] [BACK] рдмрдЯрди рджрд┐рдЦрд╛рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЫрд╛рдВрдЯрдирд╛ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдПрдХ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдХреНрд╖реЗрддреНрд░ рджреНрд╡рд╛рд░рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╕рдорд╕реНрдпрд╛ рдХрдерди:

рдмрдирд╛рдПрдБ рдЯреЗрдмрд▓ `рд╕рдВрдкрд░реНрдХ` (
`рдЖрдИрдбреА` рдЗрдВрдЯ (11) рдирд╣реАрдВ рдкреВрд░реНрдг AUTO_INCREMENT,
`name_prefix` varchar (50) DEFAULT NULL,
`name` varchar (100) DEFAULT NULL,
`infix` varchar (100) DEFAULT NULL,
`рдЙрдкрдирд╛рдо` рд╡рд░реНрдЪрд░ (100) рд╢реВрдиреНрдп рдирд╣реАрдВ,
`Primary_email` varchar (100) DEFAULT NULL,
рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА (`рдЖрдИрдбреА`)
) рдЗрдВрдЬрди = MyISAM AUTO_INCREMENT = 3 DEFAULT CHARSET = utf8;

рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕рдордЭрд╛рдКрдВрдЧрд╛ рдХрд┐ рдпрд╣ рд╕рдм рдХрд╣рд╛рдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рджреЛ рдкреГрд╖реНрда рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
- рд╕реВрдЪрдХрд╛рдВрдХ, рдпрд╣ рд╕рдВрдкрд░реНрдХ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╕рднреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдлрд┐рд▓реНрдЯрд░ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдХреЙрд▓рдо рджреНрд╡рд╛рд░рд╛ рдЫрдВрдЯрдиреА рд╣реЛрддреА рд╣реИ
- рд╕рдВрдкрд░реНрдХ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╡рд░реНрддрдорд╛рди рд░рд┐рдХреЙрд░реНрдб рджреЗрдЦреЗрдВ, рджреЗрдЦреЗрдВред рдЗрд╕ рдкреГрд╖реНрда рдкрд░ [GO] [BACK] рдмрдЯрди рд╣реИрдВ, рдЬреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдФрд░ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдкреГрд╖реНрда рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреНрд░рдордмрджреНрдз рд╣реИрдВ;
рдЗрди рджреЛ рдмрдЯрдиреЛрдВ рдореЗрдВ рдХрдард┐рдирд╛рдИ рдЙрддреНрдкрдиреНрди рд╣реБрдИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХрд╛рд░реНрдп рд╡рд░реНрддрдорд╛рди рдЖрдИрдбреА рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкрд┐рдЫрд▓реЗ рдФрд░ рдЕрдЧрд▓реЗ рд░рд┐рдХреЙрд░реНрдб рдХреА рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ, рдлрд╝рд┐рд▓реНрдЯрд░ рдФрд░ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЫрд╛рдВрдЯрдирд╛ (рдХрд┐рд╕реА рднреА рдХреНрд╖реЗрддреНрд░ рджреНрд╡рд╛рд░рд╛) рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ред

рдЕрдЧрд░ рдЖрдИрдбреА рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЫрдБрдЯрд╛рдИ рд╣реЛрддреА рд╣реИ - рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЫрдБрдЯрд╛рдИ рдХреЗ рд╕рд╛рде, рдкреНрд░рд╢реНрди рднреА рд╣рд▓ рд╣реЛрдиреЗ рд▓рдЧрддрд╛ рд╣реИ http://habrahabr.ru/blogs/mysql/85945/

рд╕рд░рд▓рддрд╛ рдФрд░ рд╡рд┐рдирдореНрд░рддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЛ PHP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рдорд╛рдзрд╛рди рджрд┐рдЦрд╛рдКрдВрдЧрд╛ред
рд╕рдорд╛рдзрд╛рди:
/* .*/
$sqlConditions = " WHERE name ='test' " ;
$sqlOrder = " ORDER BY name, surname" ;
$curId = 33; //ID

/* , , id */
$sql = "SELECT rownumb,id FROM (
SELECT
@rownumb := @rownumb+1 AS rownumb,
`Contact`.`id` FROM `contacts` AS `Contact`
,(SELECT @rownumb := 0) al
$sqlConditions $sqlOrder
) AS src "
;

/* */
$rowNumber = $ this ->query($sql. " WHERE src.id = $curId" );

/* */
if (!empty($rowNumber[0][ 'src' ][ 'rownumb' ])) {
$rowNumber = $rowNumber[0][ 'src' ][ 'rownumb' ];
} else {
return false ;
}

if ($rowNumber > 1) { /* $rowNumber > 1 ( )*/
/* rownumb*/
$res = $ this ->query($sql. " WHERE id <> $curId LIMIT " .($rowNumber - 2). " ,2" );
/* prevId*/
if (!empty($res[0][ 'src' ][ 'id' ])){
$result[ 'prevId' ] = $res[0][ 'src' ][ 'id' ];
}
/* NextId */
if (!empty($res[1][ 'src' ][ 'id' ])){
$result[ 'nextId' ] = $res[1][ 'src' ][ 'id' ];
}
} else { /* $rowNumber == 1 */
/* */
$res = $ this ->query($sql. " WHERE rownumb > $rowNumber LIMIT 1" );
/* NextId*/
if (!empty($res[0][ 'src' ][ 'id' ])){
$result[ 'nextId' ] = $res[0][ 'src' ][ 'id' ];
}
}


* This source code was highlighted with Source Code Highlighter .


рдЦреИрд░, рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╕реНрд╡рд╛рдЧрдд рд╣реИ!

Source: https://habr.com/ru/post/In114372/


All Articles