2014-04-09 117 views
-3

這段代碼的工作原理很好,但我想知道是否有更簡單的方法來編寫這樣的代碼?有沒有更高效的方法來做到這一點PHP代碼

<?php 
while($rows=mysql_fetch_array($result)){ 
$pid=$rows['id']; 
$d = $rows['date']; 
echo '<style>tr, td {border:0;} #dat{text-align:right;} #co {background-color:#33B533;}  </style>'; 
echo '<div id="postd">'; 
echo '<table id="mdata">'; 
echo '<tr>'; 
echo '<td>'; 
echo '<a href="profile.php?name='; 
echo $rows['name']; 
echo '">' . $rows["name"] . '</a>'; 
echo '</td>'; 
echo '<td id="dat">'; 
echo $result7 = nicetime($d); 
echo '</td>'; 
echo '</tr>'; 
echo '<tr>'; 
echo '<td>'; 
echo $rows['post']; 
echo '</td>'; 
echo '<td id="dat">'; 
echo '<form method="post" action="delete.php">'; 
echo '<input type="hidden" value="'; 
echo $rows['id'] . '" name="id" />'; 
echo '<input id="sub" type="submit" name="delete" value="Delete" />'; 
echo '</form>'; 
echo '<form method="post" action="edit.php">'; 
echo '<input type="hidden" value="'; 
echo $rows['id'] . '" name="id" />'; 
echo '<input id="sub" type="submit" name="edit" value="Edit" />'; 
echo '</form>'; 
echo '</td>'; 
echo '</tr>'; 
echo '<tr>'; 
echo '<td>'; 

$sql9 = "SELECT * FROM `like` WHERE postid='$pid' AND userid='$userid'"; 
$result9=mysql_query($sql9); 

if($result9){ 
echo '<form method="post" action="like.php">'; 
echo '<input type="hidden" value="'; 
echo $rows['id'] . '" name="id" />'; 
echo '<input type="hidden" value="'; 
echo $userid . '" name="nid" />'; 
echo '<input id="sub" type="submit" name="like" value="Like" />'; 
echo '</form>'; 
} 
echo '</td>'; 
echo '<td id="dat">'; 
if ($rows['like'] == 1) { 
echo $rows['like'] . " Like"; 
} else if ($rows['like'] == 0) { 
echo ""; 
} else { 
echo $rows['like'] . " Likes"; 
} 
echo '</td>'; 
echo '</tr>'; 
echo '</table>'; 
echo '</div>'; 

$sql2="SELECT * FROM comments WHERE postid='$pid' ORDER BY date ASC"; 
$result2=mysql_query($sql2); 

while($rows2=mysql_fetch_array($result2)){ 
$c = $rows2['date']; 
echo '<table id="co" border="1px solid black" width="250px" align="center">'; 
echo '<tr>'; 
echo '<td>'; 
echo $rows2['name']; 
echo '</td>'; 
echo '<td id="dat">'; 
echo $result4 = nicetime($c); 
echo '</td>'; 
echo '</tr>'; 
echo '<tr>'; 
echo '<td>'; 
echo $rows2['comment']; 
echo '</td>'; 
echo '</tr>'; 
echo '</table>'; 
} 

echo '<form action="addcomment.php" method="post">'; 
echo '<table id="co" border="1px solid black" width="250px" align="center">'; 
echo '<tr>'; 
echo '<td>'; 
echo '<textarea id="target" type="text" name="com" placeholder="Comment"></textarea>'; 
echo '</td>'; 
echo '<td>'; 
echo '<input type="submit" name="submit" value="Post">'; 
echo '</td>'; 
echo '</tr>'; 
echo '</table>'; 
echo '<input type="hidden" value="'; 
echo $rows['id'] . '" name="id" />'; 
echo '<input type="hidden" name="name" value="Jon" />'; 
echo '</form>'; 

echo '<br/>'; 


} 

?> 

基本上我創建了一個Facebook類型系統。這將按照它們在數據庫中發佈的順序對文章進行後臺打印。檢查它在http://bockhorst.comeze.com/Wall/wall.php它仍然是一項工作正在進行中。也沒有人知道一個PHP壓縮機?

+7

此問題似乎是無關緊要的,因爲它更適合codereview.stackexchange.com – Barmar

+0

您不需要單獨回顯所有這些標籤。事實上,除了實際使用PHP代碼之外,您可以在PHP代碼之外編寫HTML,而不需要任何迴應。 –

+0

不知道該網站,thx雖然 – jmbockhorst

回答

3

更有效的方法是使用合適的development framework,它爲代碼提供了一些結構和內聚。你在這裏得到的是一個SQL,HTML和代碼的燉菜。維護一個像這樣寫的應用程序是非常困難的。

此外,您正在使用過時的mysql_query過時的界面。請不要。它是可怕的。你真的應該使用ORM來處理你的日常數據庫接口,比如DoctrinePropel。這使得更容易正確組合查詢並處理數據,而不是試圖直接在SQL中呈現所有應用程序邏輯。

如果您在手動執行SQL時遇到問題,則需要使用PDO

相關問題