2

私はこのコードを持っています:

<?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';
?> 

このスクリプトを実行すると、次の警告が書き込まれます。

Warning: mysql_fetch_array() expects parameter 1 to be resource,
string given in H:\xampp\htdocs\rozpis.php on line 16

どこが問題なのか本当にわかりません。テーブルには3つの行がありますが、最初の1つだけが書き込まれ、次にこのメッセージが書き込まれます。$queryphpMyAdminで実行すると正しく実行されるか、使用するとecho mysql_num_rows($result)正しく返されます。

4

1 に答える 1

5

問題は、関数を使用していてextract、db列の1つに「result」という名前が付けられていることです。したがって、変数$ 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
于 2012-04-27T14:18:23.470 に答える