2011-12-28 17 views
0

次のPHP/MySQLクエリを実行しようとしていますが、最初の2つのグループでうまく動作しますが、他の人はMySQLエラーが発生しています。mysqlクエリで問題が発生しましたか?

$user =& JFactory::getUser(); 
$N = $user->get('name'); 
$username = $user->get('username'); 
$groups = $user->get('groups'); 

foreach($groups as $groupName=>$groupId) 
{ 
} 

$G=$groupName; 

if ($G=="Management Staff") 
    $result = mysql_query("SELECT * FROM hqfjt_chronoforms_data_addupdatelead"); 
elseif ($G=="Website Developers") 
    $result = mysql_query("SELECT * FROM hqfjt_chronoforms_data_addupdatelead"); 
else 
    $result = mysql_query("SELECT * FROM hqfjt_chronoforms_data_addupdatelead WHERE createdby=$N"); 

私は他の誰としてログインすると、私が得る:

$result = mysql_query("SELECT * FROM hqfjt_chronoforms_data_addupdatelead WHERE createdby='$N'"); 

でなければなりません

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\server2go\server2go\htdocs\chandlers\components\com_jumi\views\application\view.html.php(38) : eval()'d code on line 87

Warning: mysql_free_result() expects parameter 1 to be resource, boolean given in C:\server2go\server2go\htdocs\chandlers\components\com_jumi\views\application\view.html.php(38) : eval()'d code on line 132

+0

どのようなエラーが表示されますか? –

+0

私はそれを上に追加しました –

+0

エラーが参照している 'mysql_fetch_object'への呼び出しはどこですか?上記のコードスニペットに 'mysql_fetch_object'の呼び出しがありません。 '$ result'のこのブロックの後に来ますか?この場合、 '$ result'はセットされていないように見えます。 – Batkins

答えて

0
$result = mysql_query("SELECT * FROM hqfjt_chronoforms_data_addupdatelead WHERE createdby=$N"); 

は、魚です確かに、$ Nには何も悪いことはありません。

+0

ありがとう、それは今働いていて、そのユーザーによって作成された結果を表示するだけです。ありがとうございます:-)、私はそれが私を可能にするあなたの答えをすぐに受け入れます。 –

0

これは単にstackoverflowへのあなたのコピー/ペーストジョブが貧弱だとはっきりしていませんが、あなたの中括弧がすべて並べ替えられていないようです。

$username = $user->get('username'); 
$groups = $user->get('groups'); 
foreach($groups as $groupName=>$groupId) { 
    $G=$groupName; 
    if ($G=="Management Staff") 
    $result = mysql_query("SELECT * FROM hqfjt_chronoforms_data_addupdatelead"); 
    elseif ($G=="Website Developers") 
    $result = mysql_query("SELECT * FROM hqfjt_chronoforms_data_addupdatelead"); 
    else 
    $result = mysql_query("SELECT * FROM hqfjt_chronoforms_data_addupdatelead WHERE  createdby=$N"); 
} 

あなたのforeachループが実際にその下のコードを実行するようにします。

foreach($groups as $groupName=>$groupId) {} 

そしてあなたが外foreach文から変数のいずれかを使用しようと進みます。それはこのように書かれているので、あなたがあなたの質問に貼り付けコードは、ループ内では何も実行しないループごとに持っていますループ:

$G=$groupName; 
if ($G=="Management Staff") 
... 

$groupName変数だけforeachループの範囲内で設定されるので、動作しません。