好吧,我使用了一些我在網上找到的用於主辦March Madness pool網站的php/SQL腳本。設置和調試這些傢伙代碼是一件很痛苦的事情,但我基本上已經開始工作了。出於某種原因,作者創建了一個「括號」表和一個「分數」表。 「括號」表格要大得多,並且包含id,姓名,人物,電子郵件,時間,tiebreaker以及全部63人的遊戲選擇的變量。 id爲每個括號遞增。名稱實際上是創建者給出的名稱的名稱。人是人的名字。等等。SQL查詢中的表值問題
出於某種原因,這傢伙爲括號劃分了一個單獨的表格。 「分數」表格包含變量:id,name,score和scoring_type。
通過數據實際顯示到網站的腳本排序,我不知道創建者在想什麼,但幾乎所有顯示的數據都使用「分數」表。
我的問題:分數表沒有人名的變量。所以排名和括號都是按照人給出括號的名字顯示和組織的。人們不停地問我哪個支架是誰的。我想這是實施它的一個快速解決方案,但男孩是我錯了。我是MySql的新手,並沒有完全理解我在做什麼。但我看了一些東西,我已經嘗試了很多東西,不能讓它工作。
我試過的東西:我在考慮把表格合併成一個表格,但我不想花幾個小時在我每年設置一次的東西上。對兩個表格進行圖形化都有兩個相同的值,名稱和ID,我試着做一些查詢來匹配值並請求變量「person」。但這些都沒有奏效。
我在幾個不同的方式修改此:
$query = "SELECT person FROM `brackets' WHERE name='$name'";
$result = mysql_query($query,$db) or die(mysql_error());
echo "mysql_result($result)";
我使用和不使用變量嘗試。我也試過:
$query = 'SELECT * FROM `brackets';
$result = mysql_query($query,$db) or die(mysql_error());
$dataArray = array(); // create a variable to hold the information
while (($row = mysql_fetch_array($result, MYSQL_ASSOC)) !== false){
$dataArray[] = $row; // add the row in to the results (data) array
}
$personsNameToDisplay = personsName($name, $dataArray);
echo "$personsNameToDisplay";
有了一個功能,我也試圖與幾種方法:
function personsName($passedBracketName, $dataArray){
$personsMatchedName;
foreach ($dataArray as $key => $value){
if($value == $passedBracketName){
$personsMatchedName = $value['person'];
}
}
return $personsMatchedName;
}
的錯誤,我已經得到的是:
Table 'mlmadness.brackets' WHERE name='beasters'' doesn't exist
然而,當我進入mySQL,並點擊「括號」,然後「名稱」肯定是名稱值爲「beasters」的支架
個感謝
你有你的腳本檢查拼寫和字母大小寫? – 2013-03-22 01:14:33
是的,幾次。 – ModdedLife 2013-03-22 01:15:05
反正你不應該爲新代碼使用mysql_ *函數。使用MySQLi或PDO等替代方案;它會使這樣的問題更容易調試 – 2013-03-22 01:16:34