ใครเก่ง php ช่วยทีครับ มันขึ้นแบบนี้มานะครับ

เริ่มโดย kob191, 03 กันยายน 2007, 14:32:06

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

kob191

ใครเก่ง php ช่วยทีครับ มันขึ้นแบบนี้มานะครับ
Parse error: syntax error, unexpected T_STRING in /usr/home/homepage/domains/homepage.com/public_html/list.php on line 49
[direct=http://www.siamplating.com/]Plating Equipment[/direct]

payu


น่าจะัลืมเครื่องหมายคำพูด (ตัวปิด) ครับ .. อาจจะ ' หรือ "

[direct=http://www.facebook.com/iipayu]payu on facebook[/direct]

7


kob191

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /usr/home/homepage/domains/homepage.com/public_html/list.php on line 27

ลองไปลองมาวันขึ้นหน้าเวบละครับแต่มี eror นี่อยู่บนหัวครับ
[direct=http://www.siamplating.com/]Plating Equipment[/direct]

มอมแมม

เจอบ่อยเหมือนกันนะ คิดว่าเป็นที่ script เป็นที่ code นะ เพราะลองหลายโฮส และที่เครื่องตัวเอง ก็เป็น และ code นั้น เมื่อสั่งปิดการทำงาน มันก็ยังฟ้องแบบเดิม เลยไม่เข้าใจเหมือนกัน

MonkyDLuffy

ลอง echo ตัว sql syntex ออกมาดูแล้วไปใส่ใน phpMyadmin หรือลองกับ mysql ดู มันน่าจะผิดที่ syntex อ่ะคับ ส่วนจะแก้ไง ใน mysql มันจะแนะนำมาครับ  :)

kob191

อ้างถึงจาก: MonkyDLuffy ใน 03 กันยายน 2007, 16:04:24
ลอง echo ตัว sql syntex ออกมาดูแล้วไปใส่ใน phpMyadmin หรือลองกับ mysql ดู มันน่าจะผิดที่ syntex อ่ะคับ ส่วนจะแก้ไง ใน mysql มันจะแนะนำมาครับ  :)

มันทำยังไงหรือครับพอจะบอกเป็น step ได้เปล่าครับ
[direct=http://www.siamplating.com/]Plating Equipment[/direct]

amaudy

อ้างถึงจาก: kob191 ใน 03 กันยายน 2007, 15:05:23
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /usr/home/homepage/domains/homepage.com/public_html/list.php on line 27

ลองไปลองมาวันขึ้นหน้าเวบละครับแต่มี eror นี่อยู่บนหัวครับ

Query ไม่ผ่าน ขอดู source code ครับ

EThaiZone

อ้างถึงจาก: kob191 ใน 03 กันยายน 2007, 16:16:08
อ้างถึงจาก: MonkyDLuffy ใน 03 กันยายน 2007, 16:04:24
ลอง echo ตัว sql syntex ออกมาดูแล้วไปใส่ใน phpMyadmin หรือลองกับ mysql ดู มันน่าจะผิดที่ syntex อ่ะคับ ส่วนจะแก้ไง ใน mysql มันจะแนะนำมาครับ  :)

มันทำยังไงหรือครับพอจะบอกเป็น step ได้เปล่าครับ

1. หาทางเอา query ของ sql ในนั้นออกมา
กรณีสามรถดูที่โค้ดมันได่ ก็ก็อบมาเลย
ส่วนที่อยู่ในคำสั่ง mysql_query อะ

2. เอาโค้ดไปวางใน phpmyadmin ดู ส่วนที่นำเข้าอะ
แล้วลองดูว่าเจอ error ไหม

เจอก็ลองแก้ดู

แต่อยากแนะนำให้เอามาแปะในบอร์ดดูก่อน เพื่อบางคำสั่งอาจมีผลกระทบกะฐานข้อมูล

แต่ก่อนอื่นน่าเช็คก่อน connect เข้า db ก่อนนะครับ
บางคนชอบเขียนสคริปปิดerror ส่วน connect เลยทำให้่
เวลา connect ไม่ได้ก็ไม่รู้กัน เพราะ ไม่มี error

แต่พอมี error ตรง connect มันก็จะโชว์ user มาซะงั้น =__="

:P

ปล. เอาโค้ดมาแปะดีสุดครับ ถ้ากลัวก็ส่ง pm หาใครก็ได้ที่อาสาในกระทู้นี้อะ
เฉพาะส่วน list.php ก็พอ =__="

kob191

ปัญหาที่เกิดตอนนี้ครับ  มันขึ้นมา

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /usr/home/ปกปิด/domains/เวบผมเองขอไม่บอก.com/public_html/list.php on line 27


ส่วนนี้ก็ code list.php ครับ สีแดงคือบันทัด ที่27 ครับ


<?php
          require('config.inc.php');
        require('th_func.php');
        $sql="select fullname,email,detail,post from
tb_contact where enable='1' order by posted";
        $result=mysql_query($sql, $link);

print "<title>List all record in Contact_Us</title>\n";
print "<body bgcolor=\"#FFFFFF\">\n";
print "<div align=\"center\">\n";
print "<table width=\"600\" border=\"0\">\n";
print "<tr>\n";
print "<td bgcolor=\"#CCCCCC\">\n";
print "<div align=\"center\">\n";
print "<font face=\"CordiaUPC\" size=\"4\">";
print "All information</font>";
print "</div>\n";
print "</td>\n";
print "</tr>\n";
print "<tr>\n";
print "<td>\n";
print "<hr size=\"1\">\n";
print "</td>\n";
print "</tr>\n";


while ($object=mysql_fetch_object ($result)){
print "<tr bgcolor=\"#FFCCFF\">\n";

print "<td><font face=\"MS Sans Serif\" size=\"1\">\n";
        print "โดย <a href=\"mailto:$object-
>email\">$object->fullname</a> ";
      print "เมื่อวันที่  ". thaidate($object->posted) . "
น.</font></td>\n";
      print "</tr>\n";
      print "<tr>\n";
      print "<td bgcolor=\"#FFFFCC\">\n";
      print "<font face=\"MS Sans Serif\" size=\"1\">
$object->detail</font>";
        print "</td>\n";
      print "</tr>\n";
      print "<tr valign=\"top\">\n";
      print "<td>\n";
      print "<hr size=\"1\">\n";
      print "</td>\n";
      print "</tr>\n";
}

print "<tr>\n";
print "<td bgcolor=\"#CCCCFF\">";
print "<font size=\"2\" face=\"Times New Roman\">End of
Contact Us</font>";
print "</td>\n";
print "</tr>\n";
print "</table>\n";
print "<br>\n";
print "</div><br>\n";
print "</table>\n";

mysql_close($link);

?>
[direct=http://www.siamplating.com/]Plating Equipment[/direct]

EThaiZone

ผมบอกได้ 2 แนวทาง

1.บรรทัด
         $sql="select fullname,email,detail,post from
tb_contact where enable='1' order by posted";
ให้กดลบให้เป็นบรรทัดเดียวกันแบบนี้
        $sql="select fullname,email,detail,post from tb_contact where enable='1' order by posted";

เพราะ double quote ใน php4 มักไม่รองรับการแยกบรรทัดอะ (เมื่อ่กอนผมเป็นบ่อยมาก)
แต่ถ้ายังไม่หายก็ดูข้อ 2

2. หรืออาจเพราะ connect เข้า db ไม่ได้
อันนี้เช็ค user pass อะไรให้ดีๆ แล้วดูว่า connect เข้าหรือเปล่า
เช็คที่ตัวแปร $link ก็ได้ แนวๆ ว่า

if(!$link) echo "Cannot connect db!";
ไว้บรรทัดหลัง require('th_func.php'); อะ

ถ้่ามันขึ้น  Cannot connect db! ก็คือต่อไม่ได้ครับ เช็คดูดีๆ

(คือผมดูที่ query คิดว่าไม่น่ามีปัญหาอะ =__=")

kob191

ผมลองดูแล้วมันก็ยังไม่ได้อะครับ ยังขึ้นเหมือนเดิม

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /usr/home/ปกปิด/domains/ปกปิด.com/public_html/list.php on line 26

ลองทำทั้งสองข้อแล้วครับก็ยังไม่หายครับทำไงดีน้องงมาหลายวันละ
[direct=http://www.siamplating.com/]Plating Equipment[/direct]

kennn

เอ่อ ... ขอยกมาเพื่อเป็นความรู้ให้ท่านอื่นๆนะครับ

อ้างถึง
1.บรรทัด
         $sql="select fullname,email,detail,post from
tb_contact where enable='1' order by posted";
ให้กดลบให้เป็นบรรทัดเดียวกันแบบนี้
        $sql="select fullname,email,detail,post from tb_contact where enable='1' order by posted";

เพราะ double quote ใน php4 มักไม่รองรับการแยกบรรทัดอะ (เมื่อ่กอนผมเป็นบ่อยมาก)
แต่ถ้ายังไม่หายก็ดูข้อ 2

อันนี้ไม่เป็นปัญหามานานแล้วครับ เพราะ PHP จะอ่าน Syntex ในบรรทัดนั้นจนถึงอักษร ";" ถ้า PHP เจอตัวนี้ถือว่าจบบรรทัดคำสั่ง เพราะฉะนั้นเว้นบรรทัดไม่ใช่ปัญหา

อ้างถึง2. หรืออาจเพราะ connect เข้า db ไม่ได้
อันนี้เช็ค user pass อะไรให้ดีๆ แล้วดูว่า connect เข้าหรือเปล่า
เช็คที่ตัวแปร $link ก็ได้ แนวๆ ว่า

ถ้า user pass ผิด มันจะขึ้น error ว่า Access denied for user 'root'@'localhost' (using password: YES).


จำไว้เลยครับถ้าขึ้น
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource ...

แปลว่า การติดต่อฐานข้อมูลมีปัญหา สาเหตุอาจจะมาจาก
- ชื่อตัวแปรที่ตั้งขึ้นมาผิด เช่น ตั้งชื่อว่า $conn แต่ใช้แค่ $con หรือ conn($หายไป)
- ชื่อคอลลัมในฐานข้อมูลผิด
เพราะฉะนั้น warning เค้าบอกมาอยู่แล้วครับว่าบรรทัดที่ 27 ฟังค์ชั่น mysql_fetch_object() มีปัญหา อันนี้ก้อเกี่ยวกับการติดต่อฐานข้อมูลแล้วครับ เราก้อไล่ดูเลยครับว่า บรรทัดที่ 27 มีอะไรผิดมัย

while ($object=mysql_fetch_object ($result)){ โอเคบรรทัดนี้ format ไม่ผิดนี่ เราก็ต้องไล่ขึ้นไปครับ เพราะมันเกี่ยวกับการติดต่อฐานข้อมูล เราก็ต้องไปบรรทัด

$result=mysql_query($sql, $link); บรรทัดนี้น่าสงสัย เพราะตัวแปร $link มาจากไหนไม่รู้ แต่อาจจะเป็นตัวแปรส่งค่าสตริงก้อได้ ข้อนี้ให้เช็คว่าตัวแปร $link มีอยู่หรือไม่ ถ้ามีก้อขึ้นไปเช็คบรรทัดถัดไป

$sql="select fullname,email,detail,post from tb_contact where enable='1' order by posted";

อะฮ้า.. บรรทัดนี้น่าสงสัย ชื่อคอลลัมจากฐานข้อมูลเยอะเลย แต่ตรงกับฐานข้อมูลทุกตัวหรือป่าวชื่อถูกมัย แล้ว enable เป็นค่าตัวแปร($enable)ที่ส่งค่าสตริงมากับ url หรือป่าว หรือเป็นชื่อคอลลัมที่อยู่ในฐานข้อมูลหรือป่าว ให้ลองเช็คดู อีกตัวก้อคือ posted ตัวนี้น่าจะผิดนะ select คอลลัม post หรือ posted กันแน่ ถ้าเป็น post เวลาใช้ order by ก้อน่าจะต้องใช้ post นะ(มันหมายความว่า เรียงลำดับตามข้อมูลในคอลลัม post) หรือ posted ตัวนี้อาจจะเป็นค่าตัวแปรสตริงอีกนะแหละถ้าเป็นค่าตัวแปรสตริงแปรว่า $ หายไป

สรุปวิธีการเช็ค เข้าไปในฐานข้อมูลตารางชื่อ tb_contact ก่อนครับ แล้วเช็คคอลลัม
fullname,email,detail,post ดูว่ามีอยู่หรือไม่ชื่อตรงหรือไม่ ต่อมาเช็ค enable กับ posted ว่าเป็นตัวแปรสตริงหรือชื่อคอลลัมในตาราง tb_contact หรือไม่ ถ้าไม่ได้เป็นชื่อในคอลลัมก้อน่าจะเป็นตัวแปรสตริง

หวังว่าคงแก้ได้นะครับ ขอให้ผ่านด้วยดี


[direct=https://www.strikeprofx.com/th/]StrikeProFx โบรกเกอร์ Forex ฝาก-ถอนรวดเร็ว[/direct]
[direct=https://www.strikeprofx.com/]StrikeProFx Best Forex Broker Fast Deposit&Withdraw[/direct]

EThaiZone

อ้างถึงจาก: kennn ใน 03 กันยายน 2007, 23:57:10
อ้างถึง2. หรืออาจเพราะ connect เข้า db ไม่ได้
อันนี้เช็ค user pass อะไรให้ดีๆ แล้วดูว่า connect เข้าหรือเปล่า
เช็คที่ตัวแปร $link ก็ได้ แนวๆ ว่า

ถ้า user pass ผิด มันจะขึ้น error ว่า Access denied for user 'root'@'localhost' (using password: YES).

ผมกลัวมี @ ปิดหน้าตัว connect อะสิ เลยถึงบอกให้เช็ค $link อะ

แนะนำลองไปเปิด config.inc.php น่าจะเจอตัว connect เพราะหลายคนชอบเขียนแบบนั้น
(วาง connect ไว้หลัง config -*-)

แต่สงสัยไม่น่ามีปัญหากะตรงนี้ (ไม่งั้นน่าจะมี error ขึ้น)

- งั้นลองใช้คำสั่งนี้ดูครับ

echo "Mysql Error: No.".mysql_errno($link) . " - " . mysql_error($link);

ไว้ต่อท้ายจาก

$result=mysql_query($sql, $link);

นะครับ

งานนี้ถ้า db มีปัญหาพวกหาฟิลค์ไม่เจอ เทเบิลไม่ตรงอะไรแนวนี้
มันจะแจ้งมาครับ

ลองดูครับ

janeos

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource ...

ผมเจอบ่อย ส่วนใหญ่เนื่องจาก query ผิด หรือไม่มี record ส่งกลับมาจาก database ทำให้ไม่สามารถ fetch ตัวแปร $result ได้
[direct=http://www.siamseeker.com]ข่าว[/direct]  [direct=http://www.dunweb.net]ดันเว็บ[/direct] [direct=http://www.dunweb.net]โปรโมทเว็บ[/direct],

kob191

จากคำถามที่ถามไปมันแก้จนมันไม่มี Eror ขึ้นแล้ว แต่พอเวลาผม ลองใส่ข้อมูลไปใน่ช่องกรอกข้อมูลข้อมูลผมมันไม่ไปโชว์ใน database แล้วก็เวลา check www.ปกปิด.com/list.php  มันมีแต่ตารางขึ้นข้อมูลมันไม่เห็น showเลย
ผมเอาตัวอย่าง การทำ guest book ในหนังสือ My SQL ระบบฐานข้อมูลสำหรับอินเตอร์เน็ต เล่มสีขาวนะครับ
คือตอนนี้ผมทำเว็บขายโดเมนกับ hosting นะครับหน้าหลักทำกับ dreamveawer เสร็จแล้วเหลือแค่ระบบ
1.สมาชิก
2.guest book
3.whois domain cart
4.ตะกร้า
ไม่ทราบใครพอมีสคริปสำเร็จรูปบ้างครับขอช่วยเหลือด่วนครับ
[direct=http://www.siamplating.com/]Plating Equipment[/direct]

kennn

แก้จนข้อมูลไม่ขึ้น error แต่ไม่ได้หมายความว่าโค้ดจะทำงานถูกต้องนะครับ สรุปว่าผิดตรงไหน แก้ไขอย่างไร

ถ้าจะให้ดี ลงโค้ดทั้งการ ส่ง และ รับ ข้อมูลมาให้ทดสอบดูครับรับลองไม่มีปัญหากวนใจ
[direct=https://www.strikeprofx.com/th/]StrikeProFx โบรกเกอร์ Forex ฝาก-ถอนรวดเร็ว[/direct]
[direct=https://www.strikeprofx.com/]StrikeProFx Best Forex Broker Fast Deposit&Withdraw[/direct]

kob191

อ้างถึงจาก: kennn ใน 04 กันยายน 2007, 23:08:49
แก้จนข้อมูลไม่ขึ้น error แต่ไม่ได้หมายความว่าโค้ดจะทำงานถูกต้องนะครับ สรุปว่าผิดตรงไหน แก้ไขอย่างไร

ถ้าจะให้ดี ลงโค้ดทั้งการ ส่ง และ รับ ข้อมูลมาให้ทดสอบดูครับรับลองไม่มีปัญหากวนใจ


insert.php  ตัวส่งครับ

<title>Insert Data in contact_Us</title>
<p>Insert Comment</P>

<?php
       require('config.inc.php');
      $today=date("Y-m-d H:i:s");
      $sql="insert into tb_contact
(fullname,email,detail,posted,ip_address) values
('$fullname','$email','$detail','$today','$REMOTE_ADDR')";
       $result=mysql_query($sql, $link);
      mysql_close($link);
      echo "Insert into Contact_Us Database
Complete!<br>\n";
       echo "Go back <a href=\"/\">Home</a><br>\n";
?>


list.php  showข้อมูลที่กรอกไป

<?php
          require('config.inc.php');
        require('th_func.php');
        $sql="select fullname,email,detail,posted from tb_contact where enable='1' order by posted";
        $result=mysql_query($sql,$link);
print "<title>List all record in tb_contact</title>\n";
print "<body bgcolor=\"#FFFFFF\">\n";
print "<div align=\"center\">\n";
print "<table width=\"600\" border=\"0\">\n";
print "<tr>\n";
print "<td bgcolor=\"#CCCCCC\">\n";
print "<div align=\"center\">\n";
print "<font face=\"CordiaUPC\" size=\"4\">";
print "All information</font>";
print "</div>\n";
print "</td>\n";
print "</tr>\n";
print "<tr>\n";
print "<td>\n";
print "<hr size=\"1\">\n";
print "</td>\n";
print "</tr>\n";


while ($object=mysql_fetch_object ($result)){
print "<tr bgcolor=\"#FFCCFF\">\n";

print "<td><font face=\"MS Sans Serif\" size=\"1\">\n";
        print "โดย <a href=\"mailto:$object-
>email\">$object->fullname</a> ";
      print "เมื่อวันที่ ". thaidate($object->posted) . "
น.</font></td>\n";
      print "</tr>\n";
      print "<tr>\n";
      print "<td bgcolor=\"#FFFFCC\">\n";
      print "<font face=\"MS Sans Serif\" size=\"1\">
$object->detail</font>";
        print "</td>\n";
      print "</tr>\n";
      print "<tr valign=\"top\">\n";
      print "<td>\n";
      print "<hr size=\"1\">\n";
      print "</td>\n";
      print "</tr>\n";
}

print "<tr>\n";
print "<td bgcolor=\"#CCCCFF\">";
print "<font size=\"2\" face=\"Times New Roman\">End of
tb_contact</font>";
print "</td>\n";
print "</tr>\n";
print "</table>\n";
print "<br>\n";
print "</div><br>\n";
print "</table>\n";

mysql_close($link);

?>



[direct=http://www.siamplating.com/]Plating Equipment[/direct]

kennn

ปัญหาน่าจะมาจาก Form ส่งข้อมูลครับ ตัวแปรรับ-ส่ง ค่าอาจไม่ตรงกัน ยังไงลองเอาโค้ดหน้า Form กรอกข้อมูลมาดูครับ

- insert.php (เป็นไฟล์รับค่านะครับ เพื่อเก็บค่าลงฐานข้อมูล)
[direct=https://www.strikeprofx.com/th/]StrikeProFx โบรกเกอร์ Forex ฝาก-ถอนรวดเร็ว[/direct]
[direct=https://www.strikeprofx.com/]StrikeProFx Best Forex Broker Fast Deposit&Withdraw[/direct]

kob191

อ้างถึงจาก: kennn ใน 05 กันยายน 2007, 10:46:02
ปัญหาน่าจะมาจาก Form ส่งข้อมูลครับ ตัวแปรรับ-ส่ง ค่าอาจไม่ตรงกัน ยังไงลองเอาโค้ดหน้า Form กรอกข้อมูลมาดูครับ

- insert.php (เป็นไฟล์รับค่านะครับ เพื่อเก็บค่าลงฐานข้อมูล)


code จาก from


<table width="555" border="0" align="center" cellpadding="0" cellspacing="0">
            <tr>
              <td><form action="insert.php" method="POST">
                <table cellspacing="1" cellpadding="3" width="80%" align="center" bgcolor="#ffffff" border="1">
                  <tbody>
                    <tr>
                      <td valign="top" width="34%" bgcolor="#ffff99"><span class="style122">&#3594;&#3639;&#3656;&#3629;-&#3626;&#3585;&#3640;&#3621;</span></td>
                      <td width="66%" bgcolor="#ffff99"><span class="style122">
                        <label>
                        <input type="text" NAME="name_insert" />
                        </label>
                      </span></td>
                    </tr>
                    <tr>
                      <td valign="top" bgcolor="#ffffcc"><span class="style122">&#3607;&#3637;&#3656;&#3629;&#3618;&#3641;&#3656;&#3629;&#3637;&#3648;&#3617;&#3621;&#3660;&#3586;&#3629;&#3591;&#3588;&#3640;&#3603;</span></td>
                      <td bgcolor="#ffffcc"><span class="style122">
                        <label>
                        <input type="text" NAME="email_insert" />
                        </label>
                      </span></td>
                    </tr>
                    <tr>
                      <td valign="top" bgcolor="#ffff99"><span class="style122">&#3586;&#3657;&#3629;&#3588;&#3623;&#3634;&#3617;</span></td>
                      <td bgcolor="#ffff99"><span class="style122">
                        <label>
                        <textarea name="messages_insert" rows="5" cols="25"></textarea>
                        </label>
                      </span></td>
                    </tr>
                    <tr>
                      <td valign="top" bgcolor="#ffffcc">&nbsp;</td>
                      <td bgcolor="#ffffcc"><span class="style122">
                        <label>
                        <input type="submit" value="&#3626;&#3656;&#3591;&#3586;&#3657;&#3629;&#3588;&#3623;&#3634;&#3617;" name="Submit" />
                        <input type="reset" value="&#3621;&#3610;&#3586;&#3657;&#3629;&#3588;&#3623;&#3634;&#3617;" name="Submit2" />
                        </label>
                      </span></td>
                    </tr>
                  </tbody>
                </table>
                              </form>
                </td>
            </tr>
          </table>
[direct=http://www.siamplating.com/]Plating Equipment[/direct]