|
|
|
ช่วยดูสคิป ฝากข้อความ + แบ่งหน้า ทีครับ ผมกำลังหัดเขียน PHP อยู่ครับ มีปัญหาคือผมเขียนสคิปฝากข้อความ |
|
|
|
|
|
|
|
ผมกำลังหัดเขียน PHP อยู่ครับ มีปัญหาคือผมเขียนสคิปฝากข้อความโดยดูจากหนังสือ และได้โหลดสคิปแบ่งหน้ามาจากเวบไซตหนึ่ง ผมได้นำสองสคิปนี้มาใช้ด้วยกันปรากฏว่าสามารถแบ่งหน้าได้แต่ emoticon ไม่ขึ้นมาครับ
ผมจะแก้อย่างไรดีครับ
รูป
สคิปของผม
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ฝากข้อความ</title>
<SCRIPT language=JavaScript>
<!--
function check_data() {
if(document.frm.name.value=="") {
alert("กรูณากรอกชื่อด้วยครับ");
document.frm.name.focus();
return false;
} else if (document.frm.message.value=="") {
alert("กรูณากรอกข้อความด้วยครับ");
document.frm.message.focus();
return false;
}
}
function add_text(x) {
document.frm.message.value =
document.frm.elements.message.value+" "+ x;
document.frm.message.focus();
}
//-->
</script>
</head>
<body>
<table width="100%" height="321" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><div align="center"><img src="img/A7383273-3.jpg" width="300" height="353" /></div></td>
</tr>
<tr>
<td align="center"><table width="600" border="0" cellpadding="0" cellspacing="0">
<tr>
<td> </td>
</tr>
<tr>
<td bgcolor="#00CCFF"><div align="center">ฝากข้อความ</div></td>
</tr>
<tr>
<td>
<?
include "connect.php";
include "function.php";
$sql="select * from tb_message order by id desc";
$result=mysql_db_query($dbname,$sql);
while ($record=mysql_fetch_array($result) ) {
$id=$record[id];
$name=$record[name];
$message=nl2br($record[message]);
$save_date=$record[save_date];
$save_date=displaydate_time($save_date);
$pic="<IMG SRC='img/emo/36989.gif'>";
$message=str_replace(":36989",$pic, $message);
$pic="<IMG SRC='img/emo/36990.gif'>";
$message=str_replace(":36990",$pic, $message);
$pic="<IMG SRC='img/emo/36991.gif'>";
$message=str_replace(":36991",$pic, $message);
$pic="<IMG SRC='img/emo/36992.gif'>";
$message=str_replace(":36992",$pic, $message);
$pic="<IMG SRC='img/emo/36993.gif'>";
$message=str_replace(":36993",$pic, $message);
$pic="<IMG SRC='img/emo/36994.gif'>";
$message=str_replace(":36994",$pic, $message);
$pic="<IMG SRC='img/emo/36995.gif'>";
$message=str_replace(":36995",$pic, $message);
$pic="<IMG SRC='img/emo/36996.gif'>";
$message=str_replace(":36996",$pic, $message);
$pic="<IMG SRC='img/emo/36997.gif'>";
$message=str_replace(":36997",$pic, $message);
$pic="<IMG SRC='img/emo/36998.gif'>";
$message=str_replace(":36998",$pic, $message);
$pic="<IMG SRC='img/emo/36999.gif'>";
$message=str_replace(":36999",$pic, $message);
$pic="<IMG SRC='img/emo/36700.gif'>";
$message=str_replace(":37000",$pic, $message);
}
/*Connect ฐานข้อมูล */
mysql_connect('localhost','root','1234'); // connect mysql
mysql_select_db('db_message'); // select database
/* check ว่ามี ค่าตัวแปร $start หรือไม่ ถ้าไม่มีให้ตั้งเป็น 0
ปล. อันนี้ต้องใช้กับตัวแบ่งนะ ห้ามเอาออก*/
if(!isset($start)){
$start = 0;
}
$limit = '5'; // แสดงผลหน้าละกี่หัวข้อ
/* หาจำนวน record ทั้งหมด
ปล. อันนี้ต้องใช้กับตัวแบ่งนะ ห้ามเอาออก*/
$Qtotal = mysql_query("select * from tb_message"); //คิวรี่ คำสั่ง
$total = mysql_num_rows($Qtotal); // หาจำนวน record
/* คิวรี่ข้อมูลออกมาเพื่อแสดงผล */
$Query = mysql_query("SELECT * FROM tb_message ORDER BY id DESC LIMIT $start,$limit"); //คิวรี่คำสั่ง
$totalp = mysql_num_rows($Query); // หาจำนวน record ที่เรียกออกมา
/* อันนี้ ไม่เกี่ยวเอาออกได้ */
printf("มีหัวข้อทั้งหมด %d หัวข้อ / ",$total);
printf("แสดงหน้าละ %d หัวข้อ<br />",$totalp);
echo "<hr />";
/* วนลูปข้อมูล */
while($arr = mysql_fetch_array($Query)){
echo sprintf("<B>ความคิดเห็นที่ %03d</B>",$arr[id])."<table width='100%' border='1' cellpadding='5' cellspacing='0' bordercolor='#999999'>
<tr>
<td bgcolor='#00FFFF'>
<BR>$arr[message]<BR>
<BR><B>จาก : </B>$arr[$nme]<BR>
<B>วัน : </B>$arr[save_date]<br>
</td>
</tr>
</table><BR>"; // แสดงผล
}
echo "<hr>";
/* ตัวแบ่งหน้า */
$page = ceil($total/$limit); // เอา record ทั้งหมด หารด้วย จำนวนที่จะแสดงของแต่ละหน้า
/* เอาผลหาร มาวน เป็นตัวเลข เรียงกัน เช่น สมมุติว่าหารได้ 3 เอามาวลก็จะได้ 1 2 3 */
for($i=1;$i<=$page;$i++){
if($_GET['page']==$i){ //ถ้าตัวแปล page ตรง กับ เลขที่วนได้
echo "[<a href='?start=".$limit*($i-1)."&page=$i'><B>$i</B></A>]"; //ลิ้งค์ แบ่งหน้า เงื่อนไขที่ 1
}else{
echo "[<a href='?start=".$limit*($i-1)."&page=$i'>$i</A>]"; //ลิ้งค์ แบ่งหน้า เงื่อนไขที่ 2
}
}
?> </td>
</tr>
<tr>
<td bgcolor="#009999"><form id="form1" name="frm" method="POST" action="save.php" ONSUBMIT="return check_data()">
<table width="100%" border="0" cellpadding="0" cellspacing="5">
<tr>
<td>ชื่อ :
<input name="name" type="text" size="20" />
<br />
ฝากข้อความ : <br />
<textarea name="message" cols="80" rows="5"></textarea>
<br />
<a href="javascript:add_text(':36989')"> <img src="img/emo/36989.gif" border="0" /></a> <a href="javascript:add_text(':36990')"> <img src="img/emo/36990.gif" border="0" /></a> <a href="javascript:add_text(':36991')"> <img src="img/emo/36991.gif" border="0" /></a> <a href="javascript:add_text(':36992')"> <img src="img/emo/36992.gif" border="0" /></a> <a href="javascript:add_text(':36993')"> <img src="img/emo/36993.gif" border="0" /></a> <a href="javascript:add_text(':36994')"> <img src="img/emo/36994.gif" border="0" /></a> <a href="javascript:add_text(':36995')"> <img src="img/emo/36995.gif" border="0" /></a> <a href="javascript:add_text(':36996')"> <img src="img/emo/36996.gif" border="0" /></a> <a href="javascript:add_text(':36997')"> <img src="img/emo/36997.gif" border="0" /></a> <a href="javascript:add_text(':36998')"> <img src="img/emo/36998.gif" border="0" /></a> <a href="javascript:add_text(':36999')"> <img src="img/emo/36999.gif" border="0" /></a> <a href="javascript:add_text(':37000')"> <img src="img/emo/37000.gif" border="0" /></a> <br />
<input type="submit" value="Summit" />
<input type="reset" value="Reset" /></td>
</tr>
</table>
</form> </td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>
Tag : - - - -
|
|
|
|
|
|
Date :
2009-04-14 09:02:14 |
By :
trojan983 |
View :
1712 |
Reply :
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มีปัญหาอีกอย่างหนุ่งครับ ข้อความที่ฝากมันออกมาเป็นแนวนอนตลอดเลยครับ
|
|
|
|
|
Date :
2009-04-14 11:45:04 |
By :
trojan983 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มาเพิ่มเติมครับ ผมแก้ให้มันแสดง emoticon ได้แล้ว เปลี่ยนไปใช้สคิปแบ่งหน้าอันใหม่
แต่มีปัญหาอย่างเดียวคือข้อความที่ฝากไว้มันออกมาเป็นบรรทัดเดียวกันตลอดเลยครับ มันไม่ยอมขึ้นบรรทัดใหม่อ่ะครับ
รูป
|
|
|
|
|
Date :
2009-04-14 12:02:43 |
By :
trojan983 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ข้อความมันยาวแบบนี้จะแก้ยังไงให้ขึ้นบรรทัดใหม่อัตโนมัติครับ
รูป
|
|
|
|
|
Date :
2009-04-14 14:46:13 |
By :
trojan983 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เพราะว่า ไม่ได้เคาะ space เลยอะครับ มันเลยไม่ขึ้นบรรทัดใหม่ให้ครับ
|
|
|
|
|
Date :
2009-04-14 20:43:54 |
By :
rasabut |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หรือไม่ ตอนจะ out ออกมาลองแบบนี้ดูครับ
Code (PHP)
<?php
echo nl2br($message);
?>
|
|
|
|
|
Date :
2009-04-14 21:31:53 |
By :
rasabut |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมก็ใช้ nl2br อยู่ครับเวลา enter มันจะได้ขึ้นบรรทัดใหม่
แต่ถ้าข้อความมันยาวววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววว
แบบนี้จะทำยังไง
ใช้ wordwrap ก็เป็นแบบนี้
|
|
|
|
|
Date :
2009-04-15 08:26:59 |
By :
trojan983 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2009-04-16 21:43:31 |
By :
plakrim |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตรงจะให้ขึ้นบรรทัดใหม่นั้นใช้แบบนี้มันจะขึ้นบรรทัดใหม่ตามที่ผู้โพส์ถาม enter
<?php
echo nl2br($message);
?>
อยากให้มันขึ้นบรรทัดใหม่โดยการใช้การตัดคำเอาคับเพิ่มคำสั่ง wordwrap(); เข้าไปคับ
Code (PHP)
<?php
echo wordwrap(nl2br($message),50,"\n",true);
?>
ถูกผิดประการไดก็ขออภัยนะคับ
|
|
|
|
|
Date :
2009-06-20 10:58:33 |
By :
somparn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|