Помещение данных SQL в таблицу HTML

Я пытаюсь получить данные из моей базы данных mySQL и поместить их в таблицу HTML. После поиска в интернете, но я не мог найти код, который работал для меня.

В настоящее время у меня есть этот код

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <table>
        <thead>
            <tr>
                <td>Naam</td>
                <td>Gemeente</td>
                <td>Datum</td>
            </tr>
        </thead>
        <tbody>
       <?php
          $db_select = mysql_select_db($dbname,$db);
            if (!db_select) {
                die("Database selection also failed miserably: " . mysql_error());
            }
            mysql_select_db("databaseiheko");
            $results = mysql_query("SELECT NaamFuif, GemeenteFuif, DatumFuif FROM tblfuiven");
            while($row = mysql_fetch_array($results)) {
            ?>
                <tr>
                    <td><?php echo $row['NaamFuif']?></td>
                    <td><?php echo $row['GemeenteFuif']?></td>
                    <td><?php echo &row['DatumFuif']?></td>
                </tr>

            <?php
            }
            ?>   
            </tbody>
            </table>
</body>
</html>

единственное, что я получаю, это первая строка моей таблицы (Naam-Gemeente-Datum). Я что-то не так делаю или что-то забыл?

3 ответов


прежде всего, самое главное, чтобы иметь в виду:

вы используете устаревший и небезопасный код

на функции mysql_ являются сильно уныние по разным причинам:

  • считаются устаревшими и будут удалены в будущих версиях PHP
  • небезопасны, что приводит к возможным SQL-инъекциям,
  • отсутствие многих функций, присутствующих в более современной версии В PHP

см. связанный вопрос для много более подробные объяснения.

теперь к самому коду:

вы не используете mysql_connect для подключения к серверу

вы должны использовать mysql_connect чтобы указать сервер, имя пользователя и пароль, которые будут использоваться для доступа к данным в базе данных. Из вашего кода кажется, что это был должен присутствовать, потому что есть $db переменная, используемая в the mysql_connect функция, но не правильно инициализирована и не используется снова нигде.

вы должны использовать mysql_connect подобным образом:

$db = mysql_connect('localhost', $user, '$password');
if (!$db) {
    die('Not connected : ' . mysql_error());
}

(не забудьте установить имя пользователя и пароль!)

вы используете mysql_select_db дважды подряд:

    $db_select = mysql_select_db($dbname,$db);
        if (!db_select) {
            die("Database selection also failed miserably: " . mysql_error());
        }

следовал по

mysql_select_db("databaseiheko");

  1. Примечание $dbname и $db переменные, у вас их нет в коде, эта функция не будет работать как этот.
  2. второй mysql_select_db перезаписывает первый, но вы не указываете соединение с сервером для использования.

вы должны использовать первую версию, но вы должны использовать mysql_connect перед ним.

у вас есть опечатки в коде

  • if (!db_select) { должно быть if (!$db_select) {
  • echo &row['DatumFuif'] должно быть echo $row['DatumFuif']

функции mysql_ устарели, но если вы хотите их использовать, я предлагаю следующие исправления:

вы можете исправить ваш код таким образом: соединение mysql необходимо:

 <?php
 //connect to your database
 mysql_connect("serverIpAddress","userName","password");
 //specify database
 mysql_select_db("yourDatabaseName") or die;
 //Build SQL Query
 $query = "select * from tblfuiven";
 $queryResult=mysql_query($query);
 $numrows=mysql_num_rows($queryResult);

numrows будет содержать количество записей в БД. добавьте Эхо для количества строк и сообщите нам, является ли количество строк все еще одним. Затем используйте mysql_fetch_assoc для получения строк:

  while($row = mysql_fetch_assoc($queryResult)) {
        ?>
            <tr>
                <td><?php echo $row['NaamFuif']?></td>
                <td><?php echo $row['GemeenteFuif']?></td>
                <td><?php echo &row['DatumFuif']?></td>
            </tr>
        <?php

        }
        ?>

EDIT: вы можете проверить код и сообщить нам количество строк, которые вы получаете, используя этот код (напишите свое настоящее имя пользователя и пароль и имя БД:

         <?php
         mysql_connect("localhost","root","root");     
         mysql_select_db("databaseName") or die;
            $results = mysql_query("SELECT * FROM tblfuiven");
            $numrows=mysql_num_rows($queryResult);
           while($row = mysql_fetch_assoc($queryResult)) {
            ?>
                <tr>
                    <td><?php echo $numrows ?></td>
                    <td><?php echo $row['NaamFuif']?></td>
                    <td><?php echo $row['GemeenteFuif']?></td>
                    <td><?php echo $row['DatumFuif']?></td>
                </tr>

            <?php
           }
           ?>

ваша проблема заключается в заявлении PHP echo. Он отсутствует ";".