PHP Показать массив в таблице HTML - PullRequest
0 голосов
/ 22 марта 2019

У меня база данных и веб-сервер на разных машинах, массив из запроса mysql передается на веб-сервер и выглядит так

Array (
[user_id] => 1
[username] => phillip
[password] => 12345
[email] => phillip@gmail.com
[account_balance] => 100   )

Если я распечатаю этот массив в PHP, используя print_r ($ myArray); это показывает в веб-браузере, как это

 Array ( [user_id] => 1 [username] => phillip [password] => 12345 [email] => phillip@gmail.com [account_balance] => 100 ) 

Я хочу создать код PHP, который будет повторять этот массив и создавать столбцы для user_id, username, password, email и account_balance, а затем отображать результаты в строках.

Вот мой PHP-код в файле display.php

<!DOCTYPE html>
   <html>
       <head>
           <meta charset="UTF-8">
           <title>Page</title>
       </head>
       <body>
          <table border="1">
<?php
 include(fileThatCallsDBServer.php);
 $myArray = getMYSQLArray(); //This calls a function located in the file in the include() and returns array
 print_r($myArray); //print the array for testing purposes

 //Create table to display array 
 $html = "<table>";
 foreach($myArray as $row) {
    $html .= "<tr>";
       foreach ($row as $cell) {
          $html .= "<td>" . $cell . "</td>";
       }
       $html .= "</tr>";
 }
 $html .= "</table>";
 ?>

       </body>

 </html>

Однако при просмотре страницы в моем браузере ничего не отображается. Идеи?

Ответы [ 4 ]

1 голос
/ 22 марта 2019

Вам необходимо отобразить ключи и их соответствующие значения.

Итак, в цикле массива получите ключи вместе со значениями.

Вам не нужно два цикла foreach.

...
foreach($myArray as $key => $row) {
 $html .= "<tr>";
 $html .= "<td>" . $key . ': ' . $row . "</td>";
 $html .= "</tr>";
}
...
0 голосов
/ 22 марта 2019
<?php
    $data = Array ( 'user_id' => 1,'username' => 'phillip', 'password' => 12345, 'email' => 'phillip@gmail.com','account_balance' => 100 );
    $keys = array_keys($data);
?>
<table border=1>
    <tr>
        <?php
            foreach($keys as $key=>$value):
            ?>
                <td><?php echo $value;?></td>
            <?php
            endforeach;
        ?>
    </tr>
    <tr>
        <?php
            foreach($data as $key=>$value):
            ?>
                <td><?php echo $value;?></td>
            <?php
            endforeach;
        ?>
    </tr>
</table>
0 голосов
/ 22 марта 2019

Привет, ваш массив не является вложенным массивом, поэтому вам просто нужно повторить его:

echo "<tr><td>".$myArray['user_id']."</td>
          <td>".$myArray['username']."</td>
          <td>".$myArray['password']."</td>
          <td>".$myArray['email']."</td>
          <td>".$myArray['account_balance']."<td></tr>";
0 голосов
/ 22 марта 2019

Ваш код выглядит нормально, вы просто забыли отобразить окончательный результат вашей переменной $ html.

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Page</title>
    </head>
    <body>
        <table border="1">
        <?php
        include(fileThatCallsDBServer.php);
        $myArray = getMYSQLArray(); //This calls a function located in the file in the include() and returns array
        print_r($myArray); //print the array for testing purposes

        //Create table to display array 
        $html = "<table>";
        foreach($myArray as $row) {
            $html .= "<tr>";
            foreach ($row as $cell) {
                $html .= "<td>" . $cell . "</td>";
            }
            $html .= "</tr>";
        }
        $html .= "</table>";
        ?>

        echo $html;

    </body>

</html>
...