2014-10-28 77 views
0

我有一些非常簡單的代碼,它沒有做我想做的事情。我只是希望它將我的表中的年份類別的唯一編號輸入到下拉框中,但通過此代碼,我只能得到一個選項:$ row ['year']從數據庫中填充下拉框php

任何幫助讚賞。

<!DOCTYPE html> 
<html> 
<form name="testform" method='POST' action='mainck.php'> 
<?Php 
require "config.php"; 

echo "<br>Select year first <select name=year id ='s1' onchange=AjaxFunction();> 
<option value=>Select a Year</option>"; 

$sql="SELECT DISTINCT year from PlayerRegSeason"; 

foreach ($dbo->query(&sql) as $row) { 
    echo "<option value=$row['year']>$row['year']</option>"; 
    } 
?> 
</select> 
</form> 
</html> 
+0

試用'foreach($ dbo-> query($ sql)as $ row){' – Matteo 2014-10-28 22:43:20

+0

是不是我已經有? – user2884621 2014-10-28 22:52:16

+0

你已經得到了&sql而不是$ sql – 2014-10-28 22:53:34

回答

1

缺少標記中的很多引號。最好是約兩倍VS單引號一致,但以下至少應該工作:

<!DOCTYPE html> 
<html> 
<form name="testform" method='POST' action='mainck.php'> 
<?php 
require "config.php"; 

echo "<br>Select year first <select name='year' id='s1' onchange='AjaxFunction();'> 
<option value=''>Select a Year</option>"; 

$sql="SELECT DISTINCT year from PlayerRegSeason"; 

foreach ($dbo->query($sql) as $row) { 
    echo "<option value='".$row['year']."'>".$row['year']."</option>"; 
    } 
?> 
</select> 
</form> 
</html> 
+0

感謝您的幫助,但現在下拉菜單顯示:「。$ row ['year']」。 – user2884621 2014-10-28 22:44:46

+0

您更新了完整的代碼,看起來像上面那樣?聽起來像你可能有一個流氓報價搞砸了。 – 2014-10-28 22:52:29

+0

是的,甚至複製並嘗試了一個直接複製和粘貼。我覺得我已經嘗試過每一個引用組合。 – user2884621 2014-10-28 22:54:06

0

正如本說,一些變化將使其更容易的工作。但我會保留那些不需要PHP的東西。一定要正確使用HTML(它不會解決這個問題,但這是一個很好的習慣,像HEAD和BODY這樣的標籤)。

如果這仍然不起作用,請務必直接在phpMyAdmin或您的MySQL客戶端上檢查您的查詢。當我陷入這種情況時,我通常會做的另一件事是print_r()我的回報。

PS:在你的foreach再次檢查($ dbo->查詢(& SQL)爲$行){如果&是你想要的跡象。 (我不完全知道什麼是&跡象會在那裏做,所以我不好,如果我錯了)

我在你的代碼改變了一些東西,檢查出來:

<!DOCTYPE html> 
<html> 
    <body> 
     <form name="testform" method='POST' action='mainck.php'> 
      <label for="s1">Select year first</label> 
      <select name='year' id ='s1' onchange='AjaxFunction();'> 
       <option value=''>Select a Year</option> 
<?php 
    require "config.php"; 

    echo ""; 

    $sql="SELECT DISTINCT year from PlayerRegSeason"; 

    $return = $dbo->query($sql); 
    print_r($return); 

    foreach ($return as $row) { 
     echo "<option value='".$row['year']."'>".$row['year']."</option>"; 
    } 
?> 
      </select> 
     </form> 
    </body> 
</html> 
+0

嗯,非常感謝,看起來應該definitley工作,但仍然有同樣的問題。但是,我不認爲print_r中有任何內容(它剛剛出現在頁面上,對嗎?),所以我認爲sql有問題,儘管我已經嘗試了這個語句myphpadmin,它給我我想要的結果。 – user2884621 2014-10-28 23:03:31

+0

你使用的這個$ dbo對象是什麼?檢查你是否不應該使用類似$ var = $ dbo-> query($ sql); $ return = $ var-> result();或者類似的東西。這可能是問題之一。 – 2014-10-28 23:07:09