2015-12-18 2 views
0

Предупреждение: mysqli_query() ожидает как минимум 2 параметра, 1 задано в/home/fewatrai/public_html/includes /function.php на линии 6Код mysqli, получая ошибку как Предупреждение: mysqli_query() ожидает как минимум 2 параметра, 1 задано & null задано

Предупреждение: mysqli_fetch_array() ожидает параметр 1, чтобы быть mysqli_result, нуль приведены в /home/fewatrai/public_html/includes/function.php в строке 7

мой код : функция.php

<?php include 'connect.php'; 
function pagination($query, $per_page = 10,$page = 1, $url = '?'){ 
$query = mysqli_query("SELECT COUNT(*) as `num` FROM {$query}"); 
$row = mysqli_fetch_array($conn, $query); 
..... 
.... 
?> 

и connect.php

<?php 
$host = "localhost"; 
$user= "root"; 
$pass= ""; 
$db= "fewa"; 
$err1 = "Couldn't connect db, try again "; 
$conn = mysqli_connect($host, $user, $pass) or die($err1); 
$select_db = mysqli_select_db($conn, $db); 
?> 

я есть постраничной страницы, где отображаются пункты: categoy.php

<?php 
include_once ('includes/function.php'); 
$page = (int) (!isset($_GET["page"]) ? 1 : $_GET["page"]); 
$limit = 3; 
$startpoint = ($page * $limit) - $limit; 
//to make pagination 
$sql = "items where subcat2_id='$subcat2_id'"; 
//show records 
$query = mysqli_query($conn,"SELECT * FROM {$sql} LIMIT {$startpoint} , {$limit}"); 
while ($row = mysqli_fetch_assoc($query)) { 
...... 
<?php }?> 
<?php echo pagination($sql,$limit,$page,"?subcat2_id=".$subcat2_id."&"); ?> 
+0

Проверьте наличие ошибки предварительного для вызова 'mysqli_fetch_array()', вероятно, ваша переменная '$ query' неверна. – ToothlessRebel

+0

смотрите http://php.net/manual/en/mysqli.query.php для параметра в функции mysqli_query –

ответ

1

Функция mysqli_query() требует двух параметров. Первый - открытый ресурс соединения mysql (результат mysql_connect()). В вашем случае $conn должен быть первым параметром.

Например:

mysqli_query($conn, "SELECT COUNT(*) as `num` FROM {$query}"); 

Вам нужно сделать $conn один из параметров pagination() для того, чтобы быть доступны в функции.

Кроме того, вы используете MySQLi версию ООП, а не процедурные. Это означает, что вы должны лучше использовать $conn->query() не mysqli_query($conn)

Edit:

$conn = new mysqli($host, $user, $pass, $db); 
if ($conn->connect_errno) { 
    printf("Connect failed: %s\n", $conn->connect_error); 
    exit(); 
} 

...

function pagination(mysqli $conn, $query, $per_page = 10, $page = 1, $url = '?'){ 
    $result = $conn->query("SELECT COUNT(*) as `num` FROM {$query}"); 
    while ($row = $result->fetch_assoc()) { 
     // Do stuff 
    } 
    ... 
} 

...

<?php echo pagination($conn, $sql,$limit,$page,"?subcat2_id=".$subcat2_id."&"); ?> 
+0

Вам нужно прекратить использование функций 'mysqli_', вместо этого используйте функции' mysqli' и функции-члены. Более подробную информацию можно найти здесь: http://php.net/manual/en/class.mysqli.php – Ian

+0

Большое вам спасибо, ты спас меня. Он работал так, как ожидалось. Еще раз спасибо. –

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