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

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: insert ข้อมูลลงเว็บบอร์ดไม่ได้

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

โดย Dwight » 24/02/2012 8:14 am

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

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

โดย rangsun6342 » 24/02/2012 7:51 am

ฐานข้อมูล ตอบกระทู้ ไปตั้งฟิวฟ์ที่เก็บ $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 ไม่ได้ ต้องมาแก้โค้ดอีก

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

โดย Dwight » 23/02/2012 11:14 pm

คือผมทำ 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>";
}
?>

ข้างบน