2016-02-20 35 views
0

我有一張名爲pages的表格,和兩個在名爲Page的列中具有相同單詞'about'的條目。我想根據具有相同頁面名稱的條目數量創建div我的php循環出了什麼問題?

這應該很容易,但它不能看到它出錯的地方。

我有一個變量稱爲頁,我附和到索引頁,它看起來像這樣:

$page = pageDivs($dbc, $path['call_parts'][0]) 

$path變量將等於「約」串在這種情況下。

功能pageDivs($dbc, about)要麼是這樣的:

function pageDivs($dbc, $id){ 
$q="SELECT * FROM pages WHERE Page='$id'"; 
$r = mysqli_query($dbc, $q); 
$data=mysqli_fetch_assoc($r); 
for ($i=1; $i<count($data); $i++) { 
    echo '<div id="Content'.$i.'">'.$data['Content'].'</div>'; 
    } 
} 

或本:

function pageDivs($dbc, $id){ 
$q="SELECT * FROM pages WHERE Page='$id'"; 
$r = mysqli_query($dbc, $q); 
$data=mysqli_fetch_assoc($r); 
$i=1; 
foreach ($data AS $value){ 
    if ($i>count($data)){ 
    echo '<div id="Content'.$i.'">'.$value['Content'].'</div>'; 
    $i++; 
     } 
    } 

或本:

function pageDivs($dbc, $id){ 
$q="SELECT * FROM pages WHERE Page='$id'"; 
$r = mysqli_query($dbc, $q); 
$data=mysqli_fetch_assoc($r); 
$i=1; 
foreach ($data AS $key=>$value){ 
    if ($i>count($data)){ 
    echo '<div id="Content'.$i.'">'.$data[$i]['Content'].'</div>'; 
    $i++; 
     } 
    } 
} 

我試圖fetch_assocfetch_array和每一個組合,除了明顯一個爲$k => $v,我把$數據無處不在,或者到處都是$key或者$value。這讓我瘋狂。

我很明顯在這裏失去了一些基本的東西,所以有人請你能夠啓發我。我真的不在乎我是否使用for循環或foreach循環。結果應該是一樣的。有時我會得到7次入口1的迭代,其他人什麼也沒得到。顯然有2個條目具有相同的名稱,因此在這種情況下,最大爲div,但我希望它保持動態。

+1

這些諮詢以下鏈接http://php.net/manual/en/mysqli.error.php和http://php.net/manual/en/function.error-reporting.php 和應用即代碼和var_dump並查看HTML源代碼。 –

+1

(我不能確定,因爲它不在片段中)你是否打開了數據庫連接(對不起,如果這是侮辱)?此外,Sql Injection也是開放的。 – Krii

+0

$ dbc是我的數據庫連接,它已經被證明可以工作。這是問題的循環 –

回答

0

While循環是一個:

function pageDivs($dbc, $id){ 
$q="SELECT * FROM pages WHERE Page='$id'"; 
$r = mysqli_query($dbc, $q); 
$i=1; 
while ($data=mysqli_fetch_assoc($r)){?> 
    <div id="Content<?php echo $i; ?>"> 
     <?php echo $data['Content']?> 
    </div> 
    <?php $i++; 
    } 
} 
0

$data變量只能有一個結果,並且它能夠更好地使用mysqli_num_rows($r);爲計數目的,你有多少結果有。

<?php 
function pageDivs($dbc, $id){ 
$q="SELECT * FROM pages WHERE Page='$id'"; 
$r = mysqli_query($dbc, $q); 
//$data=mysqli_fetch_assoc($r); 
$numofrowresult=mysqli_num_rows($r); //Count how many result you have 
echo $numofrowresult; 
$i = 1; //initalize counter for the unique id 

foreach($r as $values) 
{ 
     echo '<div id="Content'.$i.'">'.$values['Content'].'</div>'; 
     $i++; 
} 
} 

?>