Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > нехочет на хостинге работать цикл или


Автор: krulik 5.4.2006, 13:02
Итак вот есть приблизительно такой код (точнее его скелет)
Код

<?php
include('inc/mysql.inc');

if ($link=connect()) //проверка соединения с БД
{
    gatedata();
}

function gatedata()
{
    //сдесь по определенным критериям создается запроск БД

    $MyQuery="тут запрос";
    $result=mysql_query($MyQuery,$link);
?>

<form method="POST" >
<table align="center">
    //тут выводиться форма нумер раз
</table>
</form><hr>


<form name="ReadData" method="POST">
<table>
    <tr>
        тут создается шапка таблицы
    </tr>
<?php
    $i=0;
    while ($row=mysql_fetch_array($result))
    {
     print "<tr>";
        //а тут должны выводиться данные из бд
     print "</tr>";
    }
?>
    </table>
</form>
<?php
}
?>


вот в чем проблема на локалке все работает отлично на хосте цикл игнорируется. Тоесть вот этот блок не выполняется вообще:
Код

while ($row=mysql_fetch_array($result))
    {
     print "<tr>";
        //а тут должны выводиться данные из бд
     print "</tr>";
    }

хост на jino-net там вроде как 5-й РНР стоит. У мебя проверял и на 4 и на 5 все работает.
Думал проблема в mysql_fetch_array() так она вроде как начиная с 3 РНР поддерживается

Автор: sugee 5.4.2006, 14:48
Цитата(krulik @ 5.4.2006, 13:02 Найти цитируемый пост)
//сдесь по определенным критериям создается запроск БД
Вот это нельзя ли раскрыть поподробнее.

+ структура базы данных.



Автор: Muchenik 5.4.2006, 15:04
Может у тебя вообще данные не выбираются. Проверь $result, может он пустой

Автор: sugee 5.4.2006, 15:23
Цитата(Muchenik @ 5.4.2006, 15:04 Найти цитируемый пост)
Проверь $result, может он пустой
Не может, а пустой. Вот это и надо выяснить - почему он пустой.
Добавлено @ 15:29
krulik, а у тебя gatedata() вообще вызывается, может ты к мускулу просто не приконнектился.
Добавлено @ 15:30
ты не забыл в mysql_connect поменять параметры?

Автор: sugee 5.4.2006, 15:54
И что такое connect()? Это как я понял твоя функция которая возвращает true в случае удачного соединения, так? А на неё можно глянуть...

Автор: Baiduzniy 6.4.2006, 15:24
Цитата

if ($link=connect()) //проверка соединения с БД


если мне не изменяет память, операция "=" в PHP называется присвоением,
тогда если перевести выше приведенный код, то полуится нечто вроде этого:

Если пременной $link присовтить некую функцию
а че это за функция... ниразу такой не видел в свободном виде

ошибки выдает какие-нибудь? с чего вы взяли что игнориурется тот или иной кусок
smile ошибки в студию

Автор: Ignat 6.4.2006, 15:35
Цитата(Baiduzniy @ 6.4.2006, 16:24 Найти цитируемый пост)
Если пременной $link присовтить некую функцию

Нет. Идем учить азы PHP.

Это называется присвоить переменной значение, возвращаемое функцией, а затем проверить его истинность.


//offtop
Baiduzniy, из ваших сегодняшних постов, лишь один нёс полезную информацию. Пожалуйста, отнеситесь внимательнее к ответам.

Автор: Baiduzniy 6.4.2006, 19:35
и все же интересно, какие ошибки выдает.
может параметры соединения с БД заданы неверно...

оффтоп
Ignat, прошу прощения, ошибся, но это не меняет суть проблемы

Автор: Serkys 6.4.2006, 19:47
sugee прав. Функцию connect() в студию!
Добавлено @ 19:49
Я смотрю автор пропал. Заинтриговал и в оффлайн. smile

Автор: krulik 7.4.2006, 16:30
Цитата

ошибки выдает какие-нибудь?

ошибок никаких не получаю!
Цитата

с чего вы взяли что игнориурется тот или иной кусок

потомучто ввыводиться часть формы а то что идет в цыкле игнорируется вот эта страница http://krulik.jino-net.ru/index.php?param=3

вот функция подсоединения к БД:
Код

function connect()
{
include("inc/config.inc"); //отсюда беру значения переменных $host, $DBuser, $DBpass, $db

    if ($link=mysql_connect($host,$DBuser,$DBpass))
    {
        if (!mysql_select_db($db,$link))
        {
            print "Немогу выбрать БД: ".mysql_error();
        }
        else return $link;
    }
    else
    {
        print "Немогу подключиться к серверу: ".mysql_error();
    }
}

короче говоря функция возврщает ссылку на БД.

Цитата

Проверь $result, может он пустой

действительно $result оказался пуст! Поставил проверку перед самым циклом. Тогда возникает вопрос почему на локалке все пашет а на хосте очищатся $result? По коду просмотрел $result нигде не затираю ничем другим. Может ли это быть связано с какими то ограничениями у хостера?

Автор: sugee 7.4.2006, 16:53
Цитата(krulik @ 7.4.2006, 16:30 Найти цитируемый пост)
короче говоря функция возврщает ссылку на БД
Ничего она не возвращает, что-то я нигде там не увидел строчки return $lihk;
Добавлено @ 16:56
А есть, сразу не заметил.
Добавлено @ 17:01
А проверь-ка, ты из config.inc получаешь то что нужно?

Автор: Serkys 7.4.2006, 17:29
Цитата(krulik @ 7.4.2006, 17:30 Найти цитируемый пост)
Тогда возникает вопрос почему на локалке все пашет а на хосте очищатся $result

Логичный вывод: на хосте глючит мускул. А $result не очищается, он просто не заполняется. Может на хосте версия мускула другая. Хотелось бы на запрос посмотреть.

Автор: krulik 7.4.2006, 17:29
Цитата

А проверь-ка, ты из config.inc получаешь то что нужно?

От туда я все получаю! Если заходил на страницу то в верхней части есть СЕЛЕКТЫ они создаются динамически из БД соответственно все я от туда получаю. Да и очень я сомневаюсь что делов в этом.

Все вопрос снят!
ЗЫ: вот это я лоханулся! smile Вот в чем лажа оказалась просто напросто у хостера устаревшая версия моей БД! и там не хватает одного поля.

Вывод делаю только один. Программируя на РНР нужно постоянно следить за потенциальными участками кода, которые могут дать сбой

Всем спасибо за внимание

Автор: krulik 7.4.2006, 17:47
Опять мимо! Короче получил я сообщение что ненайдена таблица startP ну я и подумал что я ее забыл. Зашел на сервер а таблица там есть!!!! Вы не представляете как я был удивлен! Чуток по раскинув мозгами посмотрел на запрос и меня осенило smile на jino-net сервак под линухом и таблица там называлась вот так startp а вмоем запросе startP. Вся проблема в одной букве!!!!!!!!!!!!! И столько головной боли

Автор: Serkys 7.4.2006, 18:53
Гы smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)