ขอความช่วยเหลือจากผู้รู้ ถ้าผมอยากดึงข้อมูลจากฐานข้อมูล แล้ว Random แสดงผลครับ
ถ้าผมอยากให้ Random ข้อมูลที่ดึงจากฐานข้อมูล
แบบนี้อ่ะครับ
โดยในฐานข้อมูลมี
CREATE TABLE IF NOT EXISTS `M_movies` (
`id_movie` int(5) unsigned zerofill NOT NULL AUTO_INCREMENT,
`name` varchar(30) NOT NULL,
`m_pic` longtext NOT NULL,
`tr_m` text NOT NULL,
`object` text NOT NULL,
`details` longtext NOT NULL,
`quality` varchar(30) NOT NULL,
`name_user` varchar(50) NOT NULL,
`view` int(11) NOT NULL,
`m_tag` varchar(70) NOT NULL,
`vote` int(2) NOT NULL,
PRIMARY KEY (`id_movie`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=103 ;
ตามนี้อ่ะครับ ไม่รู้ให้ข้อมูลครบไหมอ่ะครับTag : PHP, MySQL, HTML/CSS, Windows, Linux
Date :
2014-10-01 19:25:40
By :
dlast
View :
651
Reply :
10
order by rand()
Date :
2014-10-01 19:42:24
By :
Chaidhanan
ขอโค็ดแบบตัวอย่างได้ไหมครับ ผมมือใหม่มากอ่ะครับ
Date :
2014-10-01 19:58:21
By :
dlast
Code (PHP)
$qr='select * from `M_movies` order by rand() limit 6';
$rs=$mysql->query($qr);
while( $ro=$rs->fetch_assoc()){
eco print_r($ro, true), "\n<br>";
}
$rs->free();
Date :
2014-10-01 20:12:23
By :
Chaidhanan
พี่ครับ ถ้าอยากให้มัน random ใหม่ทุกครั้ง ที่รีเฟรชหน้าอ่ะครับ ตอนนี้ มัน random ค้างไว้อย่างนั้นเลยอ่ะครับ
Date :
2014-10-01 20:36:48
By :
dlast
Ctrl+F5 จะบังคับ reload ใหม่จาก Server โดยไม่ใช้ cache
โค๊ดตัวอย่าง ถ้าทำที่ Server รับรองไม่คิวรี่ เหมือนเดิมแน่นอน
Date :
2014-10-01 20:52:43
By :
Chaidhanan
โค้ดที่ผมใช้ตอนนี้คือ
Code (PHP)
<?
$objConnect = mysql_connect("localhost","m","01") or die("Error Connect to Database");
$objDB = mysql_select_db("moviescit");
$strSQL = "SELECT * FROM M_movies ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$Num_Rows = mysql_num_rows($objQuery);
$Per_Page = 8; // Per Page
$Page = $_GET["Page"];
if(!$_GET["Page"])
{
$Page=1;
}
$Prev_Page = $Page-1;
$Next_Page = $Page+1;
$Page_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;
}
$strSQL .=" order by rand() && id_movie DESC LIMIT $Page_Start , $Per_Page";
$objQuery = mysql_query($strSQL);
echo "<table width=\"80%\" border=\"0\"><tr>";
$i=0;
while($objResult = mysql_fetch_array($objQuery)){
echo "<td>";
$i++;
?>
<a href="ViewMovie.php?id_movie=<?=$objResult["id_movie"];?>" target=_self> <img src="<?=$objResult["m_pic"];?>" width="250" height="200">
<h3> <?=$objResult["name"];?> </h3> </a> </td>
<?
if(($i%3)==0){ // แสดงผลแต่ละบรรทัด
echo "<tr>";
}else{
echo "<td width= '100'>";
}
}
echo "</table>";
?>
<?
mysql_close($objConnect);
?>
แต่ยังไม่เสร็จนะครับ ต้องแก้อีกเยอะ แต่อันนี้มัน random ได้แล้วนะครับ แต่พอผมกด Ctrl + F5 แล้ว ก็เหมือนเดิมอ่ะครับ
Date :
2014-10-01 21:00:50
By :
dlast
Code (PHP)
$strSQL =
"SELECT *
from M_movies
where id_movie in (SELECT id_movie FROM M_movies order by rand() limit $Per_Page )
order by id_move ";
ที่นี้ปัญหาการทำแบบนี้ ก็คือ มัน random ทุกครั้ง แล้ว มีันมีโอกาส ซ้ำกันได้
มันไม่เหมาะ ในการแสดง รายการ ที่ไม่อยากให้ซ้ำ ผมเจอ เวปดูหนัง แสดงรายการซ้ัำ ผมก็หนี
แถม แสดงรายการหนังแบบสุ่มอีก อยากได้แบบเรียงไปเลยจะได้หาง่ายอะไรแบบเนี้ย
Date :
2014-10-01 21:20:14
By :
Chaidhanan
ลองเอาแบบเต็มมาเลยได้ไหมอ่ะครับ ผมใส่เข้าไปแล้ว มัน Error อ่ะครับ
Date :
2014-10-01 21:35:10
By :
dlast
ถ้าโง่นักก็ไปชักว่าวเหอะ ควาย
Date :
2014-10-01 21:40:05
By :
U
Load balance : Server 02