查看完整版本: 求救:Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean give
頁: [1] 2

terry@111.com.t 發表於 2015-2-22 06:51 PM

求救:Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean give

如附件

1.目前使用apache2.4.4的測試環境運作一切正常
2.但是放入apache2.2.22環境運作就發現會出現:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in F:\wamp\www\3b8\search_all.php on line 307

找不出是什麼地方出的問題!不知道可否請各位先進幫看一下哪裡出狀況,萬分感激~

<div></div>

mojamoja1202 發表於 2015-2-23 10:41 AM

可以直接把程式碼都貼出來嗎?
下載附件還要花一點積分
{:45:}

terry@111.com.t 發表於 2015-2-23 11:28 AM

本帖最後由 terry@111.com.t 於 2015-2-23 11:37 AM 編輯

mojamoja1202 發表於 2015-2-23 10:41 AM static/image/common/back.gif
可以直接把程式碼都貼出來嗎?
下載附件還要花一點積分
謝謝指示~
好像沒有辦法都貼出來!不知道是哪一段程式發生的安全狀況,他說有安全的顧慮!
以下我使用連結的方式將這個檔案的完整的放上來,請各位先進再協助一下
程式寫得很亂,完全是新手駕駛,見笑了!
http://www.ecoftp.net/data/acces/search_all.php.zip
我多說一下我的錯誤訊息
目前程式上出現的錯誤指示發生在307行,但是總覺得應該是$result這裡的問題,
所以可能要請各位先進協助看一下234行開始的程式段落,
是否寫法需要做些改變才能符合2.2.22版apache的要求
大感謝~

...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

theloserbm 發表於 2015-2-24 09:49 AM

$result = mysql_query($query .= " ORDER BY adint DESC");你的這一行看起來太不可預測了, 試試改成正常的$query .= " ORDER BY adint DESC";
$result = mysql_query($query);看看?

你的query確定沒問題嗎? 怎麼我看到有些條件下會無端端加個1或是直接變空啊? 這樣的話mysql_query會直接出錯喔!

terry@111.com.t 發表於 2015-2-24 07:45 PM

本帖最後由 terry@111.com.t 於 2015-2-24 07:51 PM 編輯

theloserbm 發表於 2015-2-24 09:49 AM static/image/common/back.gif
你的這一行看起來太不可預測了, 試試改成正常的看看?

你的query確定沒問題嗎? 怎麼我看到有些條件下會無端 ...
不知道有什麼方法可以秀出查詢後的結果給您看,目前2.4.4所得的結果是正確的{:38:},只是無法在2.2.XX版跑{:9:}
http://www.ecoftp.net/data/acces/DOWNLOAD/search_all.php.txt
目前我只改了大大剛才指出的問題,
$query .= " ORDER BY adint DESC";
$result = mysql_query($query);

不過目前的狀況還在未解狀態
不知道還有沒有什麼地方看起來還很可疑的?請給予指點,感謝~!!
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><br><br><br><br><br><div></div>

c26xz 發表於 2015-2-24 08:15 PM

1.您是使用哪一個套裝軟體?
2.您可以提供您測試在兩種不同的Apache Server/PHP/MySQL Server的版本嗎?

terry@111.com.t 發表於 2015-2-24 10:16 PM

本帖最後由 terry@111.com.t 於 2015-2-24 10:18 PM 編輯

c26xz 發表於 2015-2-24 08:15 PM static/image/common/back.gif
1.您是使用哪一個套裝軟體?
2.您可以提供您測試在兩種不同的Apache Server/PHP/MySQL Server的版本嗎? ...
我使用的是wampserver 2.4版
兩套版本
壹:有問題的~apache2.2.22版  php:5.3.13 mysql:5.6.12
貳:可運作的~apache2.4.4版  php:5.3.13 mysql:5.6.12
另外,沒有使用open source軟体
謝謝...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

theloserbm 發表於 2015-2-25 09:45 AM

terry@111.com.t 發表於 2015-2-24 07:45 PM static/image/common/back.gif
不知道有什麼方法可以秀出查詢後的結果給您看,目前2.4.4所得的結果是正確的,只是無法在2.2.XX版跑 ...

我上網查查了, 會出現boolean的情況是query不合格

試試看在$result = mysql_query($query)的下面加上if ($result === false) {
  echo mysql_error();
}這樣就可以看到query有甚麼問題...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

terry@111.com.t 發表於 2015-2-25 01:50 PM

本帖最後由 terry@111.com.t 於 2015-2-25 01:53 PM 編輯

theloserbm 發表於 2015-2-25 09:45 AM static/image/common/back.gif
我上網查查了, 會出現boolean的情況是query不合格

試試看在$result = mysql_query($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 'ORDER BY adint DESC' at line 1

http://www.ecoftp.net/data/acces/DOWNLOAD/search_all.php.txt
檔案如上
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

theloserbm 發表於 2015-2-25 03:01 PM

terry@111.com.t 發表於 2015-2-25 01:50 PM static/image/common/back.gif
謝謝~已經加上了
秀了以下這段



再加上if ($result === false) {
  echo 'query = '.$query.'<br>';
  echo mysql_error();
}應該就會真相大白了<br><br><br><br><br><div></div>

theloserbm 發表於 2015-2-25 03:12 PM

我發現了一個問題/*以下這段 $query .= 會一直不斷的往下累加下去,加到這裡時要在where裡面判斷一下如果前三項都是空值就要加一個1*/
if( (!empty($sea1) or !empty($sea2) or !empty($sea3)) & empty($sea4)  ) {
    $query .='1';
}
/*以下這段 $query .= 的.拿掉了,判斷四個值都是空值就讓$query為空值*/
if( empty($sea1) & empty($sea2) & empty($sea3) & empty($sea4)  ) {
    $query ='';
}and "&&" 和 or "||" 都用錯了

然後下面的條件你讓$query變空, 然後後面加上order by, 這個情況肯定會出錯的...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

terry@111.com.t 發表於 2015-2-25 04:21 PM

本帖最後由 terry@111.com.t 於 2015-2-25 04:24 PM 編輯

theloserbm 發表於 2015-2-25 03:12 PM static/image/common/back.gif
我發現了一個問題and "&&" 和 or "||" 都用錯了

然後下面的條件你讓$query變空, 然後後面加上order by, 這 ...
我將&改為了&&
or改為了||
目前也加上剛才那一段秀出結果如下

query = ORDER BY adint DESC
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 'ORDER BY adint DESC' at line 1

錯誤的畫面
http://www.ecoftp.net/data/acces/DOWNLOAD/err.gif

修改後的原始檔
http://www.ecoftp.net/data/acces/DOWNLOAD/search_all.php.txt

謝謝
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

theloserbm 發表於 2015-2-25 04:55 PM

terry@111.com.t 發表於 2015-2-25 04:21 PM static/image/common/back.gif
我將&改為了&&
or改為了||
目前也加上剛才那一段秀出結果如下


其實錯誤的原因已經告訴過你了, 就是你的query是錯誤的, 你應該對SQL不是很熟悉吧.

應該把$query = ''改成$query = "SELECT * FROM `ad_manager`", 那樣的話當完全沒有輸入的時候就會顯示全部的資料了.

如果想在沒有輸入時不顯示資料, 你就在沒有輸入的時候不要叫mysql_query...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

terry@111.com.t 發表於 2015-2-25 05:36 PM

本帖最後由 terry@111.com.t 於 2015-3-6 05:09 PM 編輯

theloserbm 發表於 2015-2-25 04:55 PM static/image/common/back.gif
其實錯誤的原因已經告訴過你了, 就是你的query是錯誤的, 你應該對SQL不是很熟悉吧.

應該把$query = ''改 ...
對,我對於sql是..很不熟悉,我是做平面廣告的
第一次寫程式,真的非常謝謝您的指導
我看懂了,我去改改,看看能否有些進展,謝謝您

補列資料:
目前的問題已解,程式均無修改只在第三行加入
<?php extract($_GET);?>
在2.2.22就可以運作了
留Note給需要的人做為參考用。
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

tonybrantmayday 發表於 2015-3-8 11:51 AM

路過..看了一下原始檔..
看來大大在一開始取數值時未進行 $_GET 的抓取入變數..
導致 $sea1 $sea2 這些變數都為空值..所以最後 QUERY 都是 "ORDER BY adint DESC"
所以使用extract($_GET);剛好可以把值帶入變數中..

不過一般撰寫程式習慣是會像以下寫法..
如 $sea1 = $_GET['sea1'];
下此版本更新也就不會再遇到這個問題<br><br><br><br><br><div></div>
頁: [1] 2