2013-02-14 3 views
0

У меня есть этот код разбивки на страницы, на самом деле он будет извлекать все записи в моем ученике таблицы, и я хочу получить записи с эталонным уровнем по годам. вот код:Извлечение записей из таблицы со ссылкой

благодарит за вашу помощь!

<?php 

if (!isset($_POST['level'])) { 
    $_POST['level'] = "undefine"; 
} 
$level = $_POST['level']; 

mysql_connect("localhost", "root", "") or die(mysql_error()); 

mysql_select_db("kp_and_harang") or die(mysql_error()); 

if (!(isset($_GET['pagenum']))) { 
    $pagenum = 1; 
} else { 
    $pagenum = $_GET['pagenum']; 
} 
$data = mysql_query("SELECT id,surname,firstname,middlename,level FROM students") or die(mysql_error()); 

$rows = mysql_num_rows($data); 
$page_rows = 2; 
$last = ceil($rows/$page_rows); 

if ($pagenum < 1) { 
    $pagenum = 1; 
} elseif ($pagenum > $last) { 
    $pagenum = $last; 
} 

$max = 'limit ' . ($pagenum - 1) * $page_rows . ',' . $page_rows; 
$data_p = mysql_query("SELECT *,LPAD(id,4,'0') as id FROM students $max ") or die(mysql_error()); 

while ($info = mysql_fetch_array($data_p)) { 
    echo "<tr class='tr1'>"; 
    echo "<center>"; 
    echo "<td class='1'>" . $info['id'] . "</td>"; 
    echo "<td class='1'>" . $info['surname'] . ", " . $info['firstname'] . " " . $info['middlename'] . "</td>"; 
    echo "<td class='1'>" . $info['level'] . "</td>"; 
    echo "</center>"; 
    echo "</tr>"; 

    echo "<br>"; 
} 
echo "<p>"; 
echo " --Page $pagenum of $last-- <p>"; 
if ($pagenum == 1) { 

} else { 
    echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=1'> <<-First</a> "; 
    echo "----"; 
    $previous = $pagenum - 1; 
    echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$previous'> <-Previous</a> "; 
} 

echo " ---- "; 

if ($pagenum == $last) { 

} else { 
    $next = $pagenum + 1; 
    echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$next'>Next -></a> "; 
    echo "----"; 
    echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$last'>Last ->></a> "; 
} 
?> 
+0

Я знаю, что это надбавка, но вы должны использовать mysqli php pluggin. – Pachonk

+0

Могу ли я спросить, как ??? – user2063366

+0

Вот ссылка о том, как начать работу. http://php.net/manual/en/mysqli.quickstart.connections.php – Pachonk

ответ

0

Я переписал ваш код для использования mysqli.

Кроме того, вам просто нужно добавить «где» к вам запрос sql.

<?php 

if (!isset($_POST['level'])) { 
    $_POST['level'] = "undefined"; 
} 

$mysqli = new mysqli("localhost", "user", "password", "database"); 

$level = $mysqli->real_escape_string($_POST['level']); 

if (!(isset($_GET['pagenum']))) { 
    $pagenum = 1; 
} else { 
    $pagenum = $_GET['pagenum']; 
} 
$query = "SELECT id,surname,firstname,middlename,level FROM students"; 
$result = $mysqli->query($query) or die($mysqli->error.__LINE__); 

$rows = $result->num_rows; 
$page_rows = 2; 
$last = ceil($rows/$page_rows); 

if ($pagenum < 1) { 
    $pagenum = 1; 
} elseif ($pagenum > $last) { 
    $pagenum = $last; 
} 

$max = 'limit ' . ($pagenum - 1) * $page_rows . ',' . $page_rows; 
if ($level == "undefined"){ 
$query = "SELECT *,LPAD(id,4,'0') as id FROM students $max" ORDER BY level;} 
else{ 
$query = "SELECT *,LPAD(id,4,'0') as id FROM students $max where level = '$level' ORDER BY level";} 
$result = $mysqli->query($query) or die($mysqli->error.__LINE__); 
while ($info = $result->fetch_array(MYSQLI_BOTH)) { 
    echo "<tr class='tr1'>"; 
    echo "<center>"; 
    echo "<td class='1'>" . $info['id'] . "</td>"; 
    echo "<td class='1'>" . $info['surname'] . ", " . $info['firstname'] . " " . $info['middlename'] . "</td>"; 
    echo "<td class='1'>" . $info['level'] . "</td>"; 
    echo "</center>"; 
    echo "</tr>"; 

    echo "<br>"; 
} 
echo "<p>"; 
echo " --Page $pagenum of $last-- <p>"; 
if ($pagenum == 1) { 

} else { 
    echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=1'> <<-First</a> "; 
    echo "----"; 
    $previous = $pagenum - 1; 
    echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$previous'> <-Previous</a> "; 
} 

echo " ---- "; 

if ($pagenum == $last) { 

} else { 
    $next = $pagenum + 1; 
    echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$next'>Next -></a> "; 
    echo "----"; 
    echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$last'>Last ->></a> "; 
} 
?> 

Кроме того, этот код должен был соответствовать коду как можно ближе, но ... гораздо лучше было бы сделать уровень INT значения, а также используя случай с по умолчанию является строкой $query = "SELECT *,LPAD(id,4,'0') as id FROM students $max";.

+0

У этого есть ошибка Ошибка Parse: ошибка синтаксиса, неожиданный T_VARIABLE – user2063366

+0

Извините, пропустил точку с запятой! – Pachonk

+0

Я попытался, и кажется, что в запросе есть ошибка. – user2063366

Смежные вопросы