2013-09-28 89 views
0

我有我想要的內容呼應出一個數據庫表的HTML表格:剪短的PHP代碼回聲

<table style="width: 100%;"> 
<tbody> 
<tr> 
<td> 
<?php 
$ergebnis = mysql_query("SELECT Test FROM testtable"); 
while($row = mysql_fetch_object($ergebnis)) 
{ 
echo $row->Test; 
} 
</td> 
<td> 
<?php 
$ergebnis = mysql_query("SELECT Test2 FROM testtable"); 
while($row = mysql_fetch_object($ergebnis)) 
{ 
echo $row->Test2; 
} 
</td> 
</tr> 
</tbody> 
</table> 

有沒有辦法切斷PHP代碼短,因爲it'sa有點太長了

function query($a){ 
$ergebnis = mysql_query("SELECT $a FROM testtable"); 
while($row = mysql_fetch_object($ergebnis)) 
{ 
echo $row->$a; 
} 
} 

,並要求它像THI:在每一個

<?php 
$ergebnis = mysql_query("SELECT Test FROM testtable"); 
while($row = mysql_fetch_object($ergebnis)) 
{ 
echo $row->Test; 
} 
+2

爲什麼不只是查詢一次就獲取所有數據,而不是爲每列都運行查詢? – PeeHaa

回答

3

如果你的例子真的是你可能想而獲得一個查詢的所有數據,你在做什麼:

<?php 
$ergebnis = mysql_query("SELECT Test, Test2 FROM testtable"); 
$recordset = mysql_fetch_array($ergebnis, MYSQL_ASSOC); 
?> 

<table style="width: 100%;"> 
    <tbody> 
     <tr> 
      <?php foreach (array('Test', 'Test2') as $column) { ?> 
       <td> 
        <?php foreach ($recordset as $record) { ?> 
         <?php echo htmlspecialchars($record[$column], ENT_QUOTES, 'UTF-8'); ?> 
        <?php } ?> 
       <td> 
      <?php } ?> 
     </tr> 
    </tbody> 
</table> 

還要注意mysql_*函數已被棄用,並將很快從語言中刪除。如果你想確保你的代碼不會開始發送通知,甚至在將來會停止運行,你可能想要開始使用mysqli_*PDO

http://php.net/manual/en/mysqlinfo.api.choosing.php

另外請注意,我已經加入htmlspecialchars()以防止可能XSS attacks

+0

我得到一個錯誤,它說:非法字符串偏移在.... <?的PHP的foreach(陣列( '測試'),爲$柱){?> ​​ <?的PHP的foreach($記錄爲$記錄){?> <?PHP的回聲 '測試'用htmlspecialchars($紀錄[$列],ENT_QUOTES, 'UTF-8');?> user2800148

+2

這將意味着你提供的示例代碼並非行爲您正在使用的代碼。 – PeeHaa

0

好於WIRTE,你可以簡單地通過具有功能做s:

<table style="width: 100%;"> 
<tbody> 
<tr> 
<td> 
<?php 
$a = 'Test'; 
query($a); 
?> 
</td> 
<td> 
<?php 
$a = 'Test2'; 
query($a); 
?> 
</td> 
</tr> 
</tbody> 
</table> 
+0

謝謝,但我得到一個錯誤「調用未定義函數查詢....」 – user2800148

0

從中創建一個函數。並隨時隨地使用。

0

可以使這樣的功能:

function query($a){ 
$ergebnis = mysql_query("SELECT $a FROM testtable"); 
while($row = mysql_fetch_object($ergebnis)) 
{ 
echo $row->$a; 
} 
} 
+0

同樣的錯誤,像上面一樣。致命錯誤:調用未定義函數查詢.... – user2800148