พบกับบทความเกี่ยวกับคอมพิวเตอร์และ programming ได้ที่ http://articles.modoeye.com | บล็อกอาหาร
PHP Articles / PHP +ORACLE มีปัญหาเกี่ยวกับสคริปครับ
ton
ton
Thu 28 Feb 2008 18:18:48

สอบถามเรื่อง php + oracle ครับ ข้างล่างเป็นโค้ดที่ใช้ติดต่อดาต้าเบส oracle ครับ

$sqlstr = " select * from hot_db te where te.event_status='A'  order by te.event_stamptime   desc ";
$conn = OCILogon($utraffice,$ptraffice,$db);
$stmt= OCIParse($conn, $sqlstr); 
OCIExecute($stmt);  //

$i=0;

while( (OCIFetch($stmt)) && ($i<5)){
        $e_header     = OCIResult($stmt,"HEADER");
        $e_detail        = OCIResult($stmt,"DETAIL");
        $e_picname  = OCIResult($stmt,"PICNAME");
 
   if($e_picname =='') { $e_picname='nophoto.gif';   }
  $e_detail1 = substr($e_detail,0,50)."...";  // ตัดคำ
  if ($i % 3 == 0){
  echo "<table width=100% border=0 cellspacing=0 cellpadding=0>";
  $event_txt.=   '<tr " width="20%" >'.
           '<td width="20%"><img src="backoffice/event/picnews/'.$e_picname.'" width="50" height="50" align="center"></td>'.
              '<td width="80%"  ><font face="Ms Sans Serif" size="1"><strong>'.$e_header.'  </strong>'.$e_detail1.'</font> </td></tr>';
 } 
  $i++; 
  echo "</table>";
  }

จากโค้ดด้านบน เป็นการดึงข้อมูลจากดาต้าเบสมาโชว์ปกติ  ผมเลยใส่   if ($i % 3 == 0){ data } $i++ เพื่อให้มันโชว์ข้อมูลเป็นแบบ Gallery จะทำเหมือนเว็บ sanook ตรง ข่าว นะครับ

ปัญหาคือ ข้อมูลมันโชว์ครับ แต่มันโชว์แบบนี้ครับ

      ข่าว 1       

      ข่าว 4      

      ข่าว 7      


แทนที่มันจะโชว์แบบนี้ครับ

      ข่าว 1        ข่าว 2        ข่าว 3

      ข่าว 4         ข่าว 5        ข่าว 6     

      ข่าว 7        ข่าว 8        ข่าว 9

ผมลองเอาโค้ด if ($i % 3 == 0){ data } $i++   ไปใช้กับ php+mysql
ใช้ได้ปกติเลย ไม่มีปัญหาอะไร  อยากทราบว่าเป็นเพราะอะไรครับ หรือว่าผมใส่พวก <table> </table> ไม่ถูกต้อง ยังไง รบกวนด้วยนะครับ เพราผมไม่ถนัด oracle เลย

อ้อ ส่วนการแสดงผลของโค้ดด้านบนนี้โชว์ในหน้า index.html  {EVENT_NEWS}  โดย โค้ดในการดึงไฟล์ index.html  เป็นแบบนี้

$tpl->define(  array(
   head => "head.html",
   left=>"left.html",
   bottom=>"bottom.html",
   body=>"index.html",
   main=>"tm.html"
  )
 );

ใช้ระบบ tamplate engine ซึ่งผมไม่ค่อยถนัดเลยครับ  รบกวนให้ความกระจ่างด้วยนะครับ

webmaster
webmaster
Thu 28 Feb 2008 21:07:52
if ($i % 3 == 0){
  echo "<table width=100% border=0 cellspacing=0 cellpadding=0>";
  $event_txt.=   '<tr " width="20%" >'.
           '<td width="20%"><img src="backoffice/event/picnews/'.$e_picname.'" width="50" height="50" align="center"></td>'.
              '<td width="80%"  ><font face="Ms Sans Serif" size="1"><strong>'.$e_header.'  </strong>'.$e_detail1.'</font> </td></tr>';
 } 
$i++;

จากโค๊ดนี้ จะเห็นว่าแสดงผลเมื่อตัวแปร $i%3 ไม่มีเศษเท่านั้น ดังนั้นจึงมีการข้ามไป 3 record ครับ จริงๆแล้วไม่เกี่ยวข้องกับ database engine เลยครับ

ส่วน template นั้นผมไม่ทราบว่าผู้เขียน class นี้มีการสร้างไว้อย่างไร จึงไม่สามารถให้คำแนะนำได้ครับ
Reply
Name:
E-mail:
Home | Services | Forum | Classified | Directories | Support | Contact
ATOM feed RSS 0.9 feed RSS 1.0 feed RSS 2.0 feed
Copyright © 2005 - 2007 Modoeye.com, All Rights Reserved.
Disclaimer | Privacy policy | Term of Use | Term of Services
Valid XHTML Valid CSS! PHP: Hypertext Preprocessor MySQL database Apache Powered! FreeBSD Power to serve
Modoeye Sitemap Client login