สอบถามหน่อยครับขึ้นerror mysqli_fetch_array() expects parameter 1 to be mysqli_result, bool given in เเก้ยังไงครับลองตรวจerrorเเล้วก้ไม่เจอ
ตารางชื่อ rhistory
ส่วนอันนี้โค๊ดครับ
Code (PHP)
?php session_start();
if(!isset($_SESSION['id']) || $_SESSION['id']==""){
header("Location:login.php");
exit;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>index</title>
<link rel="stylesheet" href="node_modules\bootstrap\dist\css\bootstrap.min.css">
</head>
<body>
<?php
ini_set('display_errors', 1);
error_reporting(~0);
$strKeyword = null;
if(isset($_POST["txtKeyword"]))//เซ็ตรับค่าช่องsearch
{
$strKeyword = $_POST["txtKeyword"];
}
if(isset($_GET["txtKeyword"]))//เซ็ตรับค่าช่องsearch
{
$strKeyword = $_GET["txtKeyword"];
}
$serverName = "localhost";//เชื่อมต่อฐานข้อมูล
$userName = "root";
$userPassword = "";
$dbName = "crudsystem";
$conn = mysqli_connect($serverName,$userName,$userPassword,$dbName);
mysqli_query($conn, "SET CHARACTER SET UTF8");//เซ็ตเป็นเเบบUTF 8 ทำให้อ่านภาษาไทยได้
$sql = "SELECT * FROM `rhistory` ORDER BY `rhistory`.`llid` ASC" or die("Error:" .mysqli_error());
$query = mysqli_query($conn,$sql);
$num_rows = mysqli_num_rows($query);
$per_page = 3; // Per Page
$page = 1;
if(isset($_GET["Page"]))
{
$page = $_GET["Page"];
}
$prev_page = $page-1;
$next_page = $page+1;
$row_start = (($per_page*$page)-$per_page);
if($num_rows<=$per_page)
{
$num_pages =1;
}
else if(($num_rows % $per_page)==0)
{
$num_pages =($num_rows/$per_page) ;
}
else
{
$num_pages =($num_rows/$per_page)+1;
$num_pages = (int)$num_pages;
}
$sql .= " ORDER BY id ASC LIMIT $row_start ,$per_page ";
$query = mysqli_query($conn,$sql);
?>
<table class="table table-striped table-bordered table-info">
<thead>
</div>
<th scope="col">ลำดับ</th>
<th scope="col">ชื่อ</th>
<th scope="col">Part</th>
<th scope="col">Dis</th>
<th scope="col">จำนวน</th>
<th scope="col">วันที่</th>
</tr>
</thead>
<?php
while($result=mysqli_fetch_array($query,MYSQLI_ASSOC))//errorบรรทัดนี้ครับ
{//เเสดงข้อมูลทั้งหมดที่เราเลือกไว้
?>
<tbody>
<tr>
<tr>
<td><?php echo $result["llid"];?></div></td>
<td><?php echo $result["HHname"];?></td>
<td><?php echo $result["HHPart"];?></td>
<td><?php echo $result["HHdis"];?></div></td>
<td><?php echo $result["HHHcut"];?></td>
<td><?php echo $result["Hdate"];?></td>
</tr>
<?php
}
?>
</table>
<center>
<br>
Total <?php echo $num_rows;?> Record : <?php echo $num_pages;?> Page :
<?php
if($prev_page)
{
echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$prev_page&txtKeyword=$strKeyword'><< Back</a> ";
}
for($i=1; $i<=$num_pages; $i++){
if($i != $page)
{
echo "[ <a href='$_SERVER[SCRIPT_NAME]?Page=$i&txtKeyword=$strKeyword'>$i</a> ]";
}
else
{
echo "<b> $i </b>";
}
}
if($page!=$num_pages)
{
echo " <a href ='$_SERVER[SCRIPT_NAME]?Page=$next_page&txtKeyword=$strKeyword'>Next>></a> ";
}
if($page!=$num_pages)
{
echo " <a href ='$_SERVER[SCRIPT_NAME]?Page=$next_page&txtKeyword=$strKeyword'>Next>></a> ";
}
mysqli_close($conn);
?>
<script src="node_modules\jquery\dist\jquery.min.js"></script>
<script src="node_modules\bootstrap\dist\js\bootstrap.min.js"></script>
<script src="node_modules\popper.js\dist\umd\popper.min.js"></script>
</body>
</center>
</html>
ขึ้นerror Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, bool given เเบบนี้ครับTag : PHP, Apache, Appserv, XAMPP
Date :
2019-04-19 11:02:28
By :
mostc007
View :
1734
Reply :
8
บรรทัดที่ 38 และ 39 ลองปรับแเป็นแบบนี้ดูครับ
Code (PHP)
$conn = mysqli_connect("$serverName","$userName","$userPassword","$dbName");
$conn->set_charset("utf8");
และตรวจสอบการ query ครับ ว่าประกาศตัวแปรซ้ำกันหรือป่าว
ความน่าจะผิดจะผิดมาจากการ query ครับ
ส่วนการ chack error ลองปรับมาเป็นแบบนี้ดูครับ
Code (PHP)
$sql = "SELECT * FROM `rhistory` ORDER BY `rhistory`.`llid` ASC" ;
$query = mysqli_query($conn,$sql)or die("$sql");
Date :
2019-04-19 11:17:06
By :
nobetaking
บันทัด
078.$sql .= " ORDER BY id ASC LIMIT $row_start ,$per_page ";
079.$query = mysqli_query($conn,$sql) or die($sql.'<br>'.$conn->error) ;
รู้จักวิเคราะห์ตัวอย่างที่มีคนช่วยบอก พร้อมทั้งวิเคราะห์ โค๊ดที่ตัวเองเขียน
ควรจะแก้ไขอะไร บ้าง ไม่ใช่ สักแต่จะแก้ โดยไม่วิเคราะห์อะไรเลย ทำเหมือนเด็กเล็กๆ ที่ทำได้แค่เลียนแบบผูใหญ่
และเมื่อแก้ไขแล้ว ก็ต้องรู้จัก เอาโค๊ดที่แก้ไขแล้ว มาแสดงให้เห็นด้วย จะได้รู้ว่าแก้อะไรไปบ้าง ทำไมถีงยังไม่ได้
ไอ้ที่แก้ไปแล้วมันแก้ถูกหรือผิด มันไม่ใช่การแก้ผ้าที่จะได้โล่งโจ้งอย่างเดียว
ไม่เข้าใจเด็กสมัยนี้ ว่าเป็นที่ระบบการศึกษา หรือว่าเด็กไม่ได้เรื่องเอง เฮ้อ.......................
Date :
2019-04-19 12:45:20
By :
Chaidhanan
ถ้าจะใช้ตัวแปร $sql ตัวเดียวกัน ตรง
043. $sql = "SELECT * FROM `rhistory` ORDER BY `rhistory`.`llid` ASC" or die("Error:" .mysqli_error())
น่าจะต้องตัด ORDER BY `rhistory`.`llid` ASC ออกนะครับ
เพราะ
078. $sql .= " ORDER BY id ASC LIMIT $row_start ,$per_page ";
มันมี ORDER BY สองรอบ เลย
อีกอย่าง
078. $sql .= " ORDER BY id ASC LIMIT $row_start ,$per_page ";
ดูเหมือน id จะไม่มีฟิวล์ ในตาราง เลยนะครับ
ประวัติการแก้ไข 2019-04-19 14:41:58
Date :
2019-04-19 14:40:31
By :
9nonameman
ใส่ ORDER clause 2 ครั้งไม่ได้นะครับ
แต่ใส่ 2 ฟีลด์ ได้ โดยใช้ comma คั่นระหว่างฟีลด์
ORDER BY Field1 asc, Field2 asc
ปล. ที่ผมบอกไม่วิเคราะห์โค๊ดตัวเอง เพราะ โค๊ดมีคิวรี่ 2 อัน แต่คุณแก้ไขแค่อันเดียว
และอันที่มัน เออเรอ่ร์ มันเป็น query อันที่ 2
ถ้าคุณวิเคราะห์โค๊ดที่คุณเขียน และแก้ทั้งสองอัน คุณก็จะเห็นเออเร่อร์ ที่มันแจ้งมา
และถ้าแปลไม่ออก ก็ควรเปิด dic. ดูด้วยนะครับเพราะต่อไป มันก็จะแจ้งเป็นภาษาอังกฤษ เพราะ compiler ยังไม่มีแปลเป็นไทย
พยายามแปลให้ได้ จะได้ไม่ต้อง เสียเวลามาถาม ปัญหาง่ายๆ ต้องใช้เวลาเป็นวัน เพราะต้องมานั่งรอคำตอบ
มันไม่สมควรหรอกครับ
ประวัติการแก้ไข 2019-04-19 14:54:24
Date :
2019-04-19 14:47:14
By :
Chaidhanan
ลองดูหลายๆโพสก่อนหน้านี้ครับ นั่งเเก้ตั้งเเต่เมื่อวานผมไม่ละเอียดเองครับ ตอนนี้ได้เเล้วเเค่ตัดตัด order byออก ขอบคุณพี่ๆทุกคนมากครับที่เสียเวลามาตอบคำถามผม
Date :
2019-04-19 15:43:46
By :
mostc007
Load balance : Server 02