[英]SQL Data: HTML Table display of column data containing multiple rows
我什至不確定如何正確地提出問題,否則我可能會找到答案。 因此,我將盡力解釋。
我正在使用一個名為SLDB的腳本(我沒有編寫這些腳本),按目前的情況來看,這些腳本的功能與廣告宣傳的一樣。 我希望將存儲的數據回調到網站表中(而不是腳本的設計目的)。
當前,SLDB的設置方式以這種方式存儲字段:
ID Field Value
001 name name1
001 size size1
002 name name2
002 size size2
003 name name3
003 size size3
在將變量傳遞到database.php腳本的主腳本中,它將名稱和大小傳遞為“字段”,然后將它們的每個值傳遞為“值”。
我想在網頁上顯示的是:
ID Name Size
001 name1 size1
002 name2 size2
003 name3 size3
實際上,我寧願重寫原始腳本和database.php腳本以這種方式創建和更新表,但在可能之前,我寧願找到一種無需重寫即可完成任務的方法。 。
我對MySQL不夠熟練,無法理解如何獲取具有多個變量的字段(Field,Value)以單獨顯示在一行中。 當前,它是這樣打印出來的:
http://wickednight.net/contests/photo-december/results.php
這是我編寫的用於在html中顯示表格的簡單php腳本:
<?php
$con=mysqli_connect("localhost","***","***","***");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM sldb_data");
echo "<table border='1' class='db-table' align='center'>
<tr>
<th>Name</th>
<th>Size</th>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['field'] . "</td>";
echo "<td>" . $row['value'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?>
我意識到,按照編寫的要求,此腳本的功能與要求的完全一樣。 我認為,我需要完成的工作很明顯。 任何幫助是極大的贊賞。
這應該工作:
SELECT t1.uuid, t1.value AS name, t2.value AS size FROM sldb_data t1, sldb_data t2
WHERE t1.uuid = t2.uuid AND t1.field = "name" AND t2.field = "size"
簡短說明:
您可以為查詢中的表使用其他名稱。 當您的表名稱很長或毫無意義時,這很好。 這是在FROM部分完成的。 “ sldb_data t1”為表“ sldb_data”賦予名稱“ t1”。
因為我們想從同一個表中獲取兩個不同的行,所以我們不得不使用同一個表兩次,但是必須給它兩個不同的名稱,否則mysql並不知道您到底想要什么。 您可以認為它好像有兩個相同的表。
現在我們在t1的field =“ name”中查找一行,在t2的field =“ size”中查找一行,但僅將它們與相同的uuid匹配。
SELECT之后,我們只列出我們想要的結果中的字段。 再一次,我們給字段起一個名字。 但是對於字段,您必須使用“ as”。
我不確定您想要什么,但是可以說存儲表單字段名稱及其每個值不是一個好主意。 可能您已經知道我們使用post / get方法將名稱和值用於插入目的。
您的sldb_data表可能有
id(PK) name( varchar) size(int)
在三列中,然后像
SELECT name,size FROM sldb_data
和你的代碼應該
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['size'] . "</td>";
echo "</tr>";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.