|  | 
	                
  
    | 
	 
        หลังจาก Inner join แล้วข้อมูลไม่มีการแสดงที่หน้าเวป แก้ไงดี     |  
    |  |  
 
	
		|  |  |  |  |  
		|  |  | 
          
            | รบกวนช่วยดูด้วยครับ ว่า Code ตามข้างล่างนี้ทำไมเวลาที่แสดงที่หน้าเวปแล้วข้อมูลไม่โชว์อะไรเลย หลังจากที่ได้มีการทำ Inner join แต่ถ้าหากไม่มีการ join table เรียกมาโชว์แค่ table เดียวข้อมูลสามารถแสดงออกที่หน้าเวปได้ตามปกติ รบกวนช่วยด้วยครับ 
 
 Code (PHP)
 
 <html>
<head>
<title>ThaiCreate.Com PHP & SQL Server Tutorial</title>
</head>
<body>
<form name="frmSearch" method="get" action="<?=$_SERVER['SCRIPT_NAME'];?>">
  <table width="599" border="1">
    <tr>
      <th>Keyword
      <input name="txtKeyword" type="text" id="txtKeyword" value="<?=$_GET["txtKeyword"];?>">
      <input type="submit" value="Search"></th>
    </tr>
  </table>
</form>
<?
if($_GET["txtKeyword"] != "")
	{
	$objConnect = mssql_connect("192.168.1.3\SQL2005","sa","sa191") or die("Error Connect to Database");
	$objDB = mssql_select_db("SRI_Golive");
	// Search By Name or Email
	$strSQL = 
		
	"SELECT t0.createdate,t0.createTime,t1.block FROM oscl as t0 inner join oins as t1 on t0.insid = t1.insid WHERE (t0.createdate LIKE '%".$_GET["txtKeyword"]."%')  ";
	//"SELECT T0.createDate, T0.createTime, T0.[custmrName], T1.[street], T1.[block], T0.[subject], T0.[itemCode], T0.[internalSN], T0.[manufSN], T0.[closeTime], T0.[closeDate], T4.[Name], T3.[Name], T2.[firstName] FROM OSCL T0  INNER JOIN OINS T1 ON T0.insID = T1.insID INNER JOIN OHEM T2 ON T0.technician = T2.empID INNER JOIN OSCT T3 ON T0.callType = T3.callTypeID INNER JOIN OSCS T4 ON T0.status = T4.statusID WHERE (T0.createDate LIKE '%".$_GET["txtKeyword"]."%') AND T2.empID = T0.technician AND  T0.callType = T3.callTypeID AND  T4.statusID =  T0.status ";
	$objQuery = mssql_query($strSQL) or die ("Error Query [".$strSQL."]");
	?>
	<table width="600" border="1">
	  <tr>
		<th width="91"> <div align="center">Create Date</div></th>
		<th width="98"> <div align="center">Create Time </div></th>
		<th width="98"> <div align="center">ที่อยู่ </div></th>
		
	  </tr>
	<?
	while($objResult = mssql_fetch_array($objQuery))
	{
	?>
	  <tr>
		<td><div align="center"><?=$objResult["t0.createdate"];?></div></td>
		<td><?=$objResult["t0.createTime"];?></td>
		<td><?=$objResult["t1.block"];?></td>
	  </tr>
	<?
	}
	?>
	</table>
	<?
	mssql_close($objConnect);
}
?>
</body>
</html>
 
 
 Tag : PHP, Ms SQL Server 2005
 
 
 |  
            |  |  
            | 
              
                |  |  |  |  
                |  | 
                    
                      | Date :
                          2011-11-11 08:58:50 | By :
                          โปรแกรมบ้า | View :
                          1290 | Reply :
                          23 |  |  |  
                |  |  |  |  |  
            |  |  
		            |  |  
		|  |  |  |  |  
  
    | 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | copy --> SELECT t0.createdate,t0.createTime,t1.block FROM oscl as t0 inner join oins as t1 on t0.insid = t1.insid WHERE (t0.createdate LIKE '%".$_GET["txtKeyword"]."%')  ไป test ที่ SQL ดูว่าค่าออกไหม 
 ถ้าออก ลอง $numrow = mssql_num_rows($strSQL);
 
 แล้ว echo $numrow; ดูว่ามีข้อมูลไหม
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-11-11 10:16:39 | By :
                            LuckyStar |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | LIKE '10' น่าจะต้องใส่อักขระเพิ่มครับ ถ้าเป็น Mysql จะเป็น '%10%' แต่ถ้าเป็นฝั่ง Microsoft จะเป็น '*10*' 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-11-11 15:02:13 | By :
                            Songkram |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | มีปัญหาที่ฟังก์ชั่นนี้ครับ mssql_num_rows 
 ในโค้ดที่ให้มาไม่เห็นว่าอยู่บันทัดไหน ถ้าคิวรี่ใน MS SQL Server ได้ก็แสดงว่าคิวรี่ถูกแล้ว เหลือแต่ว่า php รองรับฟังก์ชั่น mssql_num_rows นี้อย่างไรบ้าง.....
 
 ลองตรวจสอบวิธีการใช้งานดูนะครับว่า ใช้อย่างไร และใช้กับเวอร์ชั่นของ PHP ใดได้บ้าง ถ้าไม่จำเป็นต้องนับแถว ก็ไม่ต้องใส่ก็ได้ครับ หรือถ้าจำเป็นต้องนับแถว ให้หลีกเลี่ยงไปใช้ count แทนครับ ......
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-11-11 16:15:46 | By :
                            Songkram |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ลองเอา code นี้ไปแทนดูนะ 
 Code (PHP)
 
 $objQuery = mssql_query("SELECT t0.createdate,t0.createTime,t1.block FROM oscl as t0 inner join oins as t1 on t0.insid = t1.insid WHERE (t0.createdate LIKE '%10%')");
$num = mssql_num_rows($objQuery);
echo $num;
<table width="600" border="1">
	  <tr>
		<th width="91"> <div align="center">Create Date</div></th>
		<th width="98"> <div align="center">Create Time </div></th>
		<th width="98"> <div align="center">ที่อยู่ </div></th>
		
	  </tr>
	<?
	while($objResult = mssql_fetch_array($objQuery))
	{
	?>
	  <tr>
		<td><div align="center"><?=$objResult["createdate"];?></div></td>
		<td><?=$objResult["createTime"];?></td>
		<td><?=$objResult["block"];?></td>
	  </tr>
	<?
	}
	?>
	</table>
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-11-11 16:16:43 | By :
                            LuckyStar |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              |  ตอบความคิดเห็นที่ : 6 เขียนโดย : LuckyStar เมื่อวันที่ 2011-11-11 16:16:43 
 รายละเอียดของการตอบ ::
 ลองเขียนตามให้มาดังนี้ 
<html> 
<head> 
<title>ThaiCreate.Com PHP & SQL Server Tutorial</title> 
</head> 
<body>
 
<? 
	$objConnect = mssql_connect("192.168.1.3\SQL2005","sa","sa191") or die("Error Connect to Database"); 
	$objDB = mssql_select_db("SRI_Golive");
 
	$objQuery = mssql_query("SELECT t0.createdate,t0.createTime,t1.block FROM oscl as t0 inner join oins as t1 on t0.insid = t1.insid WHERE (t0.createdate LIKE '%10%') "); 
	$num = mssql_num_rows($objQuery); 
	echo $num; 
?> 
	<table width="600" border="1"> 
	  <tr> 
		<th width="91"> <div align="center">CreateDate</div></th> 
		<th width="98"> <div align="center">CreateTime </div></th> 
		<th width="98"> <div align="center">ที่อยู่ </div></th>
		 
	  </tr> 
	<? 
	while($objResult = mssql_fetch_array($objQuery)) 
	{ 
	?> 
	  <tr> 
		<td><div align="center"><?=$objResult["t0.createdate"];?></div></td> 
		<td><?=$objResult["t0.createTime"];?></td> 
		<td><?=$objResult["t1.block"];?></td> 
	  </tr> 
	<? 
	} 
	?> 
	</table> 
<? 
	mssql_close($objConnect); 
?> 
</body> 
</html>
 
แสดงบนหน้าเวปดังนี้ครับ
  
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-11-11 16:38:54 | By :
                            งง |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
 
 
 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | 555+ สงสัยจาใช้ไม่ได้กะ mssql ม้าง 
 เปลี่ยนเป็นตัวนี้ละกัน
 
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> ใต้ <head> นะ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-11-11 17:10:57 | By :
                            LuckyStar |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | sql server คุณใช้ collection อะไรครับ ถ้าจะใช้ภาษาไทย field type ต้องใช้ n ด้วยนะครับ เช่น nvarchar 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-11-11 17:54:26 | By :
                            ikikkok |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              |  ตอบความคิดเห็นที่ : 10 เขียนโดย : LuckyStar เมื่อวันที่ 2011-11-11 16:53:16 
 รายละเอียดของการตอบ ::
      ขอคุณมากสำหรับทุกความช่วยเหลือ ตอนนี้แก้เรื่องภาษาได้แล้ว แต่พอย้อนกัลมาดู ตามที่คุณ LuckyStar บอกว่าเวลาแสดงไม่ต้องใส่ชื่อ table นำหน้า แต่มันเกิดปัญหาขึ้นที่ว่า ผมจะต้องแสดงฟิลที่มีชื่อเดียวกัน แต่ต่าง table มันต้องทำไงครับ
Query 
"SELECT T0.createDate, T0.createTime, T0.[custmrName], T1.[street], T1.[block], T0.[subject], T0.[itemCode], T0.[internalSN], T0.[manufSN], T0.[closeTime], T0.[closeDate], T4.[Name], T3.[Name], T2.[firstName] FROM OSCL T0  INNER JOIN OINS T1 ON T0.insID = T1.insID INNER JOIN OHEM T2 ON T0.technician = T2.empID INNER JOIN OSCT T3 ON T0.callType = T3.callTypeID INNER JOIN OSCS T4 ON T0.status = T4.statusID WHERE (T0.createDate LIKE '%".$_GET["txtKeyword"]."%') AND T2.empID = T0.technician AND  T0.callType = T3.callTypeID AND  T4.statusID =  T0.status "
 
ตรง T4.[Name], T3.[Name] ต้องทำไงดีครับ
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-11-12 21:27:28 | By :
                            งง |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | วิธีที่ผมใช้นะ คือ เรียกข้อมูลออกมาทั้งสองตารางก่อนเลย พอออกมาทั้งหมดแล้ว ผมก็สร้างตัวแปรมาเก็บค่า id ของตาราง B  แล้วเอาตัวแปร id นั้น ไปทำการเรียกข้อมูลตาราง B อีกครั้งหนึ่ง แล้วก็สร้างตัวแปรที่ไม่เหมือนกับตัวแรก เพื่อทำการ fetch_array แล้วก็ echo ค่ามันออกมา เอาเฉพาะค่าที่ต้องการน่ะ
 อาจยุ่งยากไปนิด แต่ก็ได้ผลนะ
 เพราะฉะนั้นเวลาสร้างตารางก็ต้องดูพวกชื่อฟิลด์อะไรพวกนี้ให้ดีก่อนนะ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-11-14 11:17:47 | By :
                            ozma |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
 
        
          |  |  |  |  |  
          |  |  | 
            
              |  ตอบความคิดเห็นที่ : 18 เขียนโดย : LuckyStar เมื่อวันที่ 2011-11-14 13:06:30 
 รายละเอียดของการตอบ ::
 
   ลองใส่แล้วมัน ไม่แสดงข้อมูลเลย 
 
SELECT T0.createDate, T0.createTime, T0.[custmrName], T1.[street], T1.[block], T0.[subject], T0.[itemCode], T0.[internalSN], T0.[manufSN], T0.[closeTime], T0.[closeDate], T4.[Name] as name0, T3.[Name] as name1, T2.[firstName] FROM OSCL T0 INNER JOIN OINS T1 ON T0.insID = T1.insID INNER JOIN OHEM T2 ON T0.technician = T2.empID INNER JOIN OSCT T3 ON T0.callType = T3.callTypeID INNER JOIN OSCS T4 ON T0.status = T4.statusID WHERE (T0.createDate LIKE '%".$_GET["txtKeyword"]."%') AND T2.empID = T0.technician AND T0.callType = T3.callTypeID AND T4.statusID = T0.status
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-11-14 16:00:19 | By :
                            karurub |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ไม่ต้องมี []  T4.Name as name0, T3.Name as name1  เวลาเรียกใช้ก็  <?=$objResult["name0"];?> 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-11-14 16:04:11 | By :
                            LuckyStar |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | เอาโค๊ดมาดูเถอะครับ จะได้เลิกงมหาสาเหตุกันซะที 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2011-11-14 16:11:54 | By :
                            ikikkok |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 |  |