ทำเว็บบอร์ด ถ้าสมาชิกมาโพสจะเป็นชื่อสมาชิก บุคคลทั่วไปเป็น guest
ถ้ายังไม่มีคนตอบเดี๋ยวคืนนี้มาละเลงช่วย
Date :
2009-07-09 14:42:20
By :
plakrim
ู^
^
^
ขอบคุณนะคะ คือตอนนี้มึน งง มากๆเลย
Date :
2009-07-09 15:18:22
By :
SG14
ผมเขียนตัวอย่าง question ให้แล้วกันนะครับ
เพิ่ม reg_id ใน tb_question ให้ allow null นะครับ
เวลา insert ถ้ามีการ login ให้เก็บ session ของ id ใน tbregister นะครับ
แล้วยิง session นั้นลงในฟิลดิ์ reg_id แต่ถ้าไม่มีการ login ไม่ต้องยิงหรือว่าใส่ null เข้าไปครับ
จากนั้น ผมเขียน query ของ question ให้ดูละกัน
SELECT
tb_question.*,
CASE WHEN tb_question.reg_id IS NULL THEN 'Guest' ELSE tbregister.username END AS Poster
FROM
tb_question
LEFT OUTER JOIN tbregister ON tbregister.id = tb_question.reg_id
เมื่อแสดงชื่อคนโพสต์ให้ใช้ฟิลด์ Poster แทนนะครับ
หวังว่าจะไม่งง และนำไปปรับแต่งกับ answer ได้นะครับ
Date :
2009-07-09 22:47:58
By :
plakrim
ขอบคุณคะจะลองทำดูนะคะ
Date :
2009-07-10 10:33:23
By :
SG14
เวลา insert ถ้ามีการ login ให้เก็บ session ของ id ใน tbregister นะครับ
แล้วยิง session นั้นลงในฟิลดิ์ reg_id แต่ถ้าไม่มีการ login ไม่ต้องยิงหรือว่าใส่ null เข้าไปครับ
คือการเก็บข้อมูลลง session แล้ว add ข้อมูลลงใน database รึเปล่าคะแบบว่าไม่เคยเขียน
แล้วโค๊ดนี้ทำในหน้าโค๊ดที่ให้มาหรือหน้าเซฟ
รู้สึกเกรงใจพี่จริงๆเลยนะคะ ยังไงชี้แนะด้วยนะคะ พอดีเพิ่งเริ่มศึกษาบางฟังก์ชั่นยัง งงๆ อ่านไม่ออกเลยคะ
หน้า question_save.php
Code (PHP)
<?php
<?
include "function.php";
$title_ques=$_POST[title_ques];
$detail_ques=$_POST[detail_ques];
$name_ques=$_POST[name_ques];
$email_ques=$_POST[email_ques];
$ref_id=$_POST[ref_id];
if ($title_ques=="" or $detail_ques=="" or $name_ques=="" or $email_ques=="") {
echo "<script language='javascript'>alert('Please input or required information.(กรุณากรอกข้อมูลให้ครบ)');history.back();</script> ";
}
if (!checkemail($email_ques)) {
echo "<script language='javascript'>alert('Invalid Email format.(รูปแบบอีเมลล์ไม่ถูกต้อง)');history.back();</script> ";
}
$date_ques=date("y-m-d");
include "connectdb.php";
$sql="INSERT INTO tb_question VALUES (' ','$title_ques','$detail_ques','$name_ques','$email_ques','$date_ques','$ref_id')";
$result=mysql_query($sql);
if ($result) {
echo "<p class='red2'>Your topic has been created.(ตั้งกระทู้ในกระทู้คำถาม-ตอบได้แล้ว)</p>";
echo "<meta http-equiv='refresh' content='2; url=service.php' />";
}else {
echo "<p class='red2'>Unable to create new topic.(ไม่สามารถตั้งกระทู้ใหม่ได้)</p>";
echo "<meta http-equiv='refresh' content='2; url=service.php' />";
}
?>
?>
Date :
2009-07-10 14:12:20
By :
SG14
คือการเก็บข้อมูลลง session แล้ว add ข้อมูลลงใน database รึเปล่าคะ
ตอบว่าใช่ครับ โดย session ตัวนั้นเก็บ id ของ user ที่เพิ่งล็อกอินไว้ ต้องดูด้วยว่าน้องได้เก็บไว้หรือเปล่า
Date :
2009-07-10 22:33:41
By :
plakrim
ขอบคุณมากๆนะคะที่แนะนำ
วันนี้นั่งทำยังไม่ได้เลย TT ไม่รู้จะจับไปใส่ในไหน
Date :
2009-07-10 23:21:30
By :
SG14
ผมว่าผมอธิบายพอใช้ได้แล้วนะ
1. ล็อกอินเข้ามา เก็บ id ของ table tbregister ของ user คนนั้น (user id นั่นแหละ) ใส่ $_SESSION["onlineid"];
การตั้งกระทู้
กรณีคนล็อกอิน insert $_SESSION["onlineid"] ในฟิลด์ reg_id ของ table tb_question ที่ผมให้เพิ่มเข้าไป
กรณีไม่ล็อกอิน insert NULL ในฟิลด์ reg_id ของ table tb_question ที่ผมให้เพิ่มเข้าไป หรือไม่ใส่ก็ได้ เพราะฟิลด์ reg_id ผมบอกให้ set allow null ดังนั้น default
จากนั้นการแสดงหัวข้อกระทู้ใช้ query ของ No. 3 ที่ผมบอกไว้
ส่วนการแสดงความคิดเห็นในกระทู้ answer นั่นแหละ ทำเหมือนๆ กัน
ลองทำความเข้าใจดูก่อนนะครับ พยายามช่วยเหลือตัวเองก่อน
Date :
2009-07-11 00:28:44
By :
plakrim
เพ่ PlaKriM สู้ครับ จะได้ศึกษาต่อจากทั้ง 2 ท่าน เรื่อง เว็บบอร์ดนี้ยังไม่ได้ศึกษาเลย อิอิอิ
Date :
2009-07-11 11:02:55
By :
somparn
ขอบคุณมากๆเลยนะคะ
ตอนนี้ เขียนออกมาแล้วแต่ ไม่รู้ว่าจะไปใส่ไว้ตรงไหนของหน้าเพจ ที่พี่อธิบายมาให้ลงเพจ answer_view.php อย่างเดียวรึเปล่าคะ ในหน้าของ answer_view.php เป็นหน้าที่แสดงข้อความที่ตั้งกระทู้รวมทั้งตอบ
แล้วจะมีหน้า question_save.php (rep5) มันเป็นตัวเก็บค่า แล้วทีนี้
ใส่ไว้บนสุดของเพจในไฟล์answer_view.php แต่ไม่แน่ใจว่าถูกหรือไม่
Code (PHP)
<?php
<? session_start();
if(isset($_SESSION["username"])){
$sess_id=$_SESSION["onlineid"];
$sess_username=$_SESSION["username"];
}
?>
?>
ต่อมาตรงที่พี่แนะนำตรงinsert ไม่แนใจว่าเขียนถูกไหม แล้วจะเอาไปแทรกไว้ตรงไหนอ่าคะ ตอนนี้ใส่ไว้หน้ารับค่า question_save.php แต่มันฟ้องเออเรอร์
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\Worldtext\answer_view.php on line 74
คาดว่า ใส่ผิดที่ไม่ก็โค๊ดผิดแน่ๆ เพราะค่าที่เรารับเช่น ชื่อ อีเมลล์ไม่ปรากฏออกมา
Code (PHP)
<?php
if(isset($_SESSION["id"])){
$sql2="INSERT INTO tbregister ('$ref_id') VALUES ($_SESSION['onlineid'])";
mysql_query($sql2);
}else{
$sql2="INSERT INTO tbregister ('$ref_id') VALUES (null)";
mysql_query($sql2);
}
?>
Date :
2009-07-13 11:00:35
By :
SG14
ตอนนี้ในไฟล์ answer_view.php
เป็นแบบนี้คะ
ใส่บนสุดของเพจ
Code (PHP)
<?php
<? session_start();
if(isset($_SESSION["username"])){
$sess_id=$_SESSION["onlineid"];
$sess_username=$_SESSION["username"];
}
?>
?>
ตรงบอดี้คะ
Code (PHP)
<?php
include "connectdb.php";
include "function.php";
$id_ques=$_GET[id_ques];
//ส่วนที่1
$sql="SELECT tb_question.*, CASE WHEN tb_question.reg_id IS NULL THEN 'Guest' ELSE tbregister.username END AS Poster
FROM tb_question LEFT OUTER JOIN tbregister ON tbregister.id = tb_question.reg_id";
//$sql="SELECT * FROM tb_question WHERE id_ques='$id_ques'";
$result=mysql_query($sql);
$record=mysql_fetch_array($result);
$id_ques=$record[id_ques];
$title_ques=$record[title_ques];
$detail_ques=$record[detail_ques];
$name_ques=$record[name_ques];
$email_ques=$record[email_ques];
$date_ques=$record[date_ques];
$ref_id=$record[ref_id];
$title_ques=htmlspecialchars($title_ques);
$detail_ques=wordwrap(nl2br(htmlspecialchars($detail_ques)),40,"\n",true);
$name_ques=htmlspecialchars($name_ques);
$email_ques=htmlspecialchars($email_ques);
$date_ques=displaydate($date_ques);
echo"
<table width='480' border='1' align='center' cellpadding='0' cellspacing='0' bordercolor='#dadada' style='border-style:dotted'>
<tr >
<td width='480' bgcolor='#90ccff' class='style16'><table width='480' cellspacing='0' bordercolor='#FFFFFF'>
<tr>
<td width='480' bgcolor='#f2f2f2' class='style16'><h3>$title_ques</h3></td>
</tr>
<tr>
<td bgcolor='#f2f2f2' width='480' class='style16'>$detail_ques</td>
</tr>
<tr>
<td background='images/navbar.gif' width='480' class='style14'><b class='style16'>By : </b> $name_ques
<b class ='red'>$username</b>
<b class='style16'>Email : </b>$email_ques
<b class='style16'>Date : </b>$date_ques
</td>
</tr>
</table></td>
</tr>
</table><br>";
?>
Date :
2009-07-13 11:02:50
By :
SG14
ในหน้า ของquestion_save.php
ใส่บนสุดของเพจ
Code (PHP)
<?php
<? session_start();
if(isset($_SESSION["username"])){
$sess_id=$_SESSION["onlineid"];
$sess_username=$_SESSION["username"];
}
?>
?>
ตรงบอดี้คะ
Code (PHP)
<?php
<?
include "function.php";
$title_ques=$_POST[title_ques];
$detail_ques=$_POST[detail_ques];
$name_ques=$_POST[name_ques];
$email_ques=$_POST[email_ques];
$ref_id=$_POST[ref_id];
if ($title_ques=="" or $detail_ques=="" or $name_ques=="" or $email_ques=="") {
echo "<script language='javascript'>alert('Please input or required information.(กรุณากรอกข้อมูลให้ครบ)');history.back();</script> ";
}
if (!checkemail($email_ques)) {
echo "<script language='javascript'>alert('Invalid Email format.(รูปแบบอีเมลล์ไม่ถูกต้อง)');history.back();</script> ";
}
$date_ques=date("y-m-d");
include "connectdb.php";
if(isset($_SESSION["id"])){
$sql2="INSERT INTO tbregister ('$ref_id') VALUES ($_SESSION['onlineid'])";
mysql_query($sql2);
}else{
$sql2="INSERT INTO tbregister ('$ref_id') VALUES (null)";
mysql_query($sql2);
}
$sql="INSERT INTO tb_question VALUES (' ','$title_ques','$detail_ques','$name_ques','$email_ques','$date_ques','$ref_id')";
$result=mysql_query($sql);
if ($result) {
echo "<p class='red2'>Your topic has been created.(ตั้งกระทู้ในกระทู้คำถาม-ตอบได้แล้ว)</p>";
echo "<meta http-equiv='refresh' content='2; url=service.php' />";
}else {
echo "<p class='red2'>Unable to create new topic.(ไม่สามารถตั้งกระทู้ใหม่ได้)</p>";
echo "<meta http-equiv='refresh' content='2; url=service.php' />";
}
?>
?>
รบกวนชี้แนะอีกรอบด้วยนะคะ ตอนนี้ ก็มั่วๆไปเรื่อยๆ
Date :
2009-07-13 11:05:49
By :
SG14
มึนโค๊ดอะ ทิ้งเมล์ไว้ครับ ว่างๆ จะไปช่วย
Date :
2009-07-13 14:14:07
By :
plakrim
หายไปนาน คือไปทำ ส่วนแบ่งหน้าก่อนอะคะ
ตอนนี้โค๊ด No. 3 ที่พี่ให้มาลองquery แล้วใช้ได้คะ พอดีตอนนั้นสร้างฟิลด์ ผิด
เอาเป็นว่าพี่รบกวนเช็คโค๊ดที่เขียนว่าถูกไหมนะคะ
ล็อกอินเข้ามา เก็บ id ของ table tbregister ของ user คนนั้น (user id นั่นแหละ) ใส่ $_SESSION["onlineid"];
Code (PHP)
<?php
session_start();
if(isset($_SESSION["username"])){
$sess_id=$_SESSION["onlineid"];
$sess_username=$_SESSION["username"];
}
?>
การตั้งกระทู้
กรณีคนล็อกอิน insert $_SESSION["onlineid"] ในฟิลด์ reg_id ของ table tb_question ที่พี่ให้เพิ่มเข้าไป
Code (PHP)
<?php
if(isset($_SESSION["id"])){
$sql2="INSERT INTO tbregister ('$ref_id') VALUES ($_SESSION['onlineid'])";
mysql_query($sql2);
}
?>
กรณีไม่ล็อกอิน insert NULL ในฟิลด์ reg_id ของ table tb_question ที่ผมให้เพิ่มเข้าไป หรือไม่ใส่ก็ได้ เพราะฟิลด์ reg_id ผมบอกให้ set allow null ดังนั้น default
Code (PHP)
<?php
else{
$sql2="INSERT INTO tbregister ('$ref_id') VALUES (null)";
mysql_query($sql2);
}
?>
Date :
2009-07-16 10:29:10
By :
SG14
น้องคงงงอะนะ ไม่ต้อง insert อะไรใส่ tbregister เลยครับ ที่ให้ insert คือ question กับ answer แล้วที่บอกให้เก็บ login_id ของคนที่ล็อกอินไว้ เพื่อจะ insert ลง question กับ answer นี่แหละ ถ้าไม่ล็อกอินก็ insert null ลง question หรือ answer ที่เขาตอบหรือตั้งกระทู้
Date :
2009-07-16 15:44:47
By :
plakrim
ขออนุญาติดัน เดี๋ยวถ้าไม่เข้าใจจริงๆจะทิ้งเมลล์ให้นะคะ แต่ขอความกรุณา พี่รบกวนแก้แล้วก็ดูโค๊ด ด้านบนให้ทีนะคะ
มึนๆ
Date :
2009-07-16 16:11:42
By :
SG14
อ่าเพิ่งมาเห็นสงสัยตอนพิมพี่ยังไม่มาโพส เหะ ๆ เดี๋ยวลองทำก่อนนะคะ งงจริงๆละ
Date :
2009-07-16 19:31:00
By :
SG14
พี่รบกวน บอกทีนะคะว่า หนูเข้าใจอะไรผิดไปรึเปล่า ถ้าโค๊ดผิด รบกวนพี่ช่วยแก้ทีนะคะ ลองเขียน answerก่อนนะคะ
สรุปก็คือ เขียน เก็บ ไอดีคนที่ล๊อคอินมา เอาไว้บนสุดของเพจในหน้า answer_view.php คือหน้าที่จะนับ recordออกมาแสดงในบอร์ด
เขียนได้แบบนี้อะคะ
Code (PHP)
<?php
<? session_start();
$id=$_SESSION["onlineid"];
?>
?>
เวลาinsert ค่า ก็เขียนโค๊ด ที่ไฟล์ answer_save.php คือหน้าที่รับค่าต่างๆจากฟอร์ม
โดยใส่โค๊ดนี้ไว้บนสุดของเพจ
Code (PHP)
<?php
session_start();
?>
ส่วนบอดี้ ก็insert ค่า
Code (PHP)
<?php
if($id){
include "connectdb.php";
$sql="INSERT INTO tb_answer VALUES ('','$detail_ans','$name_ans','$email_ans','$date_ans','$ref_id','$id')";
$result=mysql_query($sql);
if ($result) {
echo "<p class='red2'>Thank you for your comment.(บันทึกคำตอบเรียบร้อยแล้ว)</p>";
echo "<meta http-equiv='refresh' content='3; url=service.php' />";
}else {
echo "<p class='red2'>Unable to create new topic.(ไม่สามารถตอบคำถามได้)</p>";
echo "<meta http-equiv='refresh' content='2; url=service.php' />";
}
}else{
include "connectdb.php";
$sql="INSERT INTO tb_answer VALUES ('','$detail_ans','$name_ans','$email_ans','$date_ans','$ref_id',null)";
$result=mysql_query($sql);
if ($result) {
echo "<p class='red2'>Thank you for your comment.(บันทึกคำตอบเรียบร้อยแล้ว)</p>";
echo "<meta http-equiv='refresh' content='3; url=service.php' />";
}else {
echo "<p class='red2'>Unable to create new topic.(ไม่สามารถตอบคำถามได้)</p>";
echo "<meta http-equiv='refresh' content='2; url=service.php' />";
}
}
?>
สงสับมีแวว กระทู้นี้ตอบทะลุยอดแน่ๆ
รบกวนพี่ดูให้ทีนะคะ
ยังไงก็ขอบคุณพี่มากๆเลยนะคะที่สละเวลามาช่วยดูให้ ยังไงก็จะพยายามทำให้ได้นะคะ
Date :
2009-07-16 21:22:33
By :
SG14
เอาทีละอย่างนะ ผมว่าเอาโค๊ดหน้า login มาดูก่อนว่าเก็บ session แบบไหน เดี๋ยวดูให้
พอเก็บ id ลง session ได้แล้ว เดี๋ยวค่อยมาต่อกัน
Date :
2009-07-16 21:27:51
By :
plakrim
อ่อ คะ อิอิ เหมือนเรียน ตัวต่อตัวเลย ยังไงก็ขอบคุณพี่มากๆนะคะ
หน้าlogin คะ
Code (PHP)
<?php
<?
include "connectdb.php";
$username = $_POST["text1"];
$password = $_POST["text2"];
$result = mysql_query("select * from tbregister where username = '$username' and password='$password'");
if(mysql_num_rows($result)==0){
echo "<p class='red2'>Invalid username or password.(username หรือ password ผิดพลาด)";
echo "<meta http-equiv='refresh' content='3; url=home.php' />";
}
else{
$row = mysql_fetch_array($result);
$_SESSION["id"]=$row[id];
$_SESSION["username"] = $row[username];
$_SESSION["firstname"] = $row[firstname];
echo "<p class='style16'> Welcome" .' '. $_SESSION["firstname"];
echo "<meta http-equiv='refresh' content='3; url=service.php' />";
}
mysql_close($link);
?>
?>
Date :
2009-07-16 22:14:18
By :
SG14
โอเค focus ที่ $_SESSION["id"] นะ ต่อมาหน้า save ตั้งกระทู้หรือตอบกระทู้
Code (PHP)
<?php
session_start();
include "connectdb.php";
$reg_id = (isset($_SESSION["id"]))? $_SESSION["id"] : "NULL";
$sql="INSERT INTO tb_answer VALUES ('','$detail_ans','$name_ans','$email_ans','$date_ans','$ref_id'," . $reg_id . ")";
$result=mysql_query($sql);
if($result){
echo "<p class='red2'>Thank you for your comment.(บันทึกคำตอบเรียบร้อยแล้ว)</p>";
echo "<meta http-equiv='refresh' content='3; url=service.php' />";
}else{
echo "<p class='red2'>Unable to create new topic.(ไม่สามารถตอบคำถามได้)</p>";
echo "<meta http-equiv='refresh' content='2; url=service.php' />";
}
?>
Date :
2009-07-16 22:44:21
By :
plakrim
คือ เอาโค๊ดไปแปะ หน้า save ตั้งกระทู้หรือตอบกระทู้ นะคะ
สงสัยคือ <? session_start(); ?>ใส่ไว้บรรทัดบนสุดได้ใช่ไหมคะ แทนที่ session_start(); บน include
Date :
2009-07-16 23:06:23
By :
SG14
คือเอาไว้ยังไงก็ได้ให้มันอยู่บรรทัดแรกอะ
ไม่ว่าจะตั้งหรือตอบ ให้เช็คแค่นี้ครับ $reg_id = (isset($_SESSION["id"]))? $_SESSION["id"] : "NULL";
แล้ว field reg_id ใส่ $reg_id เข้าไป
Date :
2009-07-16 23:08:56
By :
plakrim
อ่า สรุปก็คือไฟล์ที่พี่ให้มาถ้าใน question ก็เปลี่ยนแค่ tb_answer ละก็ values ใช่ไหมคะ
Date :
2009-07-16 23:23:11
By :
SG14
ประมาณนั้น ลองดู
Date :
2009-07-16 23:38:17
By :
plakrim
หลังจากนั้น ในไฟล์ answer_view.php ที่เป็นไฟล์แสดงหน้ากระทู้
<? session_start(); ?> ไว้บนสุด
แล้วก็ query ตามที่พี่บอก อันนี้คือส่วนแสดง หัวข้อกระทู้
SELECT
tb_question.*,
CASE WHEN tb_question.reg_id IS NULL THEN 'Guest' ELSE tbregister.username END AS Poster
FROM
tb_question
LEFT OUTER JOIN tbregister ON tbregister.id = tb_question.reg_id
ก็จะได้
Code (PHP)
<?php
include "connectdb.php";
$id_ques=$_GET[id_ques];
$sql="SELECT tb_question.*, CASE WHEN tb_question.reg_id IS NULL THEN 'Guest' ELSE tbregister.username END AS Poster FROM tb_question LEFT OUTER JOIN tbregister ON tbregister.id = tb_question.reg_id";
$result=mysql_query($sql);
$record=mysql_fetch_array($result);
$id_ques=$record[id_ques];
$title_ques=$record[title_ques];
$detail_ques=$record[detail_ques];
$name_ques=$record[name_ques];
$email_ques=$record[email_ques];
$date_ques=$record[date_ques];
$reg_id=$record[reg_id];
$title_ques=htmlspecialchars($title_ques);
$detail_ques=wordwrap(nl2br(htmlspecialchars($detail_ques)),40,"\n",true);
$name_ques=htmlspecialchars($name_ques);
$email_ques=htmlspecialchars($email_ques);
$date_ques=displaydate($date_ques);
echo "ตารางหัวข้อกระทู้ตามปกติ";
?>
Date :
2009-07-16 23:40:48
By :
SG14
แล้วทำอย่างไรถึงจะโชว์ ชื่อได้อะคะ
Date :
2009-07-17 00:03:59
By :
SG14
Code (PHP)
<?php
echo $record("poster");
?>
จะได้มั้ยครับ?
Date :
2009-07-17 00:19:07
By :
mr.v
answer_view.php คือสำหรับทำอะไร แสดงชื่อกระทู้แล้วคลิกเข้าไปดูรายละเอียด หรือว่า หน้าแสดงความคิดเห็นกระทู้ งง
เหมือนจะให้เขียนให้ใหม่เลย เง้อ แล้วกระทู้แบบเดิมเขียนแบบไหน แค่เปลี่ยน sql ตามที่พี่บอก ของ question ก็ใช้ tb_question ของ answer ก็ใช้ tb_answer แล้ว where ด้วย id_ques ใช่ไหม
อันนี้หน้าแสดงหัวข้อกระทู้
SELECT tb_question.*, CASE WHEN tb_question.reg_id IS NULL THEN 'Guest' ELSE tbregister.username END AS poster FROM tb_question LEFT OUTER JOIN tbregister ON tbregister.id = tb_question.reg_id
อันนี้หน้าแสดงหัวข้อกระทู้
SELECT tb_answer.*, CASE WHEN tb_answer.reg_id IS NULL THEN 'Guest' ELSE tbregister.username END AS poster FROM tb_answer LEFT OUTER JOIN tbregister ON tbregister.id = tb_answer.reg_id WHERE tb_answer.id_ques = $ตัวแปร id ของกระทู้ที่ส่งมา
ส่วนแสดงชื่อสมาชิกหรือ guest ยังไง ใช้ $record[poster];
หวังว่าจะทำความเข้าใจได้นะ
Date :
2009-07-17 00:23:54
By :
plakrim
echo $record(\"poster\"); เอาไปใส่ หลัง $name_ques แล้วไม่ได้อะคะ มัน ออกเป็น
ชื่อที่กรอกเข้าไปตอนตั้งกระทู้ echo Array("poster");
<td background='images/navbar.gif' width='480' class='style14'><b class='style16'>By : </b> $name_ques
<b class='red'><? echo $record(\"poster\"); ?></b> <<<<< ถ้าเอา <? ?> ออกก็จะไม่แสดงอะไรเลย
<b class='style16'>Email : </b>$email_ques
<b class='style16'>Date : </b>$date_ques
</td>
Date :
2009-07-17 00:30:00
By :
SG14
คือ answer_view มันจะแสดง ทั้งหัวข้อทู้และคำตอบ แบบหน้านี้เลยอะคะ
Date :
2009-07-17 00:34:24
By :
SG14
$record("poster");
คือ answer_view มันจะแสดง ทั้งหัวข้อทู้และคำตอบ แบบหน้านี้เลยอะคะ
ถ้างั้นก็ใช้
SELECT tb_answer.*, CASE WHEN tb_answer.reg_id IS NULL THEN 'Guest' ELSE tbregister.username END AS poster FROM tb_answer LEFT OUTER JOIN tbregister ON tbregister.id = tb_answer.reg_id WHERE tb_answer.id_ques = $ตัวแปร id ของกระทู้ที่ส่งมา
ผมนอนละครับ ไว้ถ้ายังไม่ได้เดี๋ยวมาสร้างกระทู้มหากาพย์กันใหม่
Date :
2009-07-17 00:38:23
By :
plakrim
ขอบคุณพี่มากๆนะคะ ที่ช่วยเหลือตลอด
ตอนนี้ เหลือ tb_answer
SELECT tb_answer.*, CASE WHEN tb_answer.reg_id IS NULL THEN 'Guest' ELSE tbregister.username END AS poster FROM tb_answer LEFT OUTER JOIN tbregister ON tbregister.id = tb_answer.reg_id WHERE tb_answer.id_ques = $ref_id
ตรง WHERE tb_answer.id_ques เข้าใจว่า id_ques ใน tb_answer ซึ่งมันไม่มีอะคะ แล้วเปลี่ยนเป็น id_ans ก็เออเรอร์
Date :
2009-07-17 00:50:02
By :
SG14
อะก่อนนอน เปลี่ยนเป็น ref_id ไม่ใช่ id_ans
Date :
2009-07-17 01:00:58
By :
plakrim
ราตรีสวัสดิ๋นะคะ พี่PlaKriM
ทิ้งเออเรอร์
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\Worldtext\answer_view.php on line 116
Date :
2009-07-17 01:01:23
By :
SG14
WHERE tb_answer.ref_id = $ref_id
ใน tb_answer
$ref_id อันนี้ไว้เชื่อมกับ tb_question ว่าเราตอบกระทู้ที่เท่าไร
$reg_id ไว้เชื่อมกับ tbregister
แบบนี้ก็ต้องเป็น WHERE tb_answer.ref_id = $ref_id
รึเปล่าคะหรือเราคิดผิด ถ้าเป็นแบบนี้ก็เออเรอร์นะคะ
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\Worldtext\answer_view.php on line 116
Date :
2009-07-17 01:09:48
By :
SG14
error แบบนั้นก็แสดงว่า sql command ผิด
debug ด้วย mysql_query($sql) or die("Error : " $sql . "<br>" . mysql_error()); แล้วจะรู้ว่ามันผิดยังไง ผิดตรงไหน
Date :
2009-07-17 11:09:27
By :
plakrim
Parse error: syntax error, unexpected T_VARIABLE in C:\AppServ\www\Worldtext\answer_view.php on line 114
Code (PHP)
<?php
$sql="SELECT tb_answer.*, CASE WHEN tb_answer.reg_id IS NULL THEN 'Guest' ELSE tbregister.username END AS poster FROM tb_answer LEFT OUTER JOIN tbregister ON tbregister.id = tb_answer.reg_id WHERE tb_answer.ref_id = $ref_id";
$result=mysql_query($sql) or die("Error : " $sql . "<br>" . mysql_error()); <<<<บรรทัด114
while($record=mysql_fetch_array($result))
?>
Date :
2009-07-17 12:17:38
By :
SG14
$result=mysql_query($sql) or die("Error : " . $sql . "<br>" . mysql_error());
พิมพ์ตก
Date :
2009-07-17 12:56:15
By :
plakrim
อ่ะคะ ขอไปนั่งมอง error ก่อนนะ ได้ไม่ได้ยังไง จะมาแจ้งให้ทราบ
Date :
2009-07-17 13:12:59
By :
SG14
ขอโทษนะคะ คือสงสัยตรง
WHERE tb_answer.ref_id = $ตัวแปร id ของกระทู้ที่ส่งมา
ตรงตัวแปร id ของกระทู้ที่ส่งมา ถ้าใช้ $ref_id มันจะแจ้งว่า
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 ซึ่งline1 มันก็syntax คล้ายๆกับ ตรงquestion หรือว่าเราเข้าใจผิดเอง
แต่ถ้า ตรงตัวแปร id ของกระทู้ที่ส่งมา ถ้าใช้ $id_ques มันจะไม่ขึ้นในส่วนของคำตอบเลย ส่วนตัวคิดว่าไม่ได้ join tb_question
หรือว่า เราใช้ $ตัวแปร id ของกระทู้ที่ส่งมา ผิดคะ
รบกวนชี้แนะด้วยนะคะ T-T
Date :
2009-07-17 13:33:03
By :
SG14
คืองี้ครับ ต้องส่ง id_ques มาเพื่อ ลิงค์ก้บ ref_id ใช่ไหมให้รู้ว่าจะเอาคำตอบของกระทู้ไหน
Date :
2009-07-17 13:34:55
By :
plakrim
ขอบคุณนะคะพี่
ตอนนี้ หัวข้อกระทู้ มันแยกให้ได้แล้วนะคะว่า ใครเป็นสมาชิก ใครเป็น guest แต่ ในส่วนแสดงคำตอบมันไม่แสดงคำตอบที่โพสมาเลย
SELECT tb_answer.*, CASE WHEN tb_answer.reg_id IS NULL THEN 'Guest' ELSE tbregister.username END AS poster FROM tb_answer LEFT OUTER JOIN tbregister ON tbregister.id = tb_answer.reg_id WHERE tb_answer.ref_id = '$ref_id' order by id_ans
เดี๋ยวขอลองอีกนิด1นะคะ
Date :
2009-07-17 13:42:47
By :
SG14
ขอโทษนะคะ โพสแล้วมองไม่เห็น
คืองี้ครับ ต้องส่ง id_ques มาเพื่อ ลิงค์ก้บ ref_id ใช่ไหมให้รู้ว่าจะเอาคำตอบของกระทู้ไหน
ใช่ค่ะๆ
Date :
2009-07-17 13:48:15
By :
SG14
เสริมๆนะคะ คือ ref_id ของtb_answer จะเก็บเลขคำถามid_ques
เพื่อเราอธิบายงงๆนะคะ
id_ques เก็บ1 คือกระทู้ที่1
แล้ว ref_id ของtb_answer จะเก็บ 1เพื่อให้ทราบว่า เป็นคำตอบของ กระทู้ที่ 1
Date :
2009-07-17 13:57:36
By :
SG14
นั่นแหละครับ คือ $ตัวแปร id ของกระทู้ที่ส่งมา
Date :
2009-07-17 14:09:20
By :
plakrim
อ่าได้แล้วคะ พอดีลืมล๊อคอินโพส
ขอบคุณพี่มากๆเลยนะคะ ที่สละเวลามาช่วย
Date :
2009-07-17 14:23:58
By :
SG14
เย้ๆๆๆๆๆๆๆ แก้ปัญหาที่มองไม่เห็นได้แล้ว
Date :
2009-07-17 15:58:35
By :
plakrim
ห้องเรียนห้องนี้จบแล้วหรือครับผมติดตามมาโดยตลอด
เดียวขอเก็บเกี่ยวความรู้ตรงนี้ไปประดับสมองอันน้อยๆของเราดีกว่า
เพ่ PlaKriM นี้สุดยอดจริงๆ ถ้าอยู่ใกล้นะจะเลี้ยงหมูกะทะสักชุดใหญ่เลย
Date :
2009-07-18 11:55:02
By :
somparn
พี่เค้าช่วยแบบสุดๆไปเลยนะ
ขอนำความรู้นี้ไปใช้บ้างนะค่ะ
ขอบคุณค่ะ
Date :
2009-07-19 09:40:26
By :
deeja
^
^
^
คุณ เขียนเองหมดเลยหรอคะ site map นี่มีวิธีอย่างไร
ปล.เริ่มคุ้ยประเด็น อีกแล้วเรา 55
Date :
2009-07-19 19:23:17
By :
SG14
เขียนเองหมดครับ
เดี่ยวพอถึงเวอร์ชั่น 1.0 จะมาแจก
ตอนนี้ ยัง เวอร์ 0.1 beta อยู่เลย ๕๕๕+
Date :
2009-07-19 20:07:23
By :
danya
ไปช่วยเจิมแล้ว จาก 0.1 โดดไป 0.9 เลยนะ เห็นโปรแกรมเดี๋ยวนี้เค้าทำแบบนั้นกัน เช่น ff ของผม
Date :
2009-07-19 20:13:51
By :
plakrim
นี่ตารางฐานข้อมูลอะ
Code (PHP)
<?php
-- --------------------------------------------------------
--
-- Table structure for table `post`
--
CREATE TABLE `post` (
`post_id` bigint(10) NOT NULL auto_increment,
`topic_id` int(10) default '0',
`reply_id` int(10) default '0',
`post_title` varchar(250) NOT NULL,
`post_desc` varchar(250) default NULL,
`post_content` longtext NOT NULL,
`poster_name` varchar(250) NOT NULL,
`poster_id` int(10) default '0',
`post_datetime` timestamp NOT NULL default CURRENT_TIMESTAMP,
`last_reply_datetime` timestamp NULL default NULL,
`total_reply` int(10) NOT NULL default '0',
`post_parent_id` int(10) NOT NULL default '0',
`last_poster_name` varchar(250) default NULL,
`post_bg_color` varchar(10) default NULL,
PRIMARY KEY (`post_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ;
-- --------------------------------------------------------
--
-- Table structure for table `user`
--
CREATE TABLE `user` (
`user_id` int(10) NOT NULL auto_increment,
`user_name` varchar(250) NOT NULL,
`user_nickname` varchar(250) NOT NULL,
`user_password` varchar(100) NOT NULL,
`user_email` varchar(250) NOT NULL,
`usergroup_id` int(10) NOT NULL default '2',
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
--
-- Dumping data for table `user`
--
INSERT INTO `user` VALUES (1, 'admin', 'ผุ้ดุแล', 'e10adc3949ba59abbe56e057f20f883e', '[email protected] ', 1);
-- --------------------------------------------------------
--
-- Table structure for table `usergroup`
--
CREATE TABLE `usergroup` (
`usergroup_id` int(10) NOT NULL auto_increment,
`usergroup_name` varchar(250) NOT NULL,
`opentag` varchar(250) default NULL,
`closetag` varchar(250) default NULL,
`user_admin` enum('0','1') NOT NULL default '0',
PRIMARY KEY (`usergroup_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
--
-- Dumping data for table `usergroup`
--
INSERT INTO `usergroup` VALUES (1, 'admin', '<font color=red><b>', '</font></b>', '1');
INSERT INTO `usergroup` VALUES (2, 'user', NULL, NULL, '0');
INSERT INTO `usergroup` VALUES (3, 'ผู้เยี่ยมชม', NULL, NULL, '0');
?>
Date :
2009-07-19 20:28:44
By :
danya
พยายามออกแบบ ตาราง ไม่ให้เหมือนคนอื่นๆ 555+
ขอบคุณพี่ปลากริมครับ
FF ของผมจาก 3.0.11 โดดไป 3.5.1 เลยอะ -*-
Date :
2009-07-19 20:29:52
By :
danya
เด๋วออกมาอีกคับ เห็นเขาว่ามีรูรั่วกำลังทะยอยอุด หรือว่าจะอุดมาครั้งเดียวก็ไม่ทราบ
Date :
2009-07-19 20:51:42
By :
plakrim
ผมอับ เว้บบอร์ด เป็น v0.5 แล้วละ
Date :
2009-07-20 01:01:41
By :
danya
Load balance : Server 00