ทำไมค้นหาด้วยคีย์เวิร์ด ได้แค่ตัวอักษรสองตัว จะพิมพ์ชื่อเต็มหรือคำเต็มไม่ได้เลย
ตรงด้านล่างนี้คิดว่าผิดนะครับ และทำให้ทุกครั้งที่ตรวจสอบ $Num_Rows จะได้ else เสมอทั้งที่ไม่มีข้อมูล
Code (PHP)
$Num_Rows = oci_fetch_array($objParse,$objResult);
if($Num_Rows = 0 )
หากยังไม่ได้ให้ทดสอบคำสั่ง sql บน database โดยตรง ครับ
ประวัติการแก้ไข 2012-05-20 11:04:17 2012-05-20 11:06:29
Date :
2012-05-20 11:03:46
By :
narubet
Code (PHP)
<input name="txtKeyword" type="text" id="txtKeyword" value="<?=$_POST["txtKeyword"];?>" />
<input name="submit" type="submit" value=" ค้นหา " / title="ค้นหา"></th>
</tr>
</table>
</form>
<p>
<?php
if(trim($_POST["txtKeyword"]!= ""))
{
include("connect_db.php");
$strSQL = "SELECT * FROM AVSREG.OFFICER WHERE (AVSREG.OFFICER.OFFICERNAME LIKE '".$_POST["txtKeyword"]."%')";
$objParse = oci_parse ($objConnect, $strSQL);
oci_execute ($objParse,OCI_DEFAULT);
//echo $strSQL;
if(oci_num_rows($objParse)==0 )
{
echo "<script> alert('ไม่พบข้อมูล!')";
echo "window.location='index_officer1-2.php';</script>";
exit(0);
}else {
?>
</p>
<span class="style7">เลือกรายชื่ออาจารย์ที่ต้องการดูผลการประเมิน </span>
<table width="500" height="44" border="0" align="center" cellpadding="2" cellspacing="2" bordercolor="#FFCCCC">
<?
while($objResult = oci_fetch_array($objParse,OCI_BOTH))
{
$i++;
if($i%2==0)
{
$bg = "#FFCCFF";
}else{
$bg = "#EEEEEE";
}
?>
<tr bgcolor="<?=$bg?>">
<td width="87" height="40" align="center" ><?=$objResult["OFFICERCODE"];?></td>
<td width="204" align="left" > อาจารย์
<?=$objResult["OFFICERNAME"];?>
<?=$objResult["OFFICERSURNAME"];?>
<span class="style8">
<input type="hidden" name="OFFICERID" value="<?=$objResult["OFFICERID"];?>" />
</span></td>
<td width="189" height="40" align="center" ><span class="style12"><a href="index_officer_add.php?OFFICERNAME=<?=$objResult["OFFICERNAME"];?>&OFFICERSURNAME=<?=$objResult["OFFICERSURNAME"];?>&OFFICERID1=<?=$objResult["OFFICERID"];?>" style="text-decoration:none" title="ผลการประเมิน">ผลการประเมิน</a></span></td>
</tr>
<?
}
?>
</table>
<?
oci_close($objConnect);
}
}
?>
Date :
2012-05-20 13:43:57
By :
sakuraei
ถ้าคำสั่ง SQL เป็นการ select ..... ลองเปลี่ยน mode ใน oci_execute() ดูครับ
oci_execute ($objParse, OCI_COMMIT_ON_SUCCESS );
หรือ อาจไม่ต้องระบุโหมดก็ได้ เช่น
oci_execute($objParse);
ทดลองเปลี่ยนที่บรรทัดที่ 14 น่ะครับ
ส่วนบรรทัดที่ 28
ให้เปลี่ยนจาก OCI_BOTH -> OCI_ASSOC เพราะไม่ได้ใช้ผลลัพธ์ทั้งสองแบบควบคู่กัน ส่วนมากที่เห็นใช้ในโปรแกรมของน้อง cheeda
พี่ก็เห็นเป็น Association array ทั้งนั้นล่ะครับ
while($objResult = oci_fetch_array($objParse,OCI_ASSOC))
Date :
2012-05-20 14:47:20
By :
sakuraei
ก่อนอื่นขอแสดงความยินดีด้วยน่ะครับ ที่ทำได้แล้ว
Code (PHP)
<input name="txtKeyword" type="text" id="txtKeyword" value="<?=$_POST["txtKeyword"];?>" />
<input name="submit" type="submit" value=" ค้นหา " / title="ค้นหา"></th>
</tr>
</table>
</form>
<p>
<?
if(trim($_POST["txtKeyword"]!= ""))
{
include("connect_db.php");
$strSQL = "SELECT * FROM AVSREG.OFFICER WHERE AVSREG.OFFICER.OFFICERNAME LIKE '".$_POST["txtKeyword"]."%'";
$objParse = oci_parse ($objConnect, $strSQL);
oci_execute($objParse);
echo $strSQL;
?>
</p>
<span class="style7">เลือกรายชื่ออาจารย์ที่ต้องการดูผลการประเมิน </span>
<table width="500" height="44" border="0" align="center" cellpadding="2" cellspacing="2" bordercolor="#FFCCCC">
<?
if(!oci_num_rows($objParse)) echo "<tr><td colspan=\"3\" style=\"text-align:center\">ไม่พบข้อมูลใดๆค่ะ</td></tr>\n";
while($objResult = oci_fetch_array($objParse,OCI_ASSOC))
{
$i++;
if($i%2==0)
{
$bg = "#FFCCFF";
}
else
{
$bg = "#EEEEEE";
}
?>
<tr bgcolor="<?=$bg?>">
<td width="87" height="40" align="center" ><?=$objResult["OFFICERCODE"];?></td>
<td width="204" align="left" > อาจารย์
<?=$objResult["OFFICERNAME"];?>
<?=$objResult["OFFICERSURNAME"];?>
<span class="style8">
<input type="hidden" name="OFFICERID" value="<?=$objResult["OFFICERID"];?>" />
</span></td>
<td width="189" height="40" align="center" ><span class="style12"><a href="index_officer_add.php?OFFICERNAME=<?=$objResult["OFFICERNAME"];?>&OFFICERSURNAME=<?=$objResult["OFFICERSURNAME"];?>&OFFICERID1=<?=$objResult["OFFICERID"];?>" style="text-decoration:none" title="ผลการประเมิน">ผลการประเมิน</a></span></td>
</tr>
<?
}
?>
</table>
<?
oci_close($objConnect);
}
?>
Date :
2012-05-20 19:54:25
By :
sakuraei
ในการหาจำนวนเรคคอร์ดให้ใช้ $numrows = oci_fetch_all($objParse, $Result);
ไม่สามารถใช้ oci_num_rows ในคำสั่ง select ได้ครับ
Date :
2012-05-20 20:29:23
By :
narubet
ครับ เดี๋ยวจะตามไปดูให้ครับ
Date :
2012-05-20 22:11:44
By :
sakuraei
ลองเปลี่ยนเป็นแบบนี้น่ะครับ
20.if(oci_num_rows($objParse) <= 0) echo "<tr><td colspan=\"3\" style=\"text-align:center\">ไม่พบข้อมูลใดๆค่ะ</td></tr>\n";
ประวัติการแก้ไข 2012-05-20 22:21:23
Date :
2012-05-20 22:20:51
By :
sakuraei
ลองใหม่ครับ
Code (PHP)
<input name="txtKeyword" type="text" id="txtKeyword" value="<?=$_POST["txtKeyword"];?>" />
<input name="submit" type="submit" value=" ค้นหา " / title="ค้นหา"></th>
</tr>
</table>
</form>
<p>
<?
if(trim($_POST["txtKeyword"]!= ""))
{
include("connect_db.php");
$strSQL = "SELECT * FROM AVSREG.OFFICER WHERE AVSREG.OFFICER.OFFICERNAME LIKE '".$_POST["txtKeyword"]."%'";
$objParse = oci_parse ($objConnect, $strSQL);
oci_execute($objParse);
echo $strSQL;
?>
</p>
<span class="style7">เลือกรายชื่ออาจารย์ที่ต้องการดูผลการประเมิน </span>
<table width="500" height="44" border="0" align="center" cellpadding="2" cellspacing="2" bordercolor="#FFCCCC">
<?
$numRows = oci_fetch_all ($objParse,$outputArray);
if( $numRows ==0 || !$numRows ) echo "<tr><td colspan=\"3\" style=\"text-align:center\">ไม่พบข้อมูลใดๆค่ะ</td></tr>\n";
$objParse = oci_parse ($objConnect, $strSQL);
oci_execute($objParse);
while($objResult = oci_fetch_array($objParse,OCI_ASSOC))
{
$i++;
if($i%2==0)
{
$bg = "#FFCCFF";
}
else
{
$bg = "#EEEEEE";
}
?>
<tr bgcolor="<?=$bg?>">
<td width="87" height="40" align="center" ><?=$objResult["OFFICERCODE"];?></td>
<td width="204" align="left" > อาจารย์
<?=$objResult["OFFICERNAME"];?>
<?=$objResult["OFFICERSURNAME"];?>
<span class="style8">
<input type="hidden" name="OFFICERID" value="<?=$objResult["OFFICERID"];?>" />
</span></td>
<td width="189" height="40" align="center" ><span class="style12"><a href="index_officer_add.php?OFFICERNAME=<?=$objResult["OFFICERNAME"];?>&OFFICERSURNAME=<?=$objResult["OFFICERSURNAME"];?>&OFFICERID1=<?=$objResult["OFFICERID"];?>" style="text-decoration:none" title="ผลการประเมิน">ผลการประเมิน</a></span></td>
</tr>
<?
}
?>
</table>
<?
oci_close($objConnect);
}
?>
Date :
2012-05-21 00:38:52
By :
sakuraei
เป็น freelance และ ก็เป็นที่ปรึกษาด้านซอฟท์แวร์ให้กับบริษัทอยู่สองแห่งครับ
Date :
2012-05-21 00:50:04
By :
sakuraei
ใช่แล้วพี่ติดน้องอีกเรื่องนึงที่สัญญาไว้ว่าจะดูให้ เอาไว้พรุ่งนี้น่ะ เอาลิงค์มาแปะไว้หน่อยก็ดี
จะเข้ามาที่ thaicreate ที่โมงล่ะ
Date :
2012-05-21 00:54:29
By :
sakuraei
ช่วยกด "ส่งคำขอบคุณ" ให้พี่บ่อยๆ น่ะ ... ฮ่าๆๆ
Date :
2012-05-21 00:57:03
By :
sakuraei
ไม่เป็นไรครับ เราเป็นเพื่อนร่วมอาชีพเดียวกันช่วยเหลือได้ก็ไม่เกี่ยงอยู่แล้วครับ
แต่ก็อยากให้น้อง cheeda ช่วยเหลือแบ่งปันให้คนอื่นๆต่อไปด้วยน่ะ
Date :
2012-05-21 01:14:34
By :
sakuraei
Load balance : Server 02