Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL查询中的表值问题_Php_Mysql_Web - Fatal编程技术网

Php SQL查询中的表值问题

Php SQL查询中的表值问题,php,mysql,web,Php,Mysql,Web,好的,所以我使用了一些我在网上找到的php/SQL脚本来托管一个三月疯狂池网站。这是一个痛苦的设置和调试的家伙代码,但我基本上得到了它的工作。出于某种原因,作者创建了一个“括号”表和一个“分数”表 “方括号”表要大得多,包含以下变量:id、姓名、人物、电子邮件、时间、平局决胜局以及所有63个人游戏选择。每个括号的id增量。名称实际上是创建者给括号起的名称。person是人名。等等 出于某种原因,这家伙做了一个单独的表来给括号打分。“分数”表包含变量:id、名称、分数和分数类型 通过将数据实际显示

好的,所以我使用了一些我在网上找到的php/SQL脚本来托管一个三月疯狂池网站。这是一个痛苦的设置和调试的家伙代码,但我基本上得到了它的工作。出于某种原因,作者创建了一个“括号”表和一个“分数”表

“方括号”表要大得多,包含以下变量:id、姓名、人物、电子邮件、时间、平局决胜局以及所有63个人游戏选择。每个括号的id增量。名称实际上是创建者给括号起的名称。person是人名。等等

出于某种原因,这家伙做了一个单独的表来给括号打分。“分数”表包含变量:id、名称、分数和分数类型

通过将数据实际显示到网站的脚本进行排序,我不知道创建者在想什么,但几乎所有显示的数据都使用“分数”表

我的问题:分数表中没有用于人名的变量。因此,排名和括号都是按照给出括号的人的名字来显示和组织的。人们一直问我谁的括号是谁的。我想这是一个快速解决方案来实现它,但男孩是我错了。我是MySql新手,并不完全了解我在做什么。但我查了一些东西,我尝试了很多东西,但都没能成功

我的尝试:我曾考虑将这些表格合并为一个表格,但我不想在每年设置一次的表格上花费数小时。考虑到两个表都有两个相同的值,name和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,点击“括号”,然后点击“名称”,肯定有一个括号的名称值为“beaster”

谢谢

这应该能奏效。你还有
爆炸机“。。结账也应该是
,而不是'


更好的方法:

$mysqli = new mysqli("localhost", "username", "password", "database_name");

$query = "SELECT person FROM brackets WHERE name='{$name}'";
$result = $mysqli->query($query);

while($row = $result->fetch_array())
{
    var_dump($row);
}

您是否检查了脚本中的拼写和字母大小写?无论如何,您不应该在新代码中使用mysql_*函数。使用MySQLi或PDO等替代方案;这将使类似这样的问题更容易调试。我试过了,这是一个错误:您的SQL语法中有一个错误;查看与MySQL服务器版本对应的手册,以了解在第1行中name='beasters'附近使用的正确语法,我假设我需要在所有页面上放置$mysqli行?
$mysqli = new mysqli("localhost", "username", "password", "database_name");

$query = "SELECT person FROM brackets WHERE name='{$name}'";
$result = $mysqli->query($query);

while($row = $result->fetch_array())
{
    var_dump($row);
}