 |
ขอความช่วยเหลือจากผู้รู้ ถ้าผมอยากดึงข้อมูลจากฐานข้อมูล แล้ว 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 :
670 |
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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|