如何在sql的每一行表后添加一个按钮?

时间:2015-02-11 15:12:24

标签: php mysql button

我有一个包含三列日期,标题,消息的表格。

我将在每个表格中仅显示日期和标题,并希望在每行之后添加一个单独的按钮,然后我将显示该消息。

我试过了

            <?php

        echo "<table style='border: solid 3px aqua;'>";
        echo "<tr><th>Circular/Notice</th><th>DateGenerated</th></tr>";
        class TableRows extends RecursiveIteratorIterator { 
            function __construct($it) { 
                parent::__construct($it, self::LEAVES_ONLY); 
            }
         function current() {
                return "<td style='width:150px;border:1px solid red;'>" . parent::current(). "</td>";
            }

            function beginChildren() { 
                echo "<tr>"; 
            } 

            function endChildren() { 
                echo "</tr>" . "\n";
            } 

        } 

        $servername = "localhost";
        $username = "root";
        $password = "";
        $dbname = "er";

        try {
            $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
            $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $stmt = $conn->prepare("SELECT title ,DateGenerated FROM messages"); 
            $stmt->execute();

            // set the resulting array to associative
            $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); 
            foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) { 
                echo $v;


            }
        }
        catch(PDOException $e) {
            echo "Error: " . $e->getMessage();
        }
        $conn = null;
        echo '<input type ="button" value = "View"/>';
        echo "</table>";

        ?>

并且得到的结果只是一个按钮,也在表的顶部。 enter image description here

1 个答案:

答案 0 :(得分:2)

<input>需要位于<td>内,<tr>需要位于endChildren()

HTML表格中不在行和单元格中的任何内容都会在表格外呈现。

要为每行设置一个按钮,您需要将代码放在TableRows循环中。我建议编辑function endChildren() { echo '<td><input type="button" value = "View"/></td>'; echo "</tr>" . "\n"; } 函数,如下所示:

{{1}}