insert ข้อมูลลงเว็บบอร์ดไม่ได้

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderator: mindphp, ผู้ดูแลกระดาน

Dwight
PHP Jr. Member
PHP Jr. Member
โพสต์: 13
ลงทะเบียนเมื่อ: 09/12/2011 9:55 am

insert ข้อมูลลงเว็บบอร์ดไม่ได้

โพสต์ที่ยังไม่ได้อ่าน โดย Dwight »

คือผมทำ workshop ระบบเว็บบอร์ด อยู่ครับ
แล้วคือว่า การ insert ข้อมูล การตั้งกระทู้ ทำได้ไม่มีปัญหา
การโชว์กระทู้ก็ทำได้ไม่มีปัญหา
แต่ติดอยู่ที่ว่า พอไปตอบกระทู้ มันสามารถตอบได้แค่ อันเดียว พอจะตอบอีก กลับ ไม่ได้
ช่วยตรวจสอบทีครับ

นี่คือ show_detail.php สำหรับโชว์ข้อมูลกระทู้

โค้ด: เลือกทั้งหมด

<?
     $link = mysql_connect("localhost", "root", "lorenciaz");
     mysql_query("Use webboard;");

     function renHTML($strTemp)
     {
         $strTemp = nl2br(htmlspecialchars($strTemp));
         return $strTemp;

     }

     $sql="select * from question where qno='{$_GET['item']}'";
     $result = mysql_query($sql) or die("Error"); 
     $dbarr = mysql_fetch_array($result);

?>

คำถาม<br>
<?
    echo renHTML($dbarr['qtopic']);
?>

</br><br>

<table width="100%" border="1" bgcolor="#E0E0E0" bordercolor="black">
<tr>
<td>
<?
    echo renHTML($dbarr['qdetail']);
?>
<br>
โดย
<b>
<?
    echo renHTML($dbarr['qname']);

?>
</b>
</td>
</tr>
</table>
<br>
<?
$sql = "select * from answer where aquestionno='{$_GET['item']}'";
     $result = mysql_query($sql);
     if ($result)
     {
         while ($dbarr = mysql_fetch_array($result))
        {
?>
คำตอบที่
<b>
<?
     echo $dbarr['ano'];
?>
</b>
<br>
<table width="100%" border="1">
<tr>
<td>
<?
     echo renHTML($dbarr['adetail']);
?>
<br>
โดย<b>
<?
     echo renHTML($dbarr['aname']);
?>
</b>
</td>
</tr>
</table>
<br>

<?
    }
}
echo "<form method=post action=add_answer.php?answerno=".$item.">";
mysql_close($link);
?>
คำตอบ :
<br>
<textarea cols="40" rows="5" name="a_answer">
</textarea>
<br>
ชื่อ : <input type="text" name="a_name" size="30">
<br><br>
<input type="submit" value="ส่งคำตอบ">&nbsp;
<input type="reset" value="ยกเลิก">
</form>
และนี่คือ add_answer.php สำหรับตอบกระทู้

โค้ด: เลือกทั้งหมด

<?
$link = mysql_connect("localhost", "root", "lorenciaz");
mysql_query("use webboard;");

$sql = "select * from answer where aquestionno=$answerno;";
$count = 1;
$result = mysql_query($sql);
while ($dbarr = mysql_fetch_array($result))
{
    $count++;
}

$sql = "insert into answer values ($answerno, $count, '$a_answer', '$a_name');";
$result = mysql_query($sql) or die("Error");
if ($result)
{
    $sql = "update question set qcount=qcount+1 where qno=$answerno;";
    $result = mysql_query($sql); echo "คำตอบถูกบันทึกลงสู่ฐานข้อมูลแล้ว<br><br>";
    echo "<a href=show_detail.php?item=$answerno>กลับไปยังกระทู้</a><br>";
    echo "<a href=show_question.php>หน้าหลักของเว็บบอร์ด</a>";
}
else
{
    echo "ไม่สามารถบันทึกคำตอบลงสู่ฐานข้อมูลได้ กรุณาตรวจสอบ<br>";
    echo "<a href=show_detail.php?item=$answerno>กลับไปยังกระทู้</a><br>";
    echo "<a href=show_question.php>หน้าหลักของเว็บบอร์ด</a>";
}
?>
แก้ไขล่าสุดโดย Dwight เมื่อ 04/04/2012 10:46 am, แก้ไขไปแล้ว 1 ครั้ง.
rangsun6342

Re: รบกวนช่วยทีครับ

โพสต์ที่ยังไม่ได้อ่าน โดย rangsun6342 »

ฐานข้อมูล ตอบกระทู้ ไปตั้งฟิวฟ์ที่เก็บ $answerno เป็น primarykey ป่าวคับ เำพราะถ้าเป็น มันจะลงได้ครั้งเดียว มันผิดกฏของ primarykey

และแนะนำอีกอย่าง ตรง

$sql = "insert into answer values ($answerno, $count, '$a_answer', '$a_name');";

ควรระบบฟิวฟ์ที่จะเก็บให้ถูกต้อง

$sql = "insert into answer (????,?????,?????,?????) values ($answerno, $count, '$a_answer', '$a_name');";

เพราะถ้าอนาคตข้างหน้ามีการปรับเปลี่ยนฐานข้อมูล จะทำให้ insert ไม่ได้ ต้องมาแก้โค้ดอีก
Dwight
PHP Jr. Member
PHP Jr. Member
โพสต์: 13
ลงทะเบียนเมื่อ: 09/12/2011 9:55 am

Re: รบกวนช่วยทีครับ

โพสต์ที่ยังไม่ได้อ่าน โดย Dwight »

ขอบคุณมากครับ ขอบคุณจริงๆ ตอนแรก็สงสัยนานแล้วว่าเกี่ยวที่ database ไหม แต่ก็ยัง งงๆ
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 128