1

我正在制作元素周期表,并且是 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...//

?>
4

4 回答 4

1

您可以采用两种方法,使用 PHP 来回显 HTML 或在 HTML 中使用 PHP。

PHP 打印 HTML

<?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//
    echo '<div id="hydrogen" class="element group1 period1">';
    echo '    <span class="number">' . $row['atomicNumber'] . '</span><br>';
    echo '    <span class="symbol">H</span><br>';
    echo '    <span class="name">' . $row['name'] . '</span><br>';
    echo '    <span class="molmass">1.007&nbsp;94</span></div>';
}

带有 PHP 的 HTML

<?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"><?php echo $row['atomicNumber']; ?></span><br>';
        <span class="symbol">H</span><br>';
        <span class="name"><?php echo $row['name']; ?></span><br>';
        <span class="molmass">1.007&nbsp;94</span></div>';
<?php
}
于 2013-10-13T04:26:56.360 回答
0

你需要进出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 标记中。

于 2013-10-13T04:17:37.200 回答
0

好吧,我不确定您是否将 molmass、符号、组和句点存储在 MySQL 表中,但您很可能是。因为我不知道你给它们起什么名字,请用你的列名替换 molmass、atomicSymbol、atomic_group 和 atomic_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[''] 语法,否则会给我们带来麻烦。

休息一下,我们只是遍历表中的所有内容,获取您命名它们的名称以及它们所属的组和时期,创建一个 div。然后我们打印它们的每个属性。

于 2013-10-13T04:34:26.877 回答
-1

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

<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 调用填充它 - 取决于您想要做什么。玩得开心!

于 2013-10-13T04:35:59.893 回答