0

これがphpでのクエリの私のコードです:

$query3 = mysql_query("SELECT * FROM area_of_work") or die('Invalid query:'. mysql_error());

while($query3 = mysql_fetch_assoc($query3)){
    $flag = true;
    foreach($listOfUserAreas as $obj){
        if($obj->areaId == $query3['id']){
            $flag = false;
            break;
        }  
    }
    if($flag){
        $areaObj = new AreaInfo();
        $areaObj->areaId = $query3['id'];
        $areaObj->areaName = $query3['areaOfWork'];
        $areaObj->areaTableName = $query3['tableName'];
        array_push($listOfUnusedAreas, $areaObj);
    }
}

そして私はこのエラーが発生しています:

警告:mysql_fetch_assoc()は、パラメーター1がリソースであると想定しています。配列はC:\ xampp \ htdocs \ job-skills \ php \ functions\user_unused_area_list.phpの30行目にあります[]

何かがおかしいのを見ることができません。ありがとう

4

8 に答える 8

3

$query3変数の名前を、で使用されている変数または別の名前に変更$queryしますwhile loop

オンラインで行うこと:最初の反復での結果(この時点ではリソース)をに割り当て、2番目の反復で(while($query3 = mysql_fetch_assoc($query3))すでに配列を)に渡します。mysql_fetch_assoc$query3$query3mysql_fetch_assoc

注: mysql_*関数は非推奨になりました。PDOまたはを使用するmysqli_*

于 2012-10-04T11:51:37.550 に答える
3

この行で:

while($query3 = mysql_fetch_assoc($query3))

あなたは$query3の結果で再割り当てしていますmysql_fetch_assoc

次のようになります。

while($queryRes = mysql_fetch_assoc($query3))
于 2012-10-04T11:51:52.917 に答える
3

同じ変数を使用しないでください..このようにしてみてください

$query3 = mysql_query("SELECT * FROM area_of_work") or die('Invalid query:'. mysql_error());

while($result = mysql_fetch_assoc($query3)){
.....//Your code
}
于 2012-10-04T11:52:00.623 に答える
3

あなたの問題はここにあります:

$query3 = mysql_query("SELECT * FROM area_of_work") or die('Invalid query:'. mysql_error());
while ($query3 = mysql_fetch_assoc($query3)) {

次のようになります。

$q = mysql_query("SELECT * FROM area_of_work") or die('Invalid query:'. mysql_error());
while ($query3 = mysql_fetch_assoc($q)) {
于 2012-10-04T11:52:02.417 に答える
2

最初のループは正常に機能しますが、2番目のループは失敗します。

while($query3 = mysql_fetch_assoc($query3)){

最初のループが実行された後、結果の配列をリソースに割り当て、事実上リソースを上書きします。

次のように行を置き換えます。

while($listOfUserAreas = mysql_fetch_assoc($query3)){
于 2012-10-04T11:51:05.203 に答える
2

これは間違っています:

while($query3 = mysql_fetch_assoc($query3)){

同じ変数を使用して読み取り、割り当てを行っています。

この行については、前述の行を置き換えることで修正できます。

$result = &$query3;
while($query3 = mysql_fetch_assoc($result)){

これらの行を変更するだけで、残りのコードが機能します。

于 2012-10-04T11:51:46.107 に答える
2

連想配列をリソースに割り当てようとしています

while($query3 = mysql_fetch_assoc($query3))

これは間違っています...別の変数で試してくださいwhile($ Result = mysql_fetch_assoc($ query3))

于 2012-10-04T11:52:27.423 に答える
1
while($query4 = mysql_fetch_assoc($query3)){

フェッチ変数の名前を変更

于 2012-10-04T11:55:31.370 に答える