2015-12-20 1 views
1

Я новичок в написании сценариев, я попытался сделать разбивку на страницы для результатов базы данных с помощью javascript после учебника, но не работает, он дает некоторую ошибку, я следил за всеми шагами, если я сделал ошибку в скрипте, но я ничего не нашел. Я поставлю ошибкуПредупреждение: mysqli_query(): Не удалось получить mysqli в C: ... localweb test-pagini.php в строке 6

Предупреждение: mysqli_query(): не удалось получить MySQLi в C: .. \ localweb \ тест-pagini.php на линии 6

Предупреждение: mysqli_fetch_row() ожидает параметр 1, чтобы быть mysqli_result, нуль приведены в C : .. \ localweb \ тест-pagini.p л.с. на линии 7

Предупреждение: mysqli_close(): Не удалось получить MySQLi в C: ... \ localweb \ тест-pagini.php на линии 19

и это код

// соединение с именем mysqli_connection.php

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "db"; 


//create connection to mysql 
$db_conx = mysqli_connect($servername, $username, $password, $dbname); 
if(!$db_conx){ 
die("Connection failed: ". mysqli_connect_error()); 
} 
// create table 
$users = "CREATE TABLE IF NOT EXISTS users(
    id INT(11) NOT NULL AUTO_INCREMENT, 
    titlu VARCHAR(50) NOT NULL, 
    descriere VARCHAR(50) NOT NULL, 
    data DATE NOT NULL, 
    approved ENUM('0','1') DEFAULT '1', 
    PRIMARY KEY (id) 
)"; 


//confirm success or fail 
$query = mysqli_query($db_conx, $users); 
if(mysqli_query($db_conx, $users)){ 
echo "<h2>Success user table</h2>"; 
}else{ 
echo "<h2>Fail user table</h2>"; 
echo mysqli_error($db_conx); 
} 
// Close the database connection 
mysqli_close($db_conx); 
?> 

// теперь тест-pagini.php

<?php 
// Connect to our database here 
include_once("/mysqli_connection.php"); 
// This first query is just to get the total count of rows 
$sql = "SELECT COUNT(id) FROM users WHERE approved='1'"; 
$query = mysqli_query($db_conx, $sql); 
$row = mysqli_fetch_row($query); 
// Here we have the total row count 
$total_rows = $row[0]; 
// Specify how many results per page 
$rpp = 10; 
// This tells us the page number of our last page 
$last = ceil($total_rows/$rpp); 
// This makes sure $last cannot be less than 1 
if($last < 1){ 
    $last = 1; 
} 
// Close the database connection 
mysqli_close($db_conx); 
?> 
<!DOCTYPE html> 
<html> 
<head> 
<script> 
var rpp = <?php echo $rpp; ?>; // results per page 
var last = <?php echo $last; ?>; // last page number 
function request_page(pn){ 
    var results_box = document.getElementById("results_box"); 
    var pagination_controls = document.getElementById("pagination_controls"); 
    results_box.innerHTML = "loading results ..."; 
    var hr = new XMLHttpRequest(); 
    hr.open("POST", "/pagini_plugin.php", true); 
    hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    hr.onreadystatechange = function() { 
     if(hr.readyState == 4 && hr.status == 200) { 
      var dataArray = hr.responseText.split("||"); 
      var html_output = ""; 
      for(i = 0; i < dataArray.length - 1; i++){ 
       var itemArray = dataArray[i].split("|"); 
       html_output += "ID: "+itemArray[0]+" - Testimonial from <b>"+itemArray[1]+"</b><hr>"; 
      } 
      results_box.innerHTML = html_output; 
     } 
    } 
    hr.send("rpp="+rpp+"&last="+last+"&pn="+pn); 
    // Change the pagination controls 
    var paginationCtrls = ""; 
    // Only if there is more than 1 page worth of results give the user pagination controls 
    if(last != 1){ 
     if (pn > 1) { 
      paginationCtrls += '<button onclick="request_page('+(pn-1)+')">&lt;</button>'; 
     } 
     paginationCtrls += ' &nbsp; &nbsp; <b>Page '+pn+' of '+last+'</b> &nbsp; &nbsp; '; 
     if (pn != last) { 
      paginationCtrls += '<button onclick="request_page('+(pn+1)+')">&gt;</button>'; 
     } 
    } 
    pagination_controls.innerHTML = paginationCtrls; 
} 
</script> 
</head> 
<body> 
<div id="pagination_controls"></div> 
<div id="results_box"></div> 
<script> request_page(1); </script> 
</body> 
</html> 

// и pagini_plugin.php

<?php 
// Make the script run only if there is a page number posted to this script 
if(isset($_POST['pn'])){ 
    $rpp = preg_replace('#[^0-9]#', '', $_POST['rpp']); 
    $last = preg_replace('#[^0-9]#', '', $_POST['last']); 
    $pn = preg_replace('#[^0-9]#', '', $_POST['pn']); 
    // This makes sure the page number isn't below 1, or more than our $last page 
    if ($pn < 1) { 
     $pn = 1; 
    } else if ($pn > $last) { 
     $pn = $last; 
    } 
    // Connect to our database here 
    include_once("mysqli_connection.php"); 
    // This sets the range of rows to query for the chosen $pn 
    $limit = 'LIMIT ' .($pn - 1) * $rpp .',' .$rpp; 
    // This is your query again, it is for grabbing just one page worth of rows by applying $limit 
    $sql = "SELECT id, titlu, descriere, data FROM testimonials WHERE approved='1' ORDER BY id DESC $limit"; 
    $query = mysqli_query($db_conx, $sql); 
    $dataString = ''; 
    while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){ 
     $id = $row["id"]; 
     $titlu = $row["titlu"]; 
     $descriere = $row["descriere"]; 
     $itemdate = strftime("%b %d, %Y", strtotime($row["data"])); 
     $dataString .= $id.'|'.$firstname.'|'.$lastname.'|'.$itemdate.'||'; 
    } 
    // Close your database connection 
    mysqli_close($db_conx); 
    // Echo the results back to Ajax 
    echo $dataString; 
    exit(); 
} 
?> 

Я использовал EasyPHP v14.1 и Windows7.

+1

Ваш путь включения, скорее всего, неверен. PHP включает в себя корень сервера, а не корень домена. – Qirel

+0

Я удалил mysqly_close и «/», но результаты запросов все еще не отображаются, ошибка больше не появляется –

ответ

0

Вы имеете близко ваше дб соединение быстро:

mysqli_close($db_conx); 

В конце mysqli_connection.php

включенные в тест-pagini.php

Подключение близко, то нет извлечения ..

Примечание:

include_once("/mysqli_connection.php"); 

удалить "/", является правильный путь синтаксиса

Примечание 2:

в первой строке pagini_plugin.php

if(isset($_POST['pn'])){ 

Используйте пустые вместо IsSet, к избегайте пустого запроса этой нативной функции, избегайте того же поведения, что и isset (два в одном) Посмотрите на diffe Renče: empty() VS isset()

if(!empty($_POST['pn'])){ 

EDIT:

На самом деле ваша итерацию слишком много ошибок, чтобы продолжить в поле для комментариев .. Я думаю, что задаваемый вопрос был дан ответ и многое другое.

Ищите современную систему: Вы сэкономите много времени, много ошибок из-за устаревшего и ошибочного метода кодирования.

PHP, MYSQL, HTML table with tablesorter

http://tablesorter.com/docs/#Examples

(SRY, но я не больше времени, чтобы помочь вам, 8 часов на StackOverflow, я спать :))

+0

Я сделал sir - удалил mysqli_close и «/», но теперь ничего не показывает, я представил дату в mysql, так что дата не появляется –

+0

ваш журнал HTTP ничего не говорит? – MTroy

+0

только эта таблица пользовательских успехов ďťż --- это не дата, которую я поставил в mysql –

0

Я думаю, это потому, вы закрываете свое соединение в mysqli_connection.php в конце файла.

// Close the database connection mysqli_close($db_conx);