Php 将值从MySQL输出到预格式化表中

Php 将值从MySQL输出到预格式化表中,php,html,mysql,Php,Html,Mysql,我正在制作一个元素周期表,对php是个新手。我已经到处寻找关于如何完成这项任务的信息,但我什么也找不到。我想做的是查询我的数据库,获取原子量、名称、元素符号等的值,并将它们填充到我用html和css构建的元素周期表中。但是,我只是不知道如何运行while循环并将数据填充到适当的空间中。我知道如何创建一个包含结果的表,但我不知道如何将结果填充到已经创建的html结构中。这是我代码的一部分。再说一次,我对php非常陌生,因此非常感谢您的帮助。我相当确定这与我将开始/结束php标记放在哪里有很大关系。

我正在制作一个元素周期表,对php是个新手。我已经到处寻找关于如何完成这项任务的信息,但我什么也找不到。我想做的是查询我的数据库,获取原子量、名称、元素符号等的值,并将它们填充到我用html和css构建的元素周期表中。但是,我只是不知道如何运行while循环并将数据填充到适当的空间中。我知道如何创建一个包含结果的表,但我不知道如何将结果填充到已经创建的html结构中。这是我代码的一部分。再说一次,我对php非常陌生,因此非常感谢您的帮助。我相当确定这与我将开始/结束php标记放在哪里有很大关系。本质上,如何让循环识别html中的变量?我是否关闭php标记并重新打开

非常感谢你

   <?php
//query database (connection successful)//
$result=mysql_query("SELECT * FROM elementdata", $link);


    //fetch results into array to loop through//
    while($row = mysql_fetch_array($result)) {



//begin table structure where I would like to insert data//
<div id="hydrogen" class="element group1 period1">
    <span class="number"> echo $row['atomicNumber']; </span><br>
    <span class="symbol">H</span><br>
    <span class="name"> echo $row['name']; </span><br>
    <span class="molmass">1.007&nbsp;94</span></div>

<div id="Helium" class="element group18 period1">
     <span class="number">echo $row['atomicNumber'];</span><br>
    <span class="symbol">He</span><br>
    <span class="name"> echo $row['name']; </span><br>
    <span class="molmass">4.002&nbsp;602</span></div> 
//...table continues...//

?>

您需要进出PHP

之后:

//fetch results into array to loop through//
while($row = mysql_fetch_array($result)) {
如果要输出HTML,必须关闭PHP

?>
现在,当您想在HTML标记内输出一些PHP变量时:

<span class="number"><?php echo $row['atomicNumber']; ?></span><br>

与HTML中的开始标记和结束标记类似,您可以将PHP代码包含在PHP标记中。

您可以使用两种方法,使用PHP响应HTML或在HTML中使用PHP

PHP打印HTML

HTML与PHP


我不确定是否在MySQL表中存储molmass、symbol、group和period,但很可能是这样。因为我不知道你给它们取了什么名字,请用你的冒号替换摩尔质量、原子符号、原子群和原子周期

你可以使用这个代码

    <?php
//query database (connection successful)//
$result=mysql_query("SELECT * FROM elementdata", $link);
//fetch results into array to loop through//
while($row = mysql_fetch_array($result)) {
    // echo the first line, i.e the div
    echo "<div id='{$row['name']}' class='element {$row['atomic_group']} {$row['atomic_period']}'>";
    // Echo the atomic number, symbol, name and molmass
    echo "<span class='number'>{$row['atomicNumber']}</span><br>";
    echo "<span class='symbol'>{$row['atomicSymbol']}</span><br>";
    echo "<span class='name'>{$row['name']}</span><br>";
    echo "<span class='molmass'>{$row['molmass']}</span><br>";
    echo "</div>";
}
?>
解释:{}是我们在字符串中插入$row[]语法所必需的,否则会给我们带来麻烦


Rest我们只需循环表中的所有内容,获取它们的名称以及它们所属的组和时段,创建一个div。然后我们打印它们的每个属性。

好吧,让我们尝试一种可能的方法:

<html>
<head>
</head>
<body>
<?php

open your db stuff

$query = " SELECT name,
                  symbol,
                  atomicnumber,
                  molmass,
                  otherstuff
           FROM periodictabletable
           WHERE index > 0 ";
$result = mysqli_query($cxn, $query) or die ("could not query database");

echo "<table>";
while ($row = mysqli_fetch_array($result))
{
  echo "<tr><td>".$row['name']."</td><td>".$row['symbol']."</td><td>".$row['atomicnumber']."</td><td>".$row['molmass']."</td></tr>";
}
echo "</table>";
?>
</body>
</html>
一旦启动并运行了它,就可以将各种格式标记嵌入到html中,只需确保对-class='numbercolor'之类的内容只使用单引号即可

但是有很多方法可以做到这一点。您可以用html创建表,然后用ajax调用填充它——这取决于您想做什么。
玩得开心

您如何知道查询将按打印顺序返回项目?换句话说,你怎么知道$row['atomicNumber']将正确表示氢?Burhan是对的,我编写的代码使其独立于MySQL返回的顺序,只要group和period类按预期工作,你就可以了。谢谢大家的回答。我想我知道我现在需要做什么了。Stackoverflow是一个很好的资源,我感谢您的时间。
    <?php
//query database (connection successful)//
$result=mysql_query("SELECT * FROM elementdata", $link);
//fetch results into array to loop through//
while($row = mysql_fetch_array($result)) {
    // echo the first line, i.e the div
    echo "<div id='{$row['name']}' class='element {$row['atomic_group']} {$row['atomic_period']}'>";
    // Echo the atomic number, symbol, name and molmass
    echo "<span class='number'>{$row['atomicNumber']}</span><br>";
    echo "<span class='symbol'>{$row['atomicSymbol']}</span><br>";
    echo "<span class='name'>{$row['name']}</span><br>";
    echo "<span class='molmass'>{$row['molmass']}</span><br>";
    echo "</div>";
}
?>
<html>
<head>
</head>
<body>
<?php

open your db stuff

$query = " SELECT name,
                  symbol,
                  atomicnumber,
                  molmass,
                  otherstuff
           FROM periodictabletable
           WHERE index > 0 ";
$result = mysqli_query($cxn, $query) or die ("could not query database");

echo "<table>";
while ($row = mysqli_fetch_array($result))
{
  echo "<tr><td>".$row['name']."</td><td>".$row['symbol']."</td><td>".$row['atomicnumber']."</td><td>".$row['molmass']."</td></tr>";
}
echo "</table>";
?>
</body>
</html>