2014-06-15 24 views
0

所以我試圖執行一個while循環爲數據庫時提交的值爲actual_quote和海報,當它有這些值它張貼div在那些值被顯示,並且對於每一行,爲該單行放置一個新的div。 我不知道該怎麼辦,有什麼幫助?雖然循環爲數據庫時提交的值發佈到div

<div class="wrapper"> 
<?php $db_name = 'submissions'; 
$db_user = 'root'; 
$db_pass = ''; 
$db_host = 'localhost'; 
mysql_connect("localhost", $db_user, $db_pass) or die(mysql_error()); 
mysql_select_db("submissions") or die(mysql_error()); 

我試圖從這裏開始的,而循環

while($info = mysql_fetch_array($actual_quote, $poster)) 
{ 
echo" 
<div class="submissions"> 
    <div class="logo-logo"><h2>Questions.</h2> 
<div class="checkboxes"><?= !empty($_GET['x']) ? $_GET['x'] : '' ?> 
</div> 

    </div> 
    <?php 
$actual_quote = mysql_query("SELECT actual_quote FROM data"); 
$info = mysql_fetch_array($actual_quote); 
?> 
<div class="top-submit"> 
<?php echo '&#8220;' . $info['actual_quote'] . '&#8221;'; ?> 
</div> 
<?php 
$poster = mysql_query("SELECT poster FROM data"); 
$info = mysql_fetch_array($poster); 
?> 
<div class="poster"><?php echo '-' . $info['poster']; ?> 
<div class = "like"> 
<a href = "javascript:countClicksLike();" class = "btn btn-large" style = "color:green;">Like</a> 
<p id = "like" style = "color:green;">0</p> 
</div> 
<div class = "dislike"> 
<a href = "javascript:countClicks();" class = "btn btn-large" style = "float:right; color:red;">Dislike</a> 
<p id = "dis" style = "color:red;">0</p> 
</div> 
</div> 
<!-- use select to get the items to stay on the page--> 

</div> 
</div>" 

} 
?> 

但我完全失去了。有什麼建議麼?

回答

0

我建議你最好開始使用PHP的PDO而非mysql擴展,它會爲你節省很多的麻煩,語法和錯誤處理有些清潔劑:

例子:

$DBH = new PDO('mysql:host=http://yourhost.com;dbname=yourdbname;charset=utf8', 'username', 'password'); 
$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

$STH = $DBH->prepare('SELECT * FROM `yourtable` WHERE `yourcolumn` = ?'); 
$STH->bindParam(1, $yourparam); 
$STH->execute(); 

$STH->setFetchMode(PDO::FETCH_OBJ); 

$mydata = array(); 
while ($var = $STH->fetch()) { 
    /* Retrieve the information */ 
    $mydata[] = $var; 
} 

$DBH = null; 

您可以使用prepared statements自動轉義所有無效或有問題的字符。你也可以做一個事先準備好的聲明,並重新使用它插入大型系列數據,同時它優化了整個過程:

$DBH = new PDO('mysql:host=http://yourhost.com;dbname=yourdbname;charset=utf8', 'username', 'password'); 
$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

$STH = $DBH->prepare('INSERT INTO `yourtable` (`column1`, `column2`) VALUES (?, ?)'); 

foreach($array as $value) { 
    $STH->bindParam(1, $value); 
    $STH->bindParam(2, $value); 
    $STH->execute(); 
} 

$DBH = null; 

你可以找到phpro.org's PDO tutorial pages更多信息。他們很好解釋。

和關於你的問題(一個使用PDO爲例):

<?php 
    $DBH = new PDO('mysql:host=http://yourhost.com;dbname=yourdbname;charset=utf8', 'username', 'password'); 
    $DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

    $STH = $DBH->prepare('SELECT * FROM `yourtable` WHERE `yourcolumn` = ?'); 
    $STH->bindParam(1, $yourparam); 
    $STH->execute(); 

    $STH->setFetchMode(PDO::FETCH_OBJ); 

    /* Store your data here */ 
    $mydata = array(); 
    while ($var = $STH->fetch()) { 
     $mydata[] = $var; 
    } 

    $DBH = null; 
?> 

<html> 
    <head> 
     <!-- TODO html header stuff --> 
    </head> 
    <body> 
     <?php 
     /* And use it here */ 
     foreach($mydata as $data) { 
      echo 
       '<div> 
        <span>'.$data->column1.'</span> 
        <span>'.$data->column2.'</span> 
        <span>'.$data->column3.'</span> 
       </div>'; 
     } 
     ?> 
    </body> 
</html> 

我建議你分開進入你的腳本收集數據的一部分,它顯示它的部分,即查詢在走之前標題(甚至是html元素)。然後,只要您想使用以前檢索的數據,就可以打開<?php … ?>標籤。