Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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中的神秘警告_Php_Mysql - Fatal编程技术网

php中的神秘警告

php中的神秘警告,php,mysql,Php,Mysql,我有以下代码: <?php include 'connect.inc.php'; include 'header.inc.php'; $mesiace = array("Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"); echo '<div id="rozpis">'; $

我有以下代码:

<?php
include 'connect.inc.php';  
include 'header.inc.php';


$mesiace  = array("Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl",     
"August", "September", "Október", "November", "December");

echo '<div id="rozpis">';
$sql = "SELECT game_id, rival_id, result, h_a, UNIX_TIMESTAMP(datum) AS datum FROM        game ORDER BY datum ASC";
$result = mysql_query($sql, $db) or die("ERROR: ".mysql_error());
if(mysql_num_rows($result) > 0)
{
echo '<table>';
echo   '<tr><td>Dátum</td><td>Domáci</td><td>Hostia</td><td>Výsledok</td></tr>';
while($row = mysql_fetch_array($result)) //here is the problem
{
extract($row);
$prikaz = 'SELECT rival_id, name FROM rival WHERE rival_id = '. $rival_id;
$vystup = mysql_query($prikaz, $db) or die(mysql_error($db));
$rival = mysql_fetch_array($vystup);
echo '<tr>';
echo '<td>' .date("j. F Y", $datum). '</td>';
if ($h_a == 1)
{
echo '<td> Capitals </td>';
echo '<td>' .$rival['name']. '</td>';
}
else 
{
echo '<td>' .$rival['name']. '</td>';
echo '<td> Capitals </td>';
}
echo '<td><a href="zapas.php?zapas='. $game_id.'">' .$result. '</td>';
echo '</tr>';  
}
echo '</table>';
}
else
echo 'No matches';

echo '</div>';

include 'zahlavie.php';
?> 

我真的不知道问题出在哪里。在表中,我有三行,但它只写第一行,然后写这个消息。当我在phpMyAdmin中运行
$query
时,它会正确运行;或者当我使用
echo mysql\u num\u rows($result)
时,它也会正确返回。

问题在于,您正在使用函数
extract
,其中一个db列被命名为“result”。因此,is将用一些字符串覆盖变量$result,这当然是错误的

$sql = "SELECT game_id, rival_id, result, h_a, UNIX_TIMESTAMP(datum) AS datum FROM        game ORDER BY datum ASC";
$result = mysql_query($sql, $db) or die("ERROR: ".mysql_error());
while($row = mysql_fetch_array($result)) {
    extract($row); // <- here is the problem
$sql=“按数据ASC从游戏顺序中选择游戏id、对手id、结果、h\U a、UNIX\U时间戳(数据)作为数据”;
$result=mysql\u query($sql,$db)或die(“错误:.mysql\u ERROR());
while($row=mysql\u fetch\u数组($result)){

extract($row);//如果
var\u dump($result),会得到什么
?什么是
$db
?是数据库的名称,还是运行
mysql\u connect
的结果?@GlitchMr:有人问PHP的
mysql
模块?当然,mysqli和PDO被认为更好,但使用原始的
mysql
模块并不少见…@Travesty3-对于旧的开发,是的,但是很多人使用旧的模块,因为他们不知道什么是最好的。让他们知道没有坏处!我还建议你的代码缩进得更好一点。Yikes,我以前从未遇到过这个函数。我会记得永远不要使用它!
;-)
+1:很好的地方。一个快速的解决方案是使用e> EXTR_PREFIX_ALL
在字段前面加上前缀。
$sql = "SELECT game_id, rival_id, result, h_a, UNIX_TIMESTAMP(datum) AS datum FROM        game ORDER BY datum ASC";
$result = mysql_query($sql, $db) or die("ERROR: ".mysql_error());
while($row = mysql_fetch_array($result)) {
    extract($row); // <- here is the problem