如何使用数据库中的数据动态创建新的 table (php)?
how can I dynamically create a new table (php) using data from a data base?
第一次问,请保持友好 :)...我正在尝试根据从我的数据库中获取的内容动态创建一个新的 table。 table 应该有 3 列,每列都有自己的 header(第一种情况:"plants",第二种情况:"users" 第三种情况:"email")和尽可能多的行从数据库带来的数据。此外,每个数据都重定向到另一个 php link。你能帮帮我吗?
这是一种页面应有的图形:
Example of the table im trying to do
这是我的代码:
<?php
$cn = mysql_connect("localhost","pablokvitca","") or
die("No se pudo conectar: " . mysql_error());
mysql_select_db("gaea");
$searched=$_GET['search'];
$sql1= "SELECT * FROM Plantas WHERE Nombre LIKE '%$searched%'";
$sql2= "SELECT * FROM Usuarios WHERE Username LIKE '%$searched%'";
$sql3= "SELECT * FROM Usuarios WHERE email LIKE '%$searched%'";
$result1=mysql_query($sql1);
$result2=mysql_query($sql2);
$result3=mysql_query($sql3);
$e1 = "";
$e2 = "";
$e3 = "";
$e1.='<table align="center" align="top">';
//$e1.='<th>Plantas</th>';
//$e2.='<th>Usuarios</th>';
//$e3.='<th>Mails</th>';
while ($row1 = mysql_fetch_array($result1)) { //plants
$e1 .= '<tr align=left>';
$pln = $row1['Nombre'];
$idp = $row1['idPlanta'];
$e1 .= '<td>';
$e1 .= "<div style=color:black;margin-left:50px;font-size:25px;>";
$e1 .= '<p> <a href="newPlanta.php?pltID='.$idp.'&viewer=true">Planta:'.$pln.'</a></p>';
$e1 .= "</div>";
$e1 .= '</td>';
$e1 .= '</tr>';
}
echo $e1;
//$e1.='</tr>';
//echo $e1;
while ($row2 = mysql_fetch_array($result2)) { //user
$e2 .= '<tr align=left>';
$usu = $row2['username'];
$e2 .= '<td>';
$e2 .= "<div style=color:black;margin-left:50px;font-size:25px;>";
$e2 .= '<p> <a href="perfil.php?id='.$usu.'">Usuario:'.$usu.'</a></p>';
$e2 .= "</div>";
$e2 .= '</td>';
$e2 .= '</tr>';
}
echo $e2;
while ($row3 = mysql_fetch_array($result3)) { //email
$ml = $row3['username'];
$e3 .= '<tr align=left>';
$e3 .= '<td>';
$e3 .= "<div style=color:black;margin-left:50px;font-size:25px;>";
$e3 .= '<p> <a href="perfil.php?id='.$ml.'">Email:'. $row3['email'].'</a></p>';
$e3 .= "</div>";
$e3 .= '</td>';
$e3 .= '</tr>';
}
echo $e3;
$e3.='</table>';
?>
虽然我必须承认,但我不明白为什么你要这样安排table。但是,我无法抗拒挑战!
我获取了所有数据并使用您想要的相同 table 结构构建了一个数组。然后一旦数组完成,我们可以 运行 一个 foreach 循环来构建 table.
我没有对此进行测试,因为我没有您的数据库 运行。在我看来,它确实有效。
<?php
// Build an array holding all of the data from each table
$rowNum = 0; // Start the count
while ($row1 = mysql_fetch_array($result1)) { //plants
$data[$rowNum]['col1']['Nombre'] = $row1['Nombre'];
$data[$rowNum]['col1']['idPlanta'] = $row1['idPlanta'];
$rowNum++;
}
$rowNum = 0; // Restart the row count
while ($row2 = mysql_fetch_array($result2)) { //user
$data[$rowNum]['col2'] = $row2['username'];
$rowNum++;
}
$rowNum = 0; // Restart the row count
while ($row3 = mysql_fetch_array($result3)) { //email
$data[$rowNum]['col3']['username'] = $row3['username'];
$data[$rowNum]['col3']['email'] = $row3['email'];
$rowNum++;
}
?>
<table align="center" align="top">
<tr>
<th>Plants</th>
<th>Users</th>
<th>Emails</th>
</tr>
<?php
// Run a foreach on the array to build out the table:
foreach($data as $key => $row){?>
<tr>
<td>
<?php
if(is_array($row['col1'])){
echo '<div style="color:black;margin-left:50px;font-size:25px;">';
echo '<p> <a href="newPlanta.php?pltID='.$row['col1']['idPlanta'].'&viewer=true">Planta:'.$row['col1']['Nombre'].'</a></p>';
echo '</div>';
}
?>
</td>
<td>
<?php
if($row['col2']){
echo '<div style="color:black;margin-left:50px;font-size:25px;">';
echo '<p> <a href="perfil.php?id='.$row['col2'].'">Usuario:'.$row['col2'].'</a></p>';
echo '</div>';
}
?>
</td>
<td>
<?php
if(is_array($row['col3'])){
echo '<div style="color:black;margin-left:50px;font-size:25px;">';
echo '<p> <a href="perfil.php?id='.$row['col3']['username'].'">Usuario:'.$row['col3']['email'].'</a></p>';
echo '</div>';
}
?>
</td>
</tr>
<?php } ?>
</table>
第一次问,请保持友好 :)...我正在尝试根据从我的数据库中获取的内容动态创建一个新的 table。 table 应该有 3 列,每列都有自己的 header(第一种情况:"plants",第二种情况:"users" 第三种情况:"email")和尽可能多的行从数据库带来的数据。此外,每个数据都重定向到另一个 php link。你能帮帮我吗?
这是一种页面应有的图形:
Example of the table im trying to do
这是我的代码:
<?php
$cn = mysql_connect("localhost","pablokvitca","") or
die("No se pudo conectar: " . mysql_error());
mysql_select_db("gaea");
$searched=$_GET['search'];
$sql1= "SELECT * FROM Plantas WHERE Nombre LIKE '%$searched%'";
$sql2= "SELECT * FROM Usuarios WHERE Username LIKE '%$searched%'";
$sql3= "SELECT * FROM Usuarios WHERE email LIKE '%$searched%'";
$result1=mysql_query($sql1);
$result2=mysql_query($sql2);
$result3=mysql_query($sql3);
$e1 = "";
$e2 = "";
$e3 = "";
$e1.='<table align="center" align="top">';
//$e1.='<th>Plantas</th>';
//$e2.='<th>Usuarios</th>';
//$e3.='<th>Mails</th>';
while ($row1 = mysql_fetch_array($result1)) { //plants
$e1 .= '<tr align=left>';
$pln = $row1['Nombre'];
$idp = $row1['idPlanta'];
$e1 .= '<td>';
$e1 .= "<div style=color:black;margin-left:50px;font-size:25px;>";
$e1 .= '<p> <a href="newPlanta.php?pltID='.$idp.'&viewer=true">Planta:'.$pln.'</a></p>';
$e1 .= "</div>";
$e1 .= '</td>';
$e1 .= '</tr>';
}
echo $e1;
//$e1.='</tr>';
//echo $e1;
while ($row2 = mysql_fetch_array($result2)) { //user
$e2 .= '<tr align=left>';
$usu = $row2['username'];
$e2 .= '<td>';
$e2 .= "<div style=color:black;margin-left:50px;font-size:25px;>";
$e2 .= '<p> <a href="perfil.php?id='.$usu.'">Usuario:'.$usu.'</a></p>';
$e2 .= "</div>";
$e2 .= '</td>';
$e2 .= '</tr>';
}
echo $e2;
while ($row3 = mysql_fetch_array($result3)) { //email
$ml = $row3['username'];
$e3 .= '<tr align=left>';
$e3 .= '<td>';
$e3 .= "<div style=color:black;margin-left:50px;font-size:25px;>";
$e3 .= '<p> <a href="perfil.php?id='.$ml.'">Email:'. $row3['email'].'</a></p>';
$e3 .= "</div>";
$e3 .= '</td>';
$e3 .= '</tr>';
}
echo $e3;
$e3.='</table>';
?>
虽然我必须承认,但我不明白为什么你要这样安排table。但是,我无法抗拒挑战!
我获取了所有数据并使用您想要的相同 table 结构构建了一个数组。然后一旦数组完成,我们可以 运行 一个 foreach 循环来构建 table.
我没有对此进行测试,因为我没有您的数据库 运行。在我看来,它确实有效。
<?php
// Build an array holding all of the data from each table
$rowNum = 0; // Start the count
while ($row1 = mysql_fetch_array($result1)) { //plants
$data[$rowNum]['col1']['Nombre'] = $row1['Nombre'];
$data[$rowNum]['col1']['idPlanta'] = $row1['idPlanta'];
$rowNum++;
}
$rowNum = 0; // Restart the row count
while ($row2 = mysql_fetch_array($result2)) { //user
$data[$rowNum]['col2'] = $row2['username'];
$rowNum++;
}
$rowNum = 0; // Restart the row count
while ($row3 = mysql_fetch_array($result3)) { //email
$data[$rowNum]['col3']['username'] = $row3['username'];
$data[$rowNum]['col3']['email'] = $row3['email'];
$rowNum++;
}
?>
<table align="center" align="top">
<tr>
<th>Plants</th>
<th>Users</th>
<th>Emails</th>
</tr>
<?php
// Run a foreach on the array to build out the table:
foreach($data as $key => $row){?>
<tr>
<td>
<?php
if(is_array($row['col1'])){
echo '<div style="color:black;margin-left:50px;font-size:25px;">';
echo '<p> <a href="newPlanta.php?pltID='.$row['col1']['idPlanta'].'&viewer=true">Planta:'.$row['col1']['Nombre'].'</a></p>';
echo '</div>';
}
?>
</td>
<td>
<?php
if($row['col2']){
echo '<div style="color:black;margin-left:50px;font-size:25px;">';
echo '<p> <a href="perfil.php?id='.$row['col2'].'">Usuario:'.$row['col2'].'</a></p>';
echo '</div>';
}
?>
</td>
<td>
<?php
if(is_array($row['col3'])){
echo '<div style="color:black;margin-left:50px;font-size:25px;">';
echo '<p> <a href="perfil.php?id='.$row['col3']['username'].'">Usuario:'.$row['col3']['email'].'</a></p>';
echo '</div>';
}
?>
</td>
</tr>
<?php } ?>
</table>