使用各种MySQL表中的信息在HTML上创建表

时间:2014-04-21 15:29:06

标签: php html mysql

我有一个网站,我正在建设一个学校项目,我已经有各种网页,我通过使用While和Foreach从我的数据库获取表格数据。
但是在这个有问题的页面上,我试图从各个表中检索数据,以便用户选择一个类别,一个文本并提交。
但由于某种原因,它没有输出任何数据。如果我只使用一个表而不使用table.field方法,只键入字段,它就可以工作 但据我所知,要从各种表中检索,我必须这样做 annione可以帮我解决这个问题吗?

<html>
<head>
<script type="text/javascript" >
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php
mysql_connect("localhost","root","") or die("problema na conexao");
mysql_select_db("trabalho1");
$query = "SELECT texto.titulo,texto.ID,categoria.categoria,categoria.id FROM categoria,texto";
$results = mysql_query($query) or die(mysql_error());   
echo"<center>";
echo "<table border='2'>\n";
echo "<form id='formulario' name='post' method='post' onsubmit='return validar(this) action='../inserir/inseretexto.php>'";
echo "<button type='submit'>Submeter</button>";
echo "<tr><td colspan ='2'>Historico de Newsletters</td><td colspan='2'>Enviar Newsletter</td></tr>";
echo "<tr><td colspan='2'>Texto </td><td colspan='2'>Categoria</td></tr>";
while ($row = mysql_fetch_assoc($results)) {    
    foreach ($row as $campo=>$valor) {
        if ($campo == "texto.titulo") {
            echo "<tr><td>'".$valor."'</td>";
        }

        if ($campo == "texto.ID") {
            echo "<td><input type='radio' name='nome' value='".$valor."'></td></tr>";
        }

        if ($campo == "categoria.categoria") {
            echo "<td>'".$valor."'</td>";
        }

        if ($campo=="categoria.id") {
            echo "<td><input type='radio' name='nome' value='".$valor."'></td></tr>";
        }
    }
}
echo "</form>";                                                             
echo "</table>";
echo "</center>";
?>
</body>
</html>

补充:由于两个表都有一个名为id的字段,它不会让我简单地放置字段名称,我还必须像我一样放表名。是的,我已经验证并且两个表都填充了数据,它们在其他页面上运行良好。

1 个答案:

答案 0 :(得分:0)

这就是我的建议(我没有考虑太多的代码优化)。

<?php
$data = array();

mysql_connect('localhost', 'root', '') or die('problema na conexao');
mysql_select_db('trabalho1');

// Use the same field-names/aliases: id, info
$query = 'SELECT ID AS id, titulo AS info FROM texto';
$results = mysql_query($query) or die(mysql_error());

while ($row = mysql_fetch_assoc($results)) {
    $data[] = $row;
}

// Use the same field-names/aliases: id, info
$query = 'SELECT id, categoria AS info FROM categoria';
$results = mysql_query($query) or die(mysql_error());

while ($row = mysql_fetch_assoc($results)) {
    $data[] = $row;
}
?>
<html>
<head>
<script type="text/javascript">
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>

<center>
<table border='2'>
<form id='formulario' name='post' method='post' onsubmit='return validar(this) action='../inserir/inseretexto.php>
<tr><td colspan ='2'><button type='submit'>Submeter</button></td></tr>
<tr><td colspan ='2'>Historico de Newsletters</td><td colspan='2'>Enviar Newsletter</td></tr>
<tr><td colspan='2'>Texto </td><td colspan='2'>Categoria</td></tr>
<?php
foreach ($data as $row) {
    echo '<td><input type="radio" name="nome" value="' . $row['id'] . '></td></tr>' . 
        '<tr><td>' . $row['id'] . '</td>';
}
?>
</form>
</table>
</center>
</body>
</html>

PS:了解我对双引号的回应。 Should I use curly brackets or concatenate variables within strings?