-1

Добрый день, уважаемые профессионалы. Подскажите, пожалуйста, решение проблемы:

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/f/finman/site/public_html/sADM/index.php on line 256 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/f/finman/site/public_html/sADM/index.php on line 257*

В коде эти строки выглядят так:

$result = mysql_query("SELECT * FROM pg0 ORDER BY id;", $link); 
while($row = mysql_fetch_array($result)){

Самое интересное, данный элемент прекрасно работал на 1 аккаунте хостинга, но при переносе на другой аккаунт этого же хостинга появились эти ошибки. Заранее большое спасибо.

Deleted
  • 371
anj1817
  • 825
  • 2
  • 13
  • 40
  • Ну судя по сообщению, надо посмотреть, как получается $link. – ivkremer Aug 09 '12 at 08:51
  • подключение к базе другое, отсюда и ошибка, проверьте логин пароль – FLK Aug 09 '12 at 09:16
  • Логин и пароль правильные. Иначе бы било ошибки. На это стоит тест. $ линк вот как получается: $result = mysql_query("SELECT * FROM pg0 WHERE id = '".$_GET['id']."';", $link); $row = mysql_fetch_array($result); – anj1817 Aug 09 '12 at 09:32
  • если мне не изменяет память, то в mysql_query второй параметр $link (в вашем случае) необязателен, попробуйте без него. и уберите точку с запятой в конце запроса – FLK Aug 09 '12 at 09:55
  • Мм, мой вопрос был - откуда берётся $link. То есть $link = .... Просто ошибка у вас о том, что в качестве $link у вас не resource соединение с БД, а какая-то непонятная штука. – ivkremer Aug 09 '12 at 09:59
  • В общем решил я проблему, только если мне кто-нибудь объяснит почему так работает, буду очень благодарен. сейчас опишу все в подробностях. Только проверю еще раз. – anj1817 Aug 09 '12 at 11:47

3 Answers3

4
result = mysql_query("SELECT * FROM pg0 ORDER BY id");  // не нужно ставить точку с запятой
while($row = mysql_fetch_array($result)){

Ошибку в студию!

и прописать так

$result = mysql_query("SELECT * FROM pg0 ORDER BY id") or die(mysql_error());
Artem
  • 11,965
  • неа, именно в таком виде работало на предыдущем аккаунте. если убрать точку с запятой бьет другую ошибку. – anj1817 Aug 09 '12 at 10:14
  • 2
    @SKYnetRTX не путайте тчкзпт в запросе и в конце оператора :) – zenith Aug 09 '12 at 11:44
  • как не надо точку с запятой? WTF? – johniek_comp Aug 09 '12 at 15:12
  • 1
    result = mysql_query("SELECT * FROM pg0 ORDER BY id;");

    так тоже должно работать. учите матчасть ;)

    – Alex Kapustin Aug 09 '12 at 18:56
  • 1
    И не просто должно, но и работает. Просто необязательно. – zenith Aug 09 '12 at 19:55
2

", $link" уберите, так как это не обязательный параметр, может, поможет.

Deleted
  • 371
  • да, помогает. Код начинает корректно исполняться. Но Вот честное слово я не понимаю почему. Как может $link работать у меня на хостинге, на моем компе и не работать на основном хостинге. З.ы. основной хостинг от того же хостераа что и мой. Тоесть вообще путаница. или просто моих скромных знаний не хватает что бы это понять. – anj1817 Aug 09 '12 at 12:50
  • Кривой $link! – Artem Aug 09 '12 at 13:01
  • =)) ооо, в моем вопросе появился спор)))) Жду объяснения, очень интересно почему так вышло! Спасибо, заранее. – anj1817 Aug 09 '12 at 14:15
  • 1
    @good ты на личности не переходи. И вообще за что ответ принял автор... я поражаюсь. – Artem Aug 09 '12 at 14:52
  • Я принял то, что сработало. Из того что предлагали - это первое что сработало и на привело к другим сбоям. Хотя, честно говоря я не понимаю каким образом это сработало. 1 и тот же код использую уже в 4 раз, но первый раз пришлось убирать хоть какой-то элемент. @Shrek Давай дождемся его рассказа, может он на самом деле что-то прояснит. Потому-что я уже не знаю что думать... меня эти хостинги добьют скоро. – anj1817 Aug 09 '12 at 20:09
  • мне на код в взглянуть нужно – good_web_master Aug 09 '12 at 20:50
  • 4
    @Shrek, всё верно... И почему надо точку с запятой убрать? Она тут явно не при чём, кроме того она не делает запрос неверным. Всё дело исключительно в переменной $link. Как я понял, она была не определена, поэтому выходила ошибка. Её убрали - стал браться resource-соединение с БД по умолчанию и всё заработало. – ivkremer Aug 10 '12 at 08:32
  • 1
    @Kremchik объяснил бы мне кто почему оно работает в других случаях... а код я дать могу посмотреть может доработаем общими усилиями. Точнее не сам код, но то на основе чего я писал. http://www.php-adminka.ru/ вот на основе вот этой штуки я писал свою админку. Там все проверено и перепроверено, известная кстати админка для новичков. Очень простая и понятная. Единственный вопрос, который меня мучает - почему (проверил уже на 3 хостингах и на 4 аккаунтах) и только тут ЭТОТ ЧЕРТОВ глюк. Не люблю, когда не понимаю чего-то, поэтому и бьюсь. – anj1817 Aug 10 '12 at 20:43
1

Посмотри, что выдает mysql_error() и все поймешь!

c4simba
  • 11
  • var_dump юзал, mysql_error() смотрел но так и не смог понять как и почему в 2 случаях из 3 работает, а в 3 нет. Там выше good обещал объяснить, вот жду этот интереснейший, для меня, рассказ. – anj1817 Aug 09 '12 at 14:18