好吧,我使用了一些我在网上找到的用于主办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