問題

2010-11-30 8 views
1

私は、出力が可能 問題

$max="SELECT MAX(num) FROM info"; 
$maxquery= mysql_query($max) or die (died); 
while($row = mysql_fetch_array($maxquery)){ 
    echo "The max num is ". $row['num']."this is it"; 
} 
$maxnum= mysql_fetch_array($maxquery); 
echo "<br>".$maxnum."hh"; 

PHP

でこのコードを持っている:

最大numが、これはそれ

HH


のはなぜですクエリは最大数を取得していませんでしたか?

テーブルはinfoと呼ばれ、これらのフィールドにはID、num、title、description、およびanswerがあります。編集後


私は、MySQLの私のクエリを試してみましたが、それが正常に動作します!

を "情報FROM MAX(NUM)を選択" と、それは助けることができるならば、これは私の完全なコードです:

<?php 
    $answer=$_GET["answerbox"]; 
    $ID=$_GET["TheID"]; 

    $host="localhost"; 
    $username="root"; 
    $password=""; 
    $db_name="game"; 
    mysql_connect("$host","$username","$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB"); 

    $max="SELECT MAX(num) FROM info"; 
    $maxquery= mysql_query($max) or die (died); 
    while($row = mysql_fetch_array($maxquery)) { 
     echo "The max num is ". $row['num']."this is it"; 
    } 

    $maxnum= mysql_fetch_array($maxquery); 
    $sql="SELECT * FROM info WHERE ID=".$ID; 
    $query = mysql_query($sql) or die(errorquery); 
    $row = mysql_fetch_array($query); 
    $trueanswer = $row['Answer']; 
    $num=$row['num']; 
    if ($num<$maxnum) 
    { 
     $numto= $num +1 ; 
     echo "<br>".$maxnum."hh"; 
    } 
?> 
+0

データベース内のどのデータ型がnumですか?そして、なぜmysql_fetch_array($ maxquery)を2回呼びますか? –

答えて

5

その後のコードでは、クエリが罰金を見ている

$max="SELECT MAX(num) as num FROM info"; 
$maxquery= mysql_query($max) or die (died); 
while($row = mysql_fetch_assoc($maxquery)) { 
    echo "The max num is ". $row['num']."this is it"; 
} 
+0

ありがとう、その仕事 – bobo

+0

なぜループが1つの値が来ているとき来ているそれは$行= mysql_fetch_assoc($ maxquery); echo "最大numは"です。 $ row ['num'] "これはそれです"; –

0

は、出力を分析し、次にMySQLのクエリウィンドウ内でクエリを実行します。そのようにして、PHPを途中で取得することなくクエリに集中することができます。

これを実行したら、実際に実行されているクエリが表示されるように質問を変更します。

0

になります。結果セットからデータを取得するコードを段階的に調べてください。

0

クエリが配列ではなくスカラー値を返すためです。 $ maxqueryは取得したい値です。

PHPで実行する前に、データベースに対してクエリをチェックすることをお勧めします。

1

結果セット内で探している列はnumではありません。 print_r($ row)を試してください。配列のインデックスが何であるかを知るために、またはそれにエイリアスを与えます。ここで

$max="SELECT MAX(num) AS max_num FROM info"; 
... 
    echo "The max num is ". $row['max_num'] 
1

別かつ簡単な方法です:データベース内の

$query="SELECT MAX(num) FROM info"; 
list ($max) = mysql_fetch_row(mysql_query($query)); 
print ($max); 

NUMフィールドは、これが適切に機能するためには(つまりint型などフロート)数値データ型である必要があります。