0

特定のレポートを送信する必要があるこの Web アプリケーションに取り組んでいます。ただし、レポートは動的で、表形式になっています。私が今やりたいことは、テーブル全体を電子メールで誰かに電子メールで送信することです。そうする方法はありますか?

PHPスクリプト

    <?php
    $con = mysql_connect("localhost", "root", "");
    if (!$con) 
      {
      die('Could not connect: ' . mysql_error());
      }

    mysql_select_db("mydb", $con);
    $input = $_POST['id'];
    $query = mysql_query("SELECT * FROM table WHERE ID = '$input'");

    echo "<table border='5' align=center>
    <tr>
    <th>ID</th>
    <th>Type</th>
    <th>Setting</th>
    <th>Value</th>
    <th>Actual</th>
    </tr>";

    while($row = mysql_fetch_array($query)) 
        { 
         echo "<tr>";
      echo "<td>" . $row['ID'] . "</td>";
      echo "<td>" . $row['Type'] . "</td>";
      echo "<td>" . $row['Setting'] . "</td>";
      echo "<td>" . $row['Value'] . "</td>";
      echo "<td>" . $row['Actual'] . "</td>";
      echo "</tr>"; 

            if($row['Value'] != $row['Actual']) 
                { 
                echo "<td bgcolor='#FD2911'>" . "X" . "</td>";
                } 
            else 
                { 
                echo "<td bgcolor='#1CDC15'>" . "O" . "</td>";
                } 
        }
    echo "<br>";

    mysql_close($con);
    ?>

htmlコード

    <form action="query1.php" method="POST">
    Enter the choice: <input type="varchar" name="id" /><br />
    <input type="submit" value="Audit" />
    </form> 
4

2 に答える 2

1

テーブル全体を連結します。

$table = '';
$table .= "<table border='5' align=center>
<tr>
<th>ID</th>
<th>Type</th>
<th>Setting</th>
<th>Value</th>
<th>Actual</th>
</tr>";

while($row = mysql_fetch_array($query)) 
    { 
     $table .= "<tr>";
  $table .= "<td>" . $row['ID'] . "</td>";
  $table .= "<td>" . $row['Type'] . "</td>";
  $table .= "<td>" . $row['Setting'] . "</td>";
  $table .= "<td>" . $row['Value'] . "</td>";
  $table .= "<td>" . $row['Actual'] . "</td>";
  $table .= "</tr>"; 

        if($row['Value'] != $row['Actual']) 
            { 
            $table .= "<td bgcolor='#FD2911'>" . "X" . "</td>";
            } 
        else 
            { 
            $table .= "<td bgcolor='#1CDC15'>" . "O" . "</td>";
            } 
    }
$table .= "</table><br>";

mail('to@example.com', 'My Subject', $table);
于 2012-09-10T14:47:44.490 に答える
0

テーブル以上のことをしたい場合は、出力バッファリングを使用できます。

<?php
ob_start();

# all your code/page/table(s) with echos and all

$toBeSent = ob_get_contents();
ob_end_clean();
?>

次に、Mihai の投稿の mail() 行の $table を $toBeSent に置き換えて、ob_start と ob_end_clean の間のコンテンツ全体を電子メールで送信します。

于 2012-09-10T15:00:12.020 に答える