การ query ข้อมูลใน ส่วนนี้ ทำอย่างไรครับ HomeForumการ query ข้อมูลใน ส่วนนี้ ทำอย่างไรครับ Wanchana yoojuy $mail->MsgHTML(" Query ") เป็นส่วนของ Function PHPMailer ส่วนของการใส่ข้อความลงไป การใส่ข้อความธรรมดาสามารถใส่ได้ปกติ แต่ถ้าต้องการ Query และใส่เงื่อนไขต่างๆใส่เข้าไปไม่ทราบว่ามีวิธีการอย่างไรครับ .::{เปรียว}::. ประมาณไหนล่ะ ช่วยขยายความนิดนึง เอาง่ายๆ คิวรี่ก่อนค่อยเรียกใช้ข้อมูลผ่านตัวแปร $Query = สั่งคิวรี่อะไรดี; $mail->MsgHTML($Query ); กรกฎ วิริยะ อ้างอิงจาก หัวข้อ$mail->MsgHTML(" Query ") ถ้าจะ query เอาข้อมูลออกมา ก็ต้อง query ออกมาก่อน แล้วจัดรูปแบบครับ $mail->MsgHTML() หมายถึงกำหนดค่าข้อความ (รวม HTML) ครับ ค่าที่ส่งให้กับฟังก์ชั่นคือ ข้อความ(string) ครับ Wanchana yoojuy โทษทีคับ พอผมมาลองอย่างนี้ไม่ได้คับ ผมเข้าใจยังไม่ถูกช่ายไหมครับ แล้วการทำที่ถูกต้องต้องยังไงคับ $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 ดู Wanchana yoojuy ยังไม่ได้ครับผม ทุกอย่างส่งได้ โอเคปกติ 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"); เอา "" ออก $mail->MsgHTML($a); กรกฎ วิริยะ 555+++ ผิดที่ query ครับ ไม่เกี่ยวข้องใดๆกับการส่งเมล์ สิ่งที่ต้องทำคือแก้ปัญหาให้สามารถ query ข้อมูลมาแสดงในตารางให้ถูกต้องก่อนครับ วิธตรวจสอบก็คือ echo ข้อมูลดิบออกมาแล้วเป็นเพจๆนึงเลย @ ที่ loop ลองเอาออกดูอาจพบข้อผิดพลาดได้ง่ายขึ้น Wanchana yoojuy ขอบคุณ มากครับ ทั้ง 2 ท่าน แต่ยังไม่ได้คับ อ้างอิงจาก ความคิดเห็น #7555+++ ผิดที่ query ครับ ไม่เกี่ยวข้องใดๆกับการส่งเมล์ สิ่งที่ต้องทำคือแก้ปัญหาให้สามารถ query ข้อมูลมาแสดงในตารางให้ถูกต้องก่อนครับ วิธตรวจสอบก็คือ echo ข้อมูลดิบออกมาแล้วเป็นเพจๆนึงเลย @ ที่ loop ลองเอาออกดูอาจพบข้อผิดพลาดได้ง่ายขึ้น ผมได้ลองทำแล้วเอาไปทำที่อื่นออกครับผม แต่ผมยังงงตรงที่ว่า <? $a = " $query "; ?> ตรง $query ยังต้องใส่ Tag <? ?> อยู่อีกไหม เพราะผมลองทั้งใส่ทั้งไม่ใส่ ก็ไม่ได้เหมือนเดิมครับ งงจิงๆ เลยคิดว่ามันอาจจะเป็นที่จุดๆนี้หรือปล่าวปัญหาที่เกิดขึ้น สรุปตอนนี้ที่ทำได้คือ ดึงตารางออกมาได้ทั้งหมด แต่การ Query ไม่มา ทั้งที่เอาไปที่อื่น Query ได้ ดู connection Database ก็ไม่มีไรผิดปกติครับ งง niti bangjak 55+ ใส่ <?php ครับ กรกฎ วิริยะ $sql3 ถูกต้องหรือเปล่า ลอง echo $sql3 ออกมาแล้วนำไป query บน phpmyadmin ดู ตรวจสอบผลลัพท์ว่าเป็นไปอย่างที่ต้องการหรือเปล่า ผมคิดว่าน่าจะรู้แล้วนะ.... <?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 ข้อมูลออกมาดู (ไล่เช็คทีละบันทัดจะได้ไม่สับสน) Wanchana yoojuy เหอๆๆ ขอบคุณครับท่านได้แล้ว ต้องทำอย่างที่ท่านว่า ไปใส่ตารางอย่างที่ผมใส่มันไม่ออก ความคิดเห็น รายละเอียด ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M ส่งความคิดเห็น
เอาง่ายๆ คิวรี่ก่อนค่อยเรียกใช้ข้อมูลผ่านตัวแปร
$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 ข้อมูลออกมาดู (ไล่เช็คทีละบันทัดจะได้ไม่สับสน)
เหอๆๆ ขอบคุณครับท่านได้แล้ว ต้องทำอย่างที่ท่านว่า ไปใส่ตารางอย่างที่ผมใส่มันไม่ออก