Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > select ข้อมูลจาก DB แต่ทำไมมาแค่แถวเดียว มีวิธีแก้ไขยังไงคะ



 

select ข้อมูลจาก DB แต่ทำไมมาแค่แถวเดียว มีวิธีแก้ไขยังไงคะ

 



Topic : 098484



โพสกระทู้ ( 11 )
บทความ ( 0 )



สถานะออฟไลน์




จากตารางของดาต้าเบส จะเป็นประมาณนี้นะคะ
game_id select_number
35 82
35 44
35 49
35 24

นี่คือโค้ดที่เรา select ข้อมูลจาก DB นะคะ
Code (PHP)
<?php
include'config.php';
$strSql="SELECT select_number FROM luckygames WHERE game_id";
$query = mysql_query($strSql);
$num = mysql_num_rows($query);
for ($i = 0;$i<$num;$i++) {
$result1 = mysql_fetch_array($query);
var_dump($result1);
}
?>

เมื่อเรา var_dump ออกมาก็แสดงทุกค่าที่อยู่ในฟิลด์ select_number เป็นดังนี้ค่ะ

array(2) { [0]=> string(2) "82" ["select_number"]=> string(2) "82" } array(2) { [0]=> string(2) "44" ["select_number"]=> string(2) "44" } array(2) { [0]=> string(2) "49" ["select_number"]=> string(2) "49" } array(2) { [0]=> string(2) "24" ["select_number"]=> string(2) "24" }



แต่เมื่อเรานำมาเข้าร่วมกับโค้ดใหม่ที่มีการวนลูปเพื่อจะตรวจสอบเปรียบเทียบค่า พอ var_dump ออกมา ทำไมถึงแสดงแค่ค่าแรกที่มีการ insert เข้าไปคือแสดงแค่เลข 82
เป็นดังนี้ค่ะ
array(2) { [0]=> string(2) "82" ["select_number"]=> string(2) "82" }

นี่คือโค้ดที่มีการนำมาวนลูปค่ะ
Code (PHP)
<?php
include "config.php";
$get_id = (isset($_GET['id'])) ? $_GET['id'] : '';

$strSql="SELECT select_number FROM luckygames WHERE game_id"; //ตรงนี้คือที่ select มาค่ะ
$query = mysql_query($strSql);
$result1 = mysql_fetch_array($query);
//$num = mysql_num_rows($query);
//for ($i = 0;$i<$num;$i++) {
var_dump($result1);
$string = "SELECT * FROM reward1 ORDER BY game_id DESC limit 1"; // ตรงนี้ select แล้วนำมาวนลูปค่ะ
$query_string = mysql_query($string);
while($result = mysql_fetch_array($query_string))
{
for ($i=1; $i<=$result["number"]; $i++){ //ตรงนี้วนลูปมาจาก SELECT * FROM reward1 เพื่อทำเป็นช่องตารางที่มีตัวเลขค่ะ
	if($i==$result1["select_number"]){ //ตรงนี้นำมาเปรียบเทียบค่า ถ้า ค่าของ $i ตรงกับข้อมูลตัวเลขที่อยู่ในฟิลด์ select_number 
echo  '<li id='.$i.' class="selected">'.$i.'</li>'; //สีของช่องตารางจะเปลี่ยนตาม class ใน css
}else{
echo '<li id='.$i.'><a href="javascript:;" class="">'.$i.'</a></li>';
}
}
}
?>


อัพโหลดภาพไม่ได้จึงไม่มีภาพมาให้ดูด้วย จะมีวิธีแก้ใขยังไงให้ค่าตัวเลขในฟิลด์ select_number ออกมาหมดทุกแถว ไม่ใช่แค่แถวแรกที่ insert เข้าไปค่ะ รบกวนช่วยดูด้วยนะคะ ขอบคุณมากค่ะ



Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-07-30 21:01:35 By : PRT View : 2505 Reply : 6
 

 

No. 1



โพสกระทู้ ( 1,521 )
บทความ ( 2 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์
Facebook

Limit ๅ ก็ออกมาแค่ 1 ครับ ลองไม่ต้อง Limit ดู
Code
SELECT * FROM reward1 ORDER BY game_id DESC limit 1







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-30 21:13:08 By : Krungsri
 


 

No. 2



โพสกระทู้ ( 11 )
บทความ ( 0 )



สถานะออฟไลน์


SELECT * FROM reward1 ORDER BY game_id DESC limit 1 ตรงนี้เป็นคนละตารางกันอ่ะค่ะ เป็นการนำค่ามาวนลูปเพื่อสร้างจำนวนช่องตารางที่ดึงมากจากฟิลด์ number ในตาราง reward1 อ่ะค่ะ ลองแบบไม่มี limit ก็ไม่หายอ่ะค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-30 21:19:34 By : PRT
 

 

No. 3



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

แก้ตามนี้นะครับ

Code (PHP)
<?php
	include "config.php";
	$get_id = (isset($_GET['id'])) ? $_GET['id'] : '';
	
	$string = "SELECT * FROM reward1 ORDER BY game_id DESC limit 1"; // ตรงนี้ select แล้วนำมาวนลูปค่ะ
	$query_string = mysql_query($string);
	$result = mysql_fetch_array($query_string));

	$strSql="SELECT select_number FROM luckygames WHERE game_id"; //ตรงนี้คือที่ select มาค่ะ
	$query = mysql_query($strSql);
	while($result1 = mysql_fetch_array($query))
	{
		for ($i=1; $i<=$result["number"]; $i++){ //ตรงนี้วนลูปมาจาก SELECT * FROM reward1 เพื่อทำเป็นช่องตารางที่มีตัวเลขค่ะ
			if($i==$result1["select_number"]){ //ตรงนี้นำมาเปรียบเทียบค่า ถ้า ค่าของ $i ตรงกับข้อมูลตัวเลขที่อยู่ในฟิลด์ select_number 
				echo  '<li id='.$i.' class="selected">'.$i.'</li>'; //สีของช่องตารางจะเปลี่ยนตาม class ใน css
			}else{
				echo '<li id='.$i.'><a href="javascript:;" class="">'.$i.'</a></li>';
			}
		}
	}
?>


while($result = mysql_fetch_array($query_string))

$query_string การคิวรี่ครั้งนี้เป็นการเก็บข้อมูลครั้งเดียวที่ LIMIT ไว้ ควรแยกไปต่างหากครับ

ลูป while ต้องใช้กับการคิวรี่ตาราง luckygames ซึ่งท่านได้สั่งคิวรี่โดยใช้ตัวแปร $query รับค่าไว้แล้ว


* หมายเหตุ
ตรวจสอบดูอีกที ว่าตารางที่ผมเรียงลำดับไว้ถูกต้องหรือไม่


ประวัติการแก้ไข
2013-07-31 06:33:48
2013-07-31 06:35:05
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-31 06:33:15 By : {Cyberman}
 


 

No. 4



โพสกระทู้ ( 11 )
บทความ ( 0 )



สถานะออฟไลน์


แก้โค้ดตามคุณ กระบี่อยู่ที่ใจแล้วค่ะ ตัวเลขที่อยู่ในฐานข้อมูลมาทั้งหมดแล้วค่ะ ขอบคุณมากๆเลย แต่ว่าช่องตารางมันกลับเพิ่มจำนวนเป็นแบบนี้ค่ะ ไม่ทราบว่ามีวิธีแก้ไขมั้ยคะ
รูปภาพ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-31 09:45:59 By : PRT
 


 

No. 5



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

แล้วผลลัพธ์ที่ต้องการแบบไหนเหรอครับ?
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-31 10:04:08 By : {Cyberman}
 


 

No. 6



โพสกระทู้ ( 11 )
บทความ ( 0 )



สถานะออฟไลน์


ทำได้แล้วค่ะ ขอบคุณมากๆเลย โค้ดเป็นแแบบนี้นะคะ
Code (PHP)
<?php
	include "config.php";
	$get_id = (isset($_GET['id'])) ? $_GET['id'] : '';
	
	$string = "SELECT * FROM reward1 ORDER BY game_id DESC limit 1"; // ตรงนี้ select แล้วนำมาวนลูปค่ะ
	$query_string = mysql_query($string);
	$result = mysql_fetch_array($query_string);
    
	$strSql="SELECT select_number FROM luckygames WHERE game_id"; //ตรงนี้คือที่ select มาค่ะ
	$selected_nums = array();
    $query = mysql_query($strSql);
	while($result1 = mysql_fetch_array($query))
	$selected_nums[$result1[0]] = $result1[0];
	//var_dump($selected_nums);
	{
		for ($i=1; $i<=$result["number"]; $i++){ 
			  if(array_key_exists($i, $selected_nums)){
				echo  '<li id='.$i.' class="selected">'.$i.'</li>'; 
			}else{
				echo '<li id='.$i.'><a href="javascript:;" class="">'.$i.'</a></li>';
			}
		}
	}
?>

ผลที่ได้จะเหมือนในรูป คห.บนนะคะ แต่ตารางไม่เบิ้ลแล้วค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-31 10:20:35 By : PRT
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : select ข้อมูลจาก DB แต่ทำไมมาแค่แถวเดียว มีวิธีแก้ไขยังไงคะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่