2012-01-25 15 views
1
function getDepartmentAndCondition($dep, $userid, $cond) { 
    $result = mysql_query("SELECT * FROM department WHERE ID='$dep'"); 
    while($row = mysql_fetch_array($result)) 
    { 
     $DepConInfo['Department'] = $row['Department']; 
    } 
    $userName = mysql_query("SELECT * FROM users WHERE FacebookID = '$userid'") or die ("<hr>error in SQL query: " . mysql_error() . "<hr>"); 
    while($row = mysql_fetch_array($username)) { 
     $DepConInfo['Name'] = $row['name']; 

    } 

    $result2 = mysql_query("SELECT * FROM condition WHERE ID= '$cond' ") 
    or die("<hr>error in SQL query: " . mysql_error() . "<hr>"); 
    while($row2 = mysql_fetch_array($result2)) 
    { 
     $DepConInfo['Condition'] = $row2['Condition']; 
    } 


    return $DepConInfo; 

} 

$dep$userid、および$condはすべてint秒です。最初の1 $DepConInfo['Department']は、右の文字列を返しているが、他の2つは[OK]を、私は機能 PHP、MySQLのクエリの異なるテーブルは

function getCondition($cond) { 
    $query = "SELECT * FROM condition WHERE ID = '$cond' "; 
    $sql = mysql_query($query); 

    if (!$sql) { 
    $message = 'Invalid query: ' . mysql_error() . "\n"; 
    $message .= 'Whole query: ' . $query; 
    die($message);  
} 
    while($row2 = mysql_fetch_array($sql)) 
     { 
     $condition = $row2['Name']; 
     } 
    return $condition; 
} 

を書き直し

Warning: mysql_fetch_array() : supplied argument is not a valid MySQL result resource in ...


エラーで失敗が、私はまだエラーを取得しています:
Invalid query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'condition WHERE id = '1'' at line 1 Whole query: SELECT * FROM condition WHERE ID = '1'

表 "条件"には、2つの列 "ID"と "名前"があります。

+0

データベースのテーブルに条件用の行があることを確認してください。 – footy

答えて

3
while($row = mysql_fetch_array($username)) { 

PHPは、大文字と小文字が区別されます:あなたは間違っているキャップで$usernameを持っている -

$DepConInfo['Name'] = $row['name']; 

はおそらく間違っている第一および第三のクエリであなたの命名規則に基づいて、さらに$userName

する必要があります大文字にする必要があります。$row['Name']

0
function getDepartment($dep) { 
    $sql = "SELECT * FROM department WHERE ID = '$dep'"; 
    $result = mysql_query($query); 
    if (!$result) { 
     echo 'Could not run query: ' . mysql_error(); 
     exit; 
    $row = mysql_fetch_row($result); 
    $department = $row['Department']; 
    } 
    return $department; 
} 

function getName($userid) { 
    $sql = "SELECT * FROM users WHERE FacebookID = '$userid'"; 
    $result = mysql_query($sql); 
    if (!$result) { 
     echo 'Could not run query: ' . mysql_error(); 
     exit; 
    $row = mysql_fetch_row($result); 
    $user_name = $row['Name']; 
    } 
    return $username; 
} 

function getCondition($cond) { 
    $sql = "SELECT * FROM condition WHERE id = '$cond'"; 
    $result = mysql_query($sql); 
    if (!$result) { 
     echo 'Could not run query: ' . mysql_error(); 
     exit; 
    $row = mysql_fetch_row($result); 
    $condition = $row['Condition']; 
    } 
    return $condition; 
} 

$department = getDepartment($dep); 
$username = getName($userid); 
$condition = getCondition($cond); 

私は私の頭からこれを書いているので、私はそれを試していませんでしたが、それはうまくいくはずです。もし私に知らせてくれないなら。 dbaseテーブルとカラム名の大文字と小文字を使用して大文字を使用すると、混乱を招く可能性があります。 $ sqlを使用してクエリを格納し、$ resultを使用して結果を格納します。これはより説明的です。がんばろう!

+0

これはあなたの問題に対する先住民の回答ですが、このスタイルは将来の問題の予防と解決にも役立ちます。 – sidneydobber

+0

okだから私は関数を書き換えた function getCondition($cond) { $query = "SELECT * FROM condition WHERE id = '$cond' "; $sql = mysql_query($query); if (!$sql) { $message = 'Invalid query: ' . mysql_error() . "\n"; $message .= 'Whole query: ' . $query; die($message); } while($row2 = mysql_fetch_array($sql)) { $condition = $row2['Name']; } return $condition; }

+0

コーディング規約とベストプラクティスを教えてくれる素晴らしい本があります。これは私を助けてくれました。これは「クリーンコード」と呼ばれ、すべてのコーダーで読み取られなければなりません。 [AmazonのClean Code](http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882) – sidneydobber

関連する問題