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,027

HOME > PHP > PHP Forum > ช่วยดูคำสั่งในการ query SELECT หน่อยค่ะ คือมี ชุดตัวแปรที่เป็นอาเรย์(project_id) ซึ่งต้องการเทียบโดยใช้คำสั่ง DISTINCT เพื่อคัดเลือกไม่ให้มี project_id ซ้ำ



 

ช่วยดูคำสั่งในการ query SELECT หน่อยค่ะ คือมี ชุดตัวแปรที่เป็นอาเรย์(project_id) ซึ่งต้องการเทียบโดยใช้คำสั่ง DISTINCT เพื่อคัดเลือกไม่ให้มี project_id ซ้ำ

 



Topic : 051645



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



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




ช่วยดูคำสั่งในการ query SELECT หน่อยค่ะ คือมี ชุดตัวแปรที่เป็นอาเรย์(project_id) ซึ่งต้องการเทียบโดยใช้คำสั่ง DISTINCT เพื่อคัดเลือกไม่ให้มี project_id ซ้ำ เพราะต้องการแสดง project_name ที่ไม่ซ้ำกัน แต่ผลลัพธ์ที่ได้มัน distinct ไม่ได้ค่ะ มี code และรูปให้

คือต้องการให้มันสามารถเช็คหาแค่เฉพาะเลข 4 ตัวแรกได้
ซึ่งในฐานข้อมูล evaluation_detail ประกอบด้วย ข้อมูลดังนี้
student_id project_id

50160555 251020040102
50161801 251020040102
50161766 251020040102
50161843 123928736492
50160555 123928736492

ลองกด 5016 ดูดังรูป จะต้องสามารถค้นหาได้ทั้งหมด 5 เรคคอร์ด

ผลลัพธ์เมื่อลองรัน

และได้สั่งให้มันจับ project_id ทั้งหมดที่มีstudent_id เหมือน 5016(ที่พิมพ์ไป) เพื่อนำไป ตรวจสอบกับ กับ project_id ในตาราง project

ซึ่งตาราง project จะมี อยู่ 2 ฟิวด์ คือ project_id , project_name แล้วได้สั่ง sql ให้ DISTINCT เพื่อจะได้แสดง project_name ที่ไม่ซ้ำกัน


ข้อมูลในฐานข้อมูล

รูปนี้คือ ข้อมูลในตาราง project ซึ่งจากข้อมูลในตาราง evaluation_detail ถ้าหากถูกต้อง ผลลัพธ์จะต้องได้ เป็น ชื่อ project_name 2 รายการ แต่ผลลัพธ์กลับได้แค่รายการเดียว

นี่เป็น SQL ส่วนที่คัดเลือกให้แสดง project_name ที่ไม่ซ้ำค่ะ ไม่รู้ว่าผิดพลาดตรงไหนค่ะ


$strSQL = "SELECT student_id,project_id
FROM evaluation_detail WHERE student_id LIKE '".$strDrop."%' "; // $strDrop คือค่าที่รับเข้ามา 5016
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");


while($objtesti = mysql_fetch_array($objQuery))
{
$project_IDreal[] = $objtesti["project_id"]; //เก็บค่าตัว project_id ในตาราง evaluation_detail เพื่อนำไปไว้เปรียบเทียบกับ project_id ของตารา่ง project
}


for($r=0;$r<count($project_IDreal);$r++)
{
// echo ("<br>");
echo ($project_IDreal[$r]."<br>"); // ลองสั่งแสดง project_id ที่เก็บไว้เป็นอเรย์ออกมาดูว่าถูกต้องไหม
$strSQL4 = "SELECT DISTINCT project_name FROM project "; //คัดเลือกให้เอาแต่ project_name ที่ไม่ซ้ำกัน
$strSQL4 .= "WHERE project_id = '".$project_IDreal[$r]."' ";
$objQuery3 = mysql_query($strSQL4) ;
}
echo ($objQuery3); // ลองแสดงค่าที่ได้หลังจาก query sql พบว่าแจ้งว่า Resource id #101 ตรงนี้แหล่ะค่ะที่มันผิดพลาดแน่ๆ
$total5 = mysql_num_rows($objQuery3);
echo ($total5);

?>


<?
//ส่วนแสดง ชื่อ project_name ซึ่งได้ผลเพี้ยนจากความจริงที่ต้องได้ 2 รายการ แต่มันแสดงออกมาแค่ 1 รายการ
$u = 0;
$k = 1;
while($objResult = mysql_fetch_array($objQuery3))
{
$u++;
?>
<tr>
<td><div align="center"><?php echo $k++."."; ?></div></td>
<td><?=$objResult["project_name"];?></td>
<td align="center"><input type="checkbox" name="chkAdd[]" id="chkAdd<?=$u;?>" value="<?=$objResult["project_id"];?>"></td>
</tr>
<?
} ?>


</table>
<br />





นี่เป็นcode ทั้งหมดนะค่ะ

<?php require_once('../Connections/connproject.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form name="frmMain" action="" method="post" OnSubmit="return onDrop();">
<?php $strDrop = $_POST["myDrop"];



$strCheck = "SELECT student_id FROM evaluation_detail WHERE student_id LIKE '".$strDrop."%' ";
$objCheck = mysql_query($strCheck) or die(mysql_error());
$total = mysql_num_rows($objCheck);

if($total<>0)
{ ?>
<table width="405" border="1" cellpadding="0" cellspacing="0" align="center">
<tr>
<th width="55"> <div align="center">ลำดับที่</div></th>
<th width="300"> <div align="center">โครงการที่ได้รับสิทธิ์ประเมิน</div></th>
<th width="55"> <div align="center">ยกเลิก
<input name="CheckAll" type="checkbox" id="CheckAll" value="Y" onclick="ClickCheckAll(this);" />
</div></th>

<? }
else
{
echo "<font color = red><center>!!กรุณาตรวจสอบรหัสนิสิตอีกครั้ง ไม่พบโครงการที่นิสิตมีสิทธิ์ในการประเมินใดๆ ค่ะ</font><center>";
}
?>


<?
$strSQL = "SELECT student_id,project_id
FROM evaluation_detail WHERE student_id LIKE '".$strDrop."%' ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");


while($objtesti = mysql_fetch_array($objQuery))
{
$project_IDreal[] = $objtesti["project_id"];
}


for($r=0;$r<count($project_IDreal);$r++)
{
// echo ("<br>");
echo ($project_IDreal[$r]."<br>");
$strSQL4 = "SELECT DISTINCT project_name FROM project ";
$strSQL4 .= "WHERE project_id = '".$project_IDreal[$r]."' ";
$objQuery3 = mysql_query($strSQL4) ;
}
echo ($objQuery3);
$total5 = mysql_num_rows($objQuery3);
echo ($total5);

?>


<?

$u = 0;
$k = 1;
while($objResult = mysql_fetch_array($objQuery3))
{
$u++;
?>
<tr>
<td><div align="center"><?php echo $k++."."; ?></div></td>
<td><?=$objResult["project_name"];?></td>
<td align="center"><input type="checkbox" name="chkAdd[]" id="chkAdd<?=$u;?>" value="<?=$objResult["project_id"];?>"></td>
</tr>
<?
} ?>


</table>
<br />
<br />
<div align="center"><input name="Submit" type="Submit" id="Submit" value="อนุญาต"></div>



<input type="hidden" name="hdnCount" value="<?=$i;?>">



</form>

<?
mysql_close($connproject);
?>
</div>
</body>
</html>

ต้องแก้ตรงไหนอ่ะค่ะ เขียนอย่างไร ให้ query ออกมาได้อย่างถูกต้องค่ะ นั่งมาทั้งคืนเลย ยังแก้ไม่ได้เลยค่ะ รบกวน ท่านผู้เชี่ยวชาญทีนะค่ะ ขอบพระคุณค่ะ



Tag : PHP, MySQL









ประวัติการแก้ไข
2010-11-14 13:27:31
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-11-14 13:07:10 By : nuie View : 1457 Reply : 4
 

 

No. 1



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

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

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

จะเขียนให้งงทำไมหลายรอบครับ
แค่นี้ก็น่าจะได้แล้วครับ
Code (PHP)
for($r=0;$r<count($project_IDreal);$r++)
{
// echo ("<br>");
echo ($project_IDreal[$r]."<br>");
$strSQL4 = "SELECT DISTINCT project_name FROM project ";
$strSQL4 .= "WHERE project_id = '".$project_IDreal[$r]."' ";
$objQuery3 = mysql_query($strSQL4) ;

$objResult = mysql_fetch_array($objQuery3))

?>
<tr>
<td><div align="center"><?php echo $r+1; ?></div></td>
<td><?=$objResult["project_name"];?></td>
<td align="center"><input type="checkbox" name="chkAdd[]" id="chkAdd<?=$u;?>" value="<?=$objResult["project_id"];?>"></td>
</tr>
<?
} ?>









ประวัติการแก้ไข
2010-11-14 14:52:32
2010-11-14 14:53:26
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-14 14:51:58 By : narubet
 


 

No. 2



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



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


ลองแก้ไขตามที่ คุณ bts บอกแล้ว พบว่า มันออกแล้วค่ะแต่ว่า มันไม่ยอมคัดชื่อซ้ำออก
มันออกตามจำนวนเรคคอร์ดเลยค่ะ ต้องแก้อย่างไรดีค่ะ


ลำดับที่ โครงการที่ได้รับสิทธิ์ประเมิน ยกเลิก
1 คุณธรรมนำร่อง
2 ศึกษาดูงานด้านคอมพิวเตอร์
3 ศึกษาดูงานด้านคอมพิวเตอร์
4 ศึกษาดูงานด้านคอมพิวเตอร์
5 คุณธรรมนำร่อง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-14 15:27:19 By : nuie
 

 

No. 3



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



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


ได้แล้วค่ะ โค้ดที่ถูกต้องคืออันนี้ค่ะ

<?
$f=1;
$u=0;
$strSQL = "SELECT DISTINCT project_name,project.project_id
FROM evaluation_detail,project WHERE student_id LIKE '".$strCancle."%' AND status_evaluation = 'NOT' AND evaluation_detail.project_id
= project.project_id ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");

while($objtesti = mysql_fetch_array($objQuery))
{ $u++;
?>
<tr>
<td><div align="center"><?php echo ($f++."."); ?></div></td>
<td><?=$objtesti["project_name"];?></td>
<td align="center"><input type="checkbox" name="chkAdd[]" id="chkAdd<?=$u;?>" value="<?=$objtesti["project_id"];?>"></td>
</tr>
<?
} ?>

</table>
ขอบคุณนะค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-14 23:34:48 By : nuie
 


 

No. 4

Guest


thank
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-06-17 13:30:43 By : ioiyio
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ช่วยดูคำสั่งในการ query SELECT หน่อยค่ะ คือมี ชุดตัวแปรที่เป็นอาเรย์(project_id) ซึ่งต้องการเทียบโดยใช้คำสั่ง DISTINCT เพื่อคัดเลือกไม่ให้มี project_id ซ้ำ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 01
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 อัตราราคา คลิกที่นี่