2010-12-01 31 views
2

我似乎無法獲得我的下拉列表中的表的值。 我沒有收到任何錯誤,只有一個空的下拉列表。 這是我的代碼:來自數據庫的項目的PHP下拉菜單

<?php    
include_once ("classes/Keten.class.php"); 
$keten = new Keten(); 
$allKet = $keten->getAllKetens(); 

echo '<select name="fk_keten_id">';    
while($row = mysql_fetch_array($allKet)) 
{ 
    echo '<option value="' . 
     $row['pk_keten_id'] . '">' . $row['keten_naam'] . '</option>'; 
} 
echo '</select>'; 
?> 

功能getAllKetens的作品,因爲我在其他頁面中使用它。

感謝提前:)

根據要求,在班getAllKet()函數/ Keten.class.php

public function getAllKetens() 
    { 
     include ("connection.php"); 
     $sSql = "SELECT * FROM tblKetens;"; 
     $vResult = mysqli_query($link, $sSql); 
     mysqli_close($link); 
     return($vResult); 
    } 
+1

你能調試$ allKet並讓我們知道你得到了什麼嗎? – RabidFire 2010-12-01 18:54:35

+1

做print_r($ allket); 它說什麼? – Breezer 2010-12-01 18:56:53

回答

2

我不確定混合mysqli和mysql命令可以完成,在你使用mysql_fetch_array而不是mysqli_fetch_array的fetch_array中。

0
  • 確保差錯已打開
  • 查看源代碼,如果有任何錯誤,他們會被select標記隱藏
  • 做一個print_r($allket);看看getAllKeten()是否實際返回了anyt興。
+0

與print_r($ allket);我得到一個「1」 – 2010-12-01 19:03:37

+0

@Glenn:那麼你需要檢查你的`getAllKetens`函數 - 可能會在你的問題中發佈代碼。 – casablanca 2010-12-01 19:08:34

0

你的這部分代碼看起來不錯:

echo '<select name="fk_keten_id">';    
while($row = mysql_fetch_array($allKet)) 
{ 
    echo '<option value="' . 
     $row['pk_keten_id'] . '">' . $row['keten_naam'] . '</option>'; 
} 
echo '</select>'; 

你的問題應該在於$ allKet。

你需要給Keten()任何參數來初始化任何東西嗎?

+0

沒有Keten()不需要參數 – 2010-12-01 19:14:57

0

我懷疑$ allKet不是你認爲的那樣。

首先,檢查HTML。如果你得到< select name =「???」> </select>然後

a)檢查$ allKet是一個資源(我認爲print_r會告訴你)。 b)檢查SQL是否選擇了行。 (在phpmyadmin中試用) c)檢查你的字段名是否有正確的拼寫。

如果您看到<期權價值=「??」> < /選項>條目,然後

a)檢查您要打印的字段名稱是正確的 b)檢查你是不是有隱藏它們別名(打印將顯示最後一個字段)。

向上打開錯誤報告(在php.inf中)並刪除所報告的任何錯誤。

+0

我發現的在HTML一個錯誤:<選擇名稱= 「fk_keten_id」>
警告:mysql_fetch_array():在提供的參數不是一個有效的MySQL結果資源/上線家居/ ****/addLocatie.php
我不是在本地主機上工作,所以我不能讓錯誤 – 2010-12-01 19:19:26

0

好,我知道了

使用:而($行= mysqli_fetch_assoc($ allKet))

代替:而($行= mysql_fetch_array($ allKet))

謝謝大家爲你的快速回復!

+0

這是很好的社區(和我們的聲譽),以紀念答案爲準幫助你(最)作爲「接受」 - 綠色複選標記 – zanlok 2010-12-01 19:49:37

1

您的功能getAllKetens()正在關閉數據庫。在關閉與數據庫的連接後,您不應該試圖獲取一行。

肥皂盒放在一邊:可能還會有更多的標準命名約定在那裏進行。如果你要返回一個mysql查詢對象的句柄,請考慮$ query或$ hQuery,而不是像(對我來說)那樣比$ allKet更加神祕。國際海事組織,如果一個函數被稱爲「getAllKetens()」它應該返回一個數組數組,而不是查詢句柄。