freelance, web developer, web designer, hosting, domain name
อ้างอิงจาก หัวข้อ$mail->MsgHTML(" Query ")
โทษทีคับ พอผมมาลองอย่างนี้ไม่ได้คับ ผมเข้าใจยังไม่ถูกช่ายไหมครับ แล้วการทำที่ถูกต้องต้องยังไงคับ $a = "<table width='1000' border='0' cellpadding='1' cellspacing='1' bgcolor='#333333' class='Tahoma_gray_underline'> <tr> <td bgcolor='#6699FF' height='24' colspan='2' align='center'><font size='2'><b>Action Items</b></font></td> </tr> <? $sql3 = 'SELECT * FROM work_emp WHERE mail_id='$mail_id_hid' and detail_work != '''; $query3 = mysql_query($sql3); $i = 1; while(@extract($obj3 = mysql_fetch_array($query3))){ ?> <tr> <td bgcolor='#FFFFFF' height='24' width='270' style='padding-left:10px;'><font size='2'><?=$employee?></font></td> <td bgcolor='#FFFFFF' style='padding-left:10px;'><font size='2'><?=$detail_work?></font></td> </tr> <? $i++; } ?> <tr> </table>"; $mail->MsgHTML("$a");
ยังไม่ได้ครับผม ทุกอย่างส่งได้ โอเคปกติ Css ออกทุกอย่างคับ แต่ Code query ไม่ออกคับ ลองเอาคำสั่งไปรันดูผ่านดีคับผม แต่มาทำในหน้านี้ไม่ได้คับ รูปแบบที่เขียนไปโดยย่อ โดยทั้งหมดอยู่ใน Tag PHP นะคับ <?PHP $a = "<table width='1000' border='0' cellpadding='1' cellspacing='1' bgcolor='#333333' class='Tahoma_gray_underline'> <tr> <td bgcolor='#6699FF' height='24' colspan='2' align='center'><font size='2'><b>Action Items</b></font></td> </tr> <? $sql3 = 'SELECT * FROM work_emp WHERE mail_id='$mail_id_hid' and detail_work != '''; $query3 = mysql_query($sql3); $i = 1; while(@extract($obj3 = mysql_fetch_array($query3))){ ?> <tr> <td bgcolor='#FFFFFF' height='24' width='270' style='padding-left:10px;'><font size='2'><?=$employee?></font></td> <td bgcolor='#FFFFFF' style='padding-left:10px;'><font size='2'><?=$detail_work?></font></td> </tr> <? $i++; } ?> <tr> </table>"; $mail->MsgHTML("$a"); ?>
อ้างอิงจาก ความคิดเห็น #7555+++ ผิดที่ query ครับ ไม่เกี่ยวข้องใดๆกับการส่งเมล์ สิ่งที่ต้องทำคือแก้ปัญหาให้สามารถ query ข้อมูลมาแสดงในตารางให้ถูกต้องก่อนครับ วิธตรวจสอบก็คือ echo ข้อมูลดิบออกมาแล้วเป็นเพจๆนึงเลย @ ที่ loop ลองเอาออกดูอาจพบข้อผิดพลาดได้ง่ายขึ้น
เหอๆๆ ขอบคุณครับท่านได้แล้ว ต้องทำอย่างที่ท่านว่า ไปใส่ตารางอย่างที่ผมใส่มันไม่ออก
เอาง่ายๆ คิวรี่ก่อนค่อยเรียกใช้ข้อมูลผ่านตัวแปร
$Query = สั่งคิวรี่อะไรดี;
$mail->MsgHTML($Query );
ถ้าจะ query เอาข้อมูลออกมา ก็ต้อง query ออกมาก่อน แล้วจัดรูปแบบครับ
$mail->MsgHTML() หมายถึงกำหนดค่าข้อความ (รวม HTML) ครับ ค่าที่ส่งให้กับฟังก์ชั่นคือ ข้อความ(string) ครับ
โทษทีคับ พอผมมาลองอย่างนี้ไม่ได้คับ ผมเข้าใจยังไม่ถูกช่ายไหมครับ แล้วการทำที่ถูกต้องต้องยังไงคับ
$a = "<table width='1000' border='0' cellpadding='1' cellspacing='1' bgcolor='#333333' class='Tahoma_gray_underline'>
<tr>
<td bgcolor='#6699FF' height='24' colspan='2' align='center'><font size='2'><b>Action Items</b></font></td>
</tr>
<?
$sql3 = 'SELECT * FROM work_emp WHERE mail_id='$mail_id_hid' and detail_work != ''';
$query3 = mysql_query($sql3);
$i = 1;
while(@extract($obj3 = mysql_fetch_array($query3))){
?>
<tr>
<td bgcolor='#FFFFFF' height='24' width='270' style='padding-left:10px;'><font size='2'><?=$employee?></font></td>
<td bgcolor='#FFFFFF' style='padding-left:10px;'><font size='2'><?=$detail_work?></font></td>
</tr>
<? $i++; } ?>
<tr>
</table>";
$mail->MsgHTML("$a");
ลอง echo เอาตารางมาแสดงผลดูก่อนดีมั้ย ว่ามันถูกต้องมั้ย ถ้าถูกต้องมันก็จะส่งไปกับเมล์ได้ถูกต้อง
แต่....
1.ส่งเมล์แบบ HTML ต้องรวม header ไปด้วยนะ เหมือนหน้าเว็บ HTML หน้านึงเลย
2.อีเมล์ปลายทาง รองรับการแสดงผลแบบ HTML หรือเปล่า แนะนำให้ลองส่งไป hotmail หรือ yahoo ดู
ยังไม่ได้ครับผม ทุกอย่างส่งได้ โอเคปกติ Css ออกทุกอย่างคับ แต่ Code query ไม่ออกคับ
ลองเอาคำสั่งไปรันดูผ่านดีคับผม แต่มาทำในหน้านี้ไม่ได้คับ
รูปแบบที่เขียนไปโดยย่อ โดยทั้งหมดอยู่ใน Tag PHP นะคับ
<?PHP
$a = "<table width='1000' border='0' cellpadding='1' cellspacing='1' bgcolor='#333333' class='Tahoma_gray_underline'>
<tr>
<td bgcolor='#6699FF' height='24' colspan='2' align='center'><font size='2'><b>Action Items</b></font></td>
</tr>
<?
$sql3 = 'SELECT * FROM work_emp WHERE mail_id='$mail_id_hid' and detail_work != ''';
$query3 = mysql_query($sql3);
$i = 1;
while(@extract($obj3 = mysql_fetch_array($query3))){
?>
<tr>
<td bgcolor='#FFFFFF' height='24' width='270' style='padding-left:10px;'><font size='2'><?=$employee?></font></td>
<td bgcolor='#FFFFFF' style='padding-left:10px;'><font size='2'><?=$detail_work?></font></td>
</tr>
<? $i++; } ?>
<tr>
</table>";
$mail->MsgHTML("$a");
?>
เอา "" ออก
$mail->MsgHTML($a);
สิ่งที่ต้องทำคือแก้ปัญหาให้สามารถ query ข้อมูลมาแสดงในตารางให้ถูกต้องก่อนครับ วิธตรวจสอบก็คือ echo ข้อมูลดิบออกมาแล้วเป็นเพจๆนึงเลย
@ ที่ loop ลองเอาออกดูอาจพบข้อผิดพลาดได้ง่ายขึ้น
ผมได้ลองทำแล้วเอาไปทำที่อื่นออกครับผม
แต่ผมยังงงตรงที่ว่า
<?
$a = " $query ";
?>
ตรง $query ยังต้องใส่ Tag <? ?> อยู่อีกไหม เพราะผมลองทั้งใส่ทั้งไม่ใส่ ก็ไม่ได้เหมือนเดิมครับ งงจิงๆ
เลยคิดว่ามันอาจจะเป็นที่จุดๆนี้หรือปล่าวปัญหาที่เกิดขึ้น
สรุปตอนนี้ที่ทำได้คือ ดึงตารางออกมาได้ทั้งหมด แต่การ Query ไม่มา ทั้งที่เอาไปที่อื่น Query ได้ ดู connection Database
ก็ไม่มีไรผิดปกติครับ
งง
55+
ใส่
<?php
ครับ
ผมคิดว่าน่าจะรู้แล้วนะ....
<?php
$a = '<table>';
$sql3 = "....เขียนคำสั่ง SQL.....";
...คำสั่งอื่นๆ...
while(...เขียนคำสั่งภายใน loop...) {
// ใส่ข้อมูลลงในแถว
$a .= "<tr><td>$ข้อมูล1</td><td>$ข้อมูล2</td></tr>";
}
$a .= '</table>';
echo $a; // debug
$mail->MsgHTML($a); // ส่งเมล์
?>
ที่ผิดคือเขียนคำสั่งผิดนะ ผิดมากๆด้วย
php ถูกครอบด้วย html แล้วครอบด้วย php อีกที
อย่างที่คุณอาว่า
ลอง echo ข้อมูลออกมาดู (ไล่เช็คทีละบันทัดจะได้ไม่สับสน)
เหอๆๆ ขอบคุณครับท่านได้แล้ว ต้องทำอย่างที่ท่านว่า ไปใส่ตารางอย่างที่ผมใส่มันไม่ออก