2013-10-13 20 views
1

我在制作一个元素周期表,并且是PHP的新手。关于如何完成这项任务的信息,我看了很多,但我找不到任何东西。我想要做的是查询我的数据库,并获得像原子的重量,名称,元素符号等的值,并让它们填充在我用HTML和CSS构建的元素周期表中。但是,我只是不知道要运行“while”循环并将数据填充到适当的空间中。我知道如何创建一个包含结果的表格,但我不明白如何将结果填充到已经创建的html结构中。这是我的代码的一部分。同样,我对PHP很新,所以任何帮助将不胜感激。我相当肯定,这与我放置我的开启/关闭php标签的位置有很大关系。本质上,我如何让循环识别HTML中的变量?我关闭php标签并重新打开?将MySQL中的值输出到预格式化的表中

非常感谢你。

<?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...// 

?> 
+0

您如何知道查询将按您打印的顺序返回项目?换句话说,你怎么知道'$ row ['atomicNumber']'会对氢起作用? –

+0

Burhan是对的,我写了我的代码,使它独立于MySQL返回它的顺序,只要组和期间类按预期工作,你应该没问题。 –

回答

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>"; 
} 
?> 

释:将{}是我们将$行[“”]语法的字符串所需,否则它带给我们的麻烦。

休息我们只是循环表中的所有内容,获取您所命名的内容以及它们属于哪个组和期间,创建一个div。然后我们打印它们的每个属性。

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标记中。

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>'; 
} 

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"><?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 
} 
-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调用它 - 取决于你想要做什么。 玩得开心!

+0

感谢大家的回答。我想我知道我现在需要做什么。 Stackoverflow是一个很好的资源,我感谢你的时间。 – user2752439