2009-07-22 5 views
0

警告:はmysql_num_rows():線上 /home/ango/public_html/ficha/findUser.phpに供給 引数有効なMySQLの結果ではない リソース201はmysql_num_rows()の引数は無効

これはコードです:

$query = mysql_query("SELECT ango_turnos.planilla.fecha_turno, ango_turnos.planilla.cod_estado, ango_personas.dominio_interno.* FROM ango_turnos.planilla RIGHT OUTER JOIN ango_turnos.reserva ON ango_turnos.reserva.id_turno = ango_turnos.planilla.id_turno LEFT OUTER JOIN ango_turnos.paciente ON ango_turnos.reserva.id_reserva = ango_turnos.paciente.id_reserva LEFT OUTER JOIN ango_personas.dominio_interno ON ango_turnos.paciente.id_persona = ango_personas.dominio_interno.id_persona LEFT OUTER JOIN ango_turnos.horario_medico ON ango_turnos.planilla.id_horario = ango_turnos.horario_medico.id_horario"); 

if(mysql_num_rows($query)>0){ 
    while($row = mysql_fetch_array($query)){ 
     //echo some stuff from $row 
    } 
} 

データベースへの接続を含む警告またはエラーはありません。これが唯一の警告です。 SQLクエリが正常に動作し、PHPMyAdminで4行を返すので、問題の内容がわかりません。

答えて

4

あなたは何が悪かったのか確認するためにmysql_query()後にエラーチェックを追加する必要があります

if (!$query) { 
    die('Invalid query: ' . mysql_error()); 
} 
+0

さらに$ query = mysql_query(...)またはdie();となります。 – UnkwnTech

+0

さらに良い理由は?完全に主観的。 – hobodave

+0

mysql_query(..)またはdie(..);もっとPerl-ishで、if(!$ query)はCに似ています。完全に個人的なスタイルについて:) – MoshiBin

2

チャンスは、あなたのSQLクエリの実行中にエラーがあったです。

msqyl_errnomysql_errorで確認できます。

(補足として、開発マシン上でエラーメッセージを出力するのは問題ありませんが、プロダクションサーバーにいったんインストールするとエラーメッセージが出力されません。ファイルに記録する必要がありますので、いくつかの設定オプションを入れることを忘れてください)。

別のサイドノードとして:「クエリ」は、mysql_queryに与えるSQL文字列です。その関数の結果ではないので、あなたの$query変数は、将来コードを理解しやすくするために別の名前を持つ必要があります。