За последние 24 часа нас посетили 194469 программистов и 2009 роботов. Сейчас ищут 2010 программистов ...

MySQL скрипт работает на локалке и не работает на хостинге

Тема в разделе "PHP для новичков", создана пользователем HAMANN, 23 окт 2010.

  1. HAMANN

    HAMANN Активный пользователь

    С нами с:
    25 июл 2009
    Сообщения:
    24
    Симпатии:
    0
    PHP:
    1.  
    2. $name_client=addslashes($_POST['client']);
    3. $query='SELECT * FROM client WHERE `name`="'.$name_client.'"';
    4. echo "<br>Запрос к БД => ".$query."<br>";
    5. $result=mysql_query($query) or die ("Ошибка выполнения запроса");
    6. $i=0;
    7.  
    8. while ($row = mysql_fetch_array ($result))
    9. {
    10.     $i++;
    11.     if (is_int($i/2)){$class="grey";} else {$class="white";}
    12.     echo '<tr class="'.$class.'">'. "\n"; //начало строки
    13.         $id=$row['id_client'];
    и т.д.

    На локальном сервере (денвер) - все работает четко, но на хостинге не работает.

    При выводе выдает:
    Запрос к БД => SELECT * FROM client WHERE `name`="Имя клиента"

    Массив $row - NULL
    Думал вопрос с обработкой кавычек - на хостинге другие установки.
    --enable-magic-quotes - в конфигурации php
    прописал в эксессе:
    php_flag magic_quotes_gpc Off - не помогло

    В myAdmin - выполняется, ошибку на хостинге - не выдает. В БД - есть.

    Т.е. потеря идет на запросе и связано получается это точно с кавычками. Вроде по идее это должно быть включается магические кавычки, но в аксессе уже прописано

    Помогите решить вопрос. Бьюсь над ним уже часа четыре.
     
  2. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    а если без addslashes?
     
  3. HAMANN

    HAMANN Активный пользователь

    С нами с:
    25 июл 2009
    Сообщения:
    24
    Симпатии:
    0
    пробовал
     
  4. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Т.е. ты запрос копируешь с экрана, вставляешь в phpmyadmin на хостинге - и он выполняется и возвращает результат?
     
  5. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Вместо
    Напиши mysql_error() и посмотри что скажет...
     
  6. HAMANN

    HAMANN Активный пользователь

    С нами с:
    25 июл 2009
    Сообщения:
    24
    Симпатии:
    0
    Написал
    PHP:
    1. $result=mysql_query($query) or die (mysql_error());
    Проверил - никаких изменений.

    Вот .htaccess этой папки
    Проверил:
    PHP:
    1. if (get_magic_quotes_gpc()){ echo "Magic On!"; }
    2. else { echo "Magic Off!"; }
    На хостинге выдает Magic Off!
     
  7. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    HAMANN
    Аватарку на фото меняем или удаляем
     
  8. HAMANN

    HAMANN Активный пользователь

    С нами с:
    25 июл 2009
    Сообщения:
    24
    Симпатии:
    0
    Вообщем с кавычками разобрался => с ними все в порядке, скорее всего вопрос в
    PHP:
    1. $query='SELECT * FROM client WHERE `name`=\''.[b]$name_client[/b].'\'';
    $name_client - в данном случае строковая переменная, как правило, с пробелами.
    Например: $name_client="Днепропетровский Пивзавод №1 ООО"

    Возможно здесь корень, может кто в курсе?

    Проверял, если запрос идет например по id, то - все в порядке (т.е. перемення - числовая, никаких пробелов и т.д.)/

    Опять же напишу тем кто не будет читать всю тему - запрос работает на локальном сервере, но не работает на хостинге.
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    в phpmyadmin напиши запрос
     
  10. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    HAMANN
    У тебя БД в какой кодировке?
    Перед запросом на выборку сделай запрос либо "SET NAMES cp1251", либо "SET NAMES utf8" в зависимости от кодировки твоей странички и текста, который отправляешь в качестве критерия на выборку
     
  11. HAMANN

    HAMANN Активный пользователь

    С нами с:
    25 июл 2009
    Сообщения:
    24
    Симпатии:
    0
    Я еще в первом сообщении писал, что в админе - все работает четко.
     
  12. HAMANN

    HAMANN Активный пользователь

    С нами с:
    25 июл 2009
    Сообщения:
    24
    Симпатии:
    0
    Насчет кодировки - хорошая идея, я тоже об этом подумал и даже пробовал, но видно так устал, что накосячил.

    Сейчас сделал на свежую голову и все заработало! УРА!!!
    PHP:
    1. mysql_query('SET character_set_database = cp1251');
    2. mysql_query('SET NAMES cp1251');
    У меня, действительно, база на локале в cp1251, а на хостинге utf8

    Какая же радость когда действительно проработаешь тему. Я пока искал почему это не работает столько литературы пролахматил - что мне ина другие вопросы пролился некоторый свет =)

    Ensiferum, спасибо тебе, ты мне реально помог!