Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.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 如何使用select查询一次获取所有两个数组值_Php_Mysql_Select - Fatal编程技术网

Php 如何使用select查询一次获取所有两个数组值

Php 如何使用select查询一次获取所有两个数组值,php,mysql,select,Php,Mysql,Select,我想在最近的时间得到名字和相应的分数。所以我试着: $queryObj = mysql_query("SELECT `Name`,`Score` from `Table`.`Score` where `Date` = ( SELECT max(`Date`) from `Table`.`Score`) and `Name`<>'' "); 但当我打印时: print_r(array_values($searches)); 数组中缺少第一个值,因此这不

我想在最近的时间得到名字和相应的分数。所以我试着:

    $queryObj = mysql_query("SELECT `Name`,`Score` from `Table`.`Score` where `Date` = (    SELECT max(`Date`)    from `Table`.`Score`) and `Name`<>'' "); 
但当我打印时:

    print_r(array_values($searches));
数组中缺少第一个值,因此这不是正确的方法。 我还尝试:

    $row = mysql_fetch_assoc($queryObj);
    for ($i = 0; $i <3; $i++)
    print( $row['Name'][$i]." Score: ".$row['Score'][$i]."<br />\n");
注意:是的,有一些空白值

我的预期结果是:

abc score 3
jane score 1
tarzan score 1

好的,在您更新了您的问题并提供了您期望的内容之后,您的查询应该如下所示:

SELECT t1.Name, t1.Score 
FROM Table.Score t1
INNER JOIN
(
    SELECT max(Date) MaxDate, Name, Score
    FROM Table.Score
            WHERE Name <> ''
    GROUP BY Name
) t2
    ON t1.Name = t2.Name AND t1.Date = t2.MaxDate
然后:

您可以按照您在上一次评论中希望的方式很好地
foreach

foreach($rows as $name => $score) {
    echo $name . ' - ' . $score . "\n";
} 

你说的第一个值是什么意思?您确定查询返回了有效的结果吗?您是否使用PHPMyAdmin进行了测试?您确定这不是查询结果的问题吗?(您是否尝试在mysql中执行它?)。另外,不要使用
mysql.*
函数-它们是不推荐的,我非常确定这是正确的查询。我在phpmyadmin中测试了sql,它返回两列、三行结果。请显示表中的示例数据。现在很难说,为什么它丢失了。你需要在提问之前阅读mysql文档。不,对不起,这不是我的愿望。我想得到所有的行,并能够打印它的值。就像在编辑后的文章中一样。是的,现在当你编辑问题并显示预期结果时,我可以看到你在追求什么,我将很快提供解决方案,将编辑我的答案。我如何将它们放入php中的变量中,然后打印出来?只需将你的查询
选择名称…
替换为我在编辑中提供的查询,do
$row=mysql\u fetch\u assoc($queryObj);然后
var\u dump($row)它是一个数组。我仍然不知道我可以用php打印它吗?实际上,我的查询没有问题,但我有问题,如何将查询结果输入php变量并打印出来。使用您在phpmyadmin中的查询,我得到了一个额外的行,我认为这不是很精确。
SELECT t1.Name, t1.Score 
FROM Table.Score t1
INNER JOIN
(
    SELECT max(Date) MaxDate, Name, Score
    FROM Table.Score
            WHERE Name <> ''
    GROUP BY Name
) t2
    ON t1.Name = t2.Name AND t1.Date = t2.MaxDate
$queryObj = mysql_query(" ... "); 
$rows = array();

while($row = mysql_fetch_assoc($queryObj)) {
    $rows[$row['Name']] = $row['Score'];
}
foreach($rows as $name => $score) {
    echo $name . ' - ' . $score . "\n";
}