Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从SQL数据库中获取多个列并用HTML显示的最佳方法?_Javascript_Php - Fatal编程技术网

Javascript 从SQL数据库中获取多个列并用HTML显示的最佳方法?

Javascript 从SQL数据库中获取多个列并用HTML显示的最佳方法?,javascript,php,Javascript,Php,我正在为我高中的NHS创建一个网站。在主页上,我们希望有公告。由于我希望整个董事会(许多没有编程经验的人)能够添加公告,因此我正在尝试为任何人创建一种简单的方法来添加公告 我目前有一个SQL数据库,包含4列:公告标题、消息、公告发布日期和作者 我的PHP脚本如下所示: $conn = mysqli_connect($servername, $username, $password, $dbname); if (!$conn) { die("Connection failed: " .

我正在为我高中的NHS创建一个网站。在主页上,我们希望有公告。由于我希望整个董事会(许多没有编程经验的人)能够添加公告,因此我正在尝试为任何人创建一种简单的方法来添加公告

我目前有一个SQL数据库,包含4列:公告标题、消息、公告发布日期和作者

我的PHP脚本如下所示:

$conn = mysqli_connect($servername, $username, $password, $dbname);

if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "SELECT Title, Message, Date, Author FROM Announcements";
$result = mysql_query($sql);

$titles = array();
$messages = array();
$dates = array();
$authors = array();



while($db_field = mysql_fetch_assoc($result)) {
    $title = $db_field['Title'];
    $message = $db_field['Message'];
    $date = $db_field['Date'];
    $author = $db_field['Author'];

    $date = DATE("Y-m-d", $date);

    $titles[] = $title;
    $messages[] = $message;
    $dates[] = $date;
    $authors[] = $author;

}

$combined = array($titles, $messages, $dates, $authors);
我的想法是获取数据,将其组合成一个矩阵,然后将其传递给将生成HTML的javascript脚本。显然,这不是很有效(或者可能是。我是一个完全的PHP noob,正在学习,哈哈),所以我想知道是否有更好的方法来做到这一点


提前谢谢

不要在多个数组中推送数据,而是在单个数组中推送数据,这样您就可以迭代数据了

$conn = mysqli_connect($servername, $username, $password, $dbname);

if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "SELECT Title, Message, Date, Author FROM Announcements";
$result = mysql_query($sql);

$addData = array();
while($db_field = mysql_fetch_assoc($result)) {
    $title = $db_field['Title'];
    $message = $db_field['Message'];
    $date = $db_field['Date'];
    $author = $db_field['Author'];
    $date = DATE("Y-m-d", $date);
    $addData[] = array($title,$message,$date,$author);
}
var_dump($addData);

不要在多个数组中推送数据,而是在单个数组中推送数据,以便可以迭代它

$conn = mysqli_connect($servername, $username, $password, $dbname);

if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "SELECT Title, Message, Date, Author FROM Announcements";
$result = mysql_query($sql);

$addData = array();
while($db_field = mysql_fetch_assoc($result)) {
    $title = $db_field['Title'];
    $message = $db_field['Message'];
    $date = $db_field['Date'];
    $author = $db_field['Author'];
    $date = DATE("Y-m-d", $date);
    $addData[] = array($title,$message,$date,$author);
}
var_dump($addData);

这是你想要的吗。这是没有javascript的

<?php
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
    die("Connection failed:" . mysqli_connect_error());
}
$result = mysqli_query($conn,"SELECT Title, Message, Date, Author FROM   Announcements");
$newresult= [];
while($row= mysqli_fetch_assoc($result )) {
    $title = $row['Title'];
    $message = $row['Message'];
    $date = DATE("Y-m-d",$row['Date']);
    $author = $row['Author'];
    $newresult[] = ['title'=>$title,'message'=>$message,'date'=>$date,'author'=>$author];
}

echo '<table><thead>'.
          '<tr>
              <th>Title</th><th>Message</th><th>Date</th><th>Author</th>
          </tr>
    </thead>
    <tbody>';
         foreach($newresult as $r){
             echo '<tr>'.
                  '<td>'.$r['title'].'</td>'.
                  '<td>'.$r['message'].'</td>'.
                  '<td>'.$r['date'].'</td>'.
                  '<td>'.$r['author'].'</td>'.
              '</tr>';
         }
echo '</tbody></table>';
?>

这是否符合您的要求。这是没有javascript的

<?php
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
    die("Connection failed:" . mysqli_connect_error());
}
$result = mysqli_query($conn,"SELECT Title, Message, Date, Author FROM   Announcements");
$newresult= [];
while($row= mysqli_fetch_assoc($result )) {
    $title = $row['Title'];
    $message = $row['Message'];
    $date = DATE("Y-m-d",$row['Date']);
    $author = $row['Author'];
    $newresult[] = ['title'=>$title,'message'=>$message,'date'=>$date,'author'=>$author];
}

echo '<table><thead>'.
          '<tr>
              <th>Title</th><th>Message</th><th>Date</th><th>Author</th>
          </tr>
    </thead>
    <tbody>';
         foreach($newresult as $r){
             echo '<tr>'.
                  '<td>'.$r['title'].'</td>'.
                  '<td>'.$r['message'].'</td>'.
                  '<td>'.$r['date'].'</td>'.
                  '<td>'.$r['author'].'</td>'.
              '</tr>';
         }
echo '</tbody></table>';
?>


您是否只需要通过Javascript生成html表?我不确定您的问题是什么意思。我需要以某种方式将其转换为html元素。我真的不在乎是否是通过javascript。这个问题可能更容易被接受。你是否只需要通过javascript生成html表?我不知道你的问题是什么意思。我需要以某种方式将其转换为html元素。我真的不在乎它是否通过javascript。这个问题可能会更好地被接受。谢谢你的优化!如果你不介意的话,我也有点困惑,我如何编写javascript函数,将这些数据加载到页面并传输到DOM。或者中间的JS是必要的?@ryanyz10–用php值包装HTML并进行迭代的Ajax…谢谢你的优化!如果你不介意的话,我也有点困惑,我如何编写javascript函数,将这些数据加载到页面并传输到DOM。或者中间的JS是必要的吗?@ryanyz10–用php值包装HTML并进行迭代的Ajax…非常好用!我想我只是想让事情变得复杂,想要一个javascript文件在两者之间…工作得很好!我想我只是想要一个javascript文件,让事情变得复杂。。。