0

次のphp/sqlに問題があります。mysql ターミナルで sql を実行したところ、完全に機能しました。また、文字列を警告する接続ステートメントを試してみましたが、データベースに接続すると文字列を正常に警告しました。このコードには、2 つの整数を返す必要があるときに null を返すエラーがあります。助言がありますか?

$xmax = mysql_fetch_row(mysql_query('SELECT MAX(x) AS xmax FROM headerfooter WHERE site = "Brighter_Vista" AND location = 0'));
$xmax = $xmax['xmax'];
$ymax = mysql_fetch_row(mysql_query('SELECT MAX(y) AS ymax FROM headerfooter WHERE site = "Brighter_Vista" AND location = 0'));
$ymax = $ymax['ymax'];
echo '<script>alert("'.$xmax.$ymax.'")</script>';
4

2 に答える 2

1

コードの残りの部分は表示されませんが、次のようにして、これを1つのクエリに絞り込むことができます。

  $connection = mysql_connect(
        $DB_hostname, 
        $DB_username, 
        $DB_password) or die(mysql_error());
  mysql_select_db($DB_name, $connection);

  $query = mysql_query("
      SELECT MAX(x) AS xmax, MAX(y) AS ymax 
      FROM headerfooter 
      WHERE site = 'Brighter_Vista' AND location = '0'
  ", $connection) or die(mysql_error());

  while ($row = mysql_fetch_array($query))
  {
     $xmax = $row['xmax'];
     $ymax = $row['ymax'];
  }

  echo '<script>alert("'.$xmax.$ymax.'")</script>';

ただし、時間、能力があり、学びたい場合は、(他の人が指摘しているように)mysqliまたはPDOのいずれかを調べて使用する必要があります。賢明なアドバイスとやがてあなたはその理由を理解するでしょう。

于 2012-11-21T02:15:36.560 に答える
1

最も簡単な解決策は、SQL ステートメントがエラーを返しているかどうかを確認することです。

mysql_query('SELECT MAX(y) AS ymax FROM headerfooter WHERE site = "Brighter_Vista" AND location = 0') or die('Error: '.mysql_error());

補足: もう mysql_* 関数を使用しないでください。その時が過ぎました。mysqliまたはPDOのいずれかを使用

于 2012-11-21T02:04:40.707 に答える