Данные Mysql в стилизованную таблицу HTML - PullRequest
2 голосов
/ 22 февраля 2012

Мне нужна помощь.Я новичок в PHP и последние пару дней пытаюсь решить эту проблему.Я пытаюсь проанализировать данные из моей базы данных в стиле HTML-таблицы, и я не могу найти учебники по этому вопросу.Я сделал учебник для разбора таблицы, созданной с помощью PHP.Я хотел бы использовать таблицы, которые я включил в этот файл.Если бы кто-то был так любезен, чтобы показать мне, как это сделать, а также объяснить это, я был бы очень счастлив.

Это PHP-файл, с которым я пытался работать.Только одно закрытие я мог найти из учебников.

<?php
// Make a MySQL Connection
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("tegneserier") or die(mysql_error());

// Get all the data from the "årgang" table
$result = mysql_query("SELECT * FROM årgang") 
or die(mysql_error());  

echo "<table border='1'>";
echo "<tr> <th>Navn</th> <th>Årgang</th> <th>NR</th> <th>Navn</th> <th>Navn</th> </tr>";
// keeps getting the next row until there are no more to get
while($row = mysql_fetch_array( $result )) {
    // Print out the contents of each row into a table
    echo "<tr><td>"; 
    echo $row['name'];
    echo "</td><td>"; 
    echo $row['age'];
    echo "</td><td>"; 
    echo $row['issue'];
    echo "</td><td>"; 
    echo $row['Description'];
    echo "</td><td>";
    echo $row['quality'];
    echo "</td></tr>"; 
} 

echo "</table>";
?>

Это таблица стилей, которую я хотел бы использовать:

/* ------------------
   styling for the tables 
   ------------------   */

body
{
    line-height: 1.6em;
}

#hor-zebra
{
    font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
    font-size: 12px;
    margin: 60px;
    width: 480px;
    text-align: left;
    border-collapse: collapse;
}
#hor-zebra th
{
    font-size: 14px;
    font-weight: normal;
    padding: 10px 8px;
    color: #039;
}
#hor-zebra td
{
    padding: 8px;
    color: #669;
}
#hor-zebra .odd
{
    background: #e8edff; 

И это HTML-файл, в котором я хотел бы получить данныемоя база данных, чтобы показать:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>DataTable Output</title>
<style type="text/css">
<!--
@import url("style.css");
-->
</style>
</head>
<body>
<?php include("datamodtagelse.php"); ?>
<table id="hor-zebra" summary="Datapass">
    <thead>
        <tr>
            <th scope="col">name</th> //Name off table in DB
            <th scope="col">age</th> //Name off table in DB
            <th scope="col">issue</th> //Name off table in DB
            <th scope="col">Description</th> //Name off table in DB
            <th scope="col">quality</th> //Name off table in DB
        </tr>
    </thead>
    <tbody>
        <tr class="odd">
            <td>1</td>
            <td>2</td>
            <td>3</td>
            <td>4</td>
            <td>5</td>
        </tr>
        <tr>
            <td>1</td>
            <td>2</td>
            <td>3</td>
            <td>4</td>
            <td>5</td>
        </tr>
        <tr class="odd">
            <td>1</td>
            <td>2</td>
            <td>3</td>
            <td>4</td>
            <td>5</td>
        </tr>
        <tr>
            <td>1</td>
            <td>2</td>
            <td>3</td>
            <td>4</td>
            <td>5</td>
        </tr>
        <tr class="odd">
            <td>1</td>
            <td>2</td>
            <td>3</td>
            <td>4</td>
            <td>5</td>
        </tr>
    </tbody>
</table>

</body>
</html>

После добавления кода мой PHP вернет результат.Единственная проблема заключается в том, что он не показывает мои стилизованные таблицы из моего style.css, и я также получаю сообщение об ошибке "

Примечание: неопределенная переменная: i в C: \ Program Files (x86) \ EasyPHP-5.3.9 \ www \ Tables \ Datamodtagelse.php в строке 25

И при этом он возвращает мой вывод: (Это страница php.)

name                    age issue   Description                           quality
Anders And & Co.    1949    1   Dette er en beskrivelse af en tegneserie. Very Fine.

Когда яоткройте мой html файл, он вообще ничего не отобразит.

Я добавлю свой файл:

Datamodtagelse.php

<?php
    // Make a MySQL Connection
    mysql_connect("localhost", "root", "") or die(mysql_error());
    mysql_select_db("tegneserier") or die(mysql_error());

    // Get all the data from the "årgang" table
    $result = mysql_query("SELECT * FROM årgang") 
    or die(mysql_error());  

    echo '<table id="hor-zebra" summary="Datapass">
<thead>
    <tr>
        <th scope="col">name</th>
        <th scope="col">age</th>
        <th scope="col">issue</th>
        <th scope="col">Description</th>
        <th scope="col">quality</th>
    </tr>
</thead>
<tbody>';


    // keeps getting the next row until there are no more to get
    while($row = mysql_fetch_array( $result )) {
        if( $i++ % 2 == 0 ) {
            $class = " class='odd'";
        } else {
            $class = "";
        }
        // Print out the contents of each row into a table
        echo "<tr" . $class . "><td>"; 
        echo $row['name'];
        echo "</td><td>"; 
        echo $row['age'];
        echo "</td><td>"; 
        echo $row['issue'];
        echo "</td><td>"; 
        echo $row['Description'];
        echo "</td><td>";
        echo $row['quality'];
        echo "</td></tr>"; 
    } 

    echo "</tbody></table>";
?>

Showcomic.html:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>DataTable Output</title>
<style type="text/css">
<!--
@import url("style.css");
-->
</style>
</head>
<body>
<?php include("datamodtagelse.php"); ?>
</body>
</html>

Style.css

body
{
    line-height: 1.6em;
}

#hor-zebra
{
    font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
    font-size: 12px;
    margin: 60px;
    width: 480px;
    text-align: left;
    border-collapse: collapse;
}
#hor-zebra th
{
    font-size: 14px;
    font-weight: normal;
    padding: 10px 8px;
    color: #039;
}
#hor-zebra td
{
    padding: 8px;
    color: #669;
}
#hor-zebra .odd
{
    background: #e8edff; 
}

Моя база данных: tegneserier Моя таблица в базе данных: årgang Мои атрибуты в таблице: id int (11) AUTO_INCREMENT
name varchar(255) utf8_danish_ci
age int (11)
issue int (11)
текст описания utf8_danish_ci

При взгляде на код я думаю, что проблема заключается в файле HTML, а также в импорте таблицы стилей иданные из файла .php?

Файл .php, файл .css и файл .html находятся в одном и том жепапка.

Любая помощь приветствуется.И извините, это, вероятно, просто легкая ошибка новичка.(Нам всем нужно с чего-то начать.)

Ответы [ 3 ]

1 голос
/ 22 февраля 2012

вы почти у цели (если код, который вы нам показали, работает).в вашем php-файле вам нужно присвоить вашей таблице идентификатор "hor-zebra", чтобы к нему применялся стиль, а к нему применялись th и td.

вы также хотите добавить счетчик кполучите правильную вещь .odd:

var $i = 0;
while($row = mysql_fetch_array( $result )) {
    // Print out the contents of each row into a table
    echo "<tr";
    if( $i++ % 2 == 0 ) echo(" class='odd'");
    echo "><td>"; 
    ...

вы также можете установить область действия = "col" в ваших столбцах так, чтобы она максимально соответствовала исходной таблице

И последнее, но непо крайней мере: не забывайте элементы thead и tbody в вашем эхо-выводе.

если вы сделаете все это, вы должны увидеть одну и ту же таблицу дважды в вашем последнем html (проверьте источник, ctrl + U)

1 голос
/ 23 февраля 2014

Помните, что вы можете отображать ваши данные в тегах div, используйте

    <li></li> 

, чтобы разрешить отображение строки за строкой данных sql. Я упоминаю об этом, потому что считаю, что с элементами div легче работать, чем с таблицами.

1 голос
/ 22 февраля 2012

Попробуйте что-то вроде этого:

<?php
    // Make a MySQL Connection
    mysql_connect("localhost", "root", "") or die(mysql_error());
    mysql_select_db("tegneserier") or die(mysql_error());

    // Get all the data from the "årgang" table
    $result = mysql_query("SELECT * FROM årgang") 
    or die(mysql_error());  

    echo '<table id="hor-zebra" summary="Datapass">
<thead>
    <tr>
        <th scope="col">name</th> //Name off table in DB
        <th scope="col">age</th> //Name off table in DB
        <th scope="col">issue</th> //Name off table in DB
        <th scope="col">Description</th> //Name off table in DB
        <th scope="col">quality</th> //Name off table in DB
    </tr>
</thead>
<tbody>';


    // keeps getting the next row until there are no more to get
    while($row = mysql_fetch_array( $result )) {
        if( $i % 2 == 0 ) {
            $class = " class='odd'";
        } else {
            $class = "";
        }
        // Print out the contents of each row into a table
        echo "<tr" . $class . "><td>"; 
        echo $row['name'];
        echo "</td><td>"; 
        echo $row['age'];
        echo "</td><td>"; 
        echo $row['issue'];
        echo "</td><td>"; 
        echo $row['Description'];
        echo "</td><td>";
        echo $row['quality'];
        echo "</td></tr>"; 
    } 

    echo "</tbody></table>";
?>

А в вашем HTML-файле:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>DataTable Output</title>
<style type="text/css">
<!--
@import url("style.css");
-->
</style>
</head>
<body>
<?php include("datamodtagelse.php"); ?>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...