За последние 24 часа нас посетили 16599 программистов и 1679 роботов. Сейчас ищут 934 программиста ...

Не возвращает данные

Тема в разделе "Прочие вопросы по PHP", создана пользователем slavagoreev, 19 окт 2013.

  1. slavagoreev

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

    С нами с:
    3 фев 2013
    Сообщения:
    34
    Симпатии:
    0
    Здравствуйте форумчане. Помогите с кодом. Он верен и работает, кроме последних 6 строк (не считая "}"). Я хотел бы чтоб возращались сразу готовые переменные, с именами запрашиваемых колонок таблицы ($what) . Он мне возвращает только id. Но если написать echo $$name [$i]; после $$name [$i] = $fetch [$i]; скрипт выводит всю нужную инфу. Надеюсь поможете.
    Код (Text):
    1.  
    2. public function select ($what, $table, $where, $orand = NULL, $param = NULL) {
    3.     $values = array_values ($where);
    4.     $columns = array_keys ($where);
    5.     foreach ($columns as $key) {
    6.         $keys = $key . " = ?";
    7.         $mark[] = $keys;
    8.     }
    9.     $count_what = count($what);
    10.     if ($count_what > 1) {
    11.         $imploded_what = implode (', ', $what);
    12.     }
    13.     $count = count($where);
    14.         if ($count > 1) {
    15.             $imploded_value = implode(' ' . $orand . ' ', $mark);
    16.             $query = $this->DB_CONNECTOR->prepare("SELECT $imploded_what FROM $table WHERE $imploded_value $param");
    17.         }
    18.         else {
    19.             $imploded_value = implode ('', $mark);
    20.             $query = $this->DB_CONNECTOR->prepare("SELECT $imploded_what FROM $table WHERE $imploded_value $param");
    21.         }
    22.         $query->execute($values);
    23.         if (!$what == '*') {
    24.             $i = 0;
    25.             $name = array_values ($what);
    26.             while ($i <= $count_what) {
    27.                 $fetch = $query->fetch();
    28.                 $$name [$i] = $fetch [$i];
    29.                 $i++;
    30.             }
    31.         }
    32.     }
    Попробывал где нибудь засунть return, не робит(

    Добавлено спустя 34 минуты 20 секунд:
    Вопрос закрыт, я понял что нафиг эти запары не нужны) Но на фоне него возник другой, что если надо будет задать параметр WHERE id >199 напремер ведь на выходе получится WHERE id = >199. Как это исправить
    ?
     
  2. Slavka

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

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    а зачем городить огород ?
    зачем отдельно делать select -
    я сделал у себя не конкретно селект а функцию sql ()
    в которую вставляеш чистый скуэль код и все.. а если сделать вот так
    $return=sql("чегото");
    то потом с $return можно поработать как с массивом если надо.. или забыть про него
     
  3. slavagoreev

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

    С нами с:
    3 фев 2013
    Сообщения:
    34
    Симпатии:
    0
    ты помоему что то не понял
     
  4. Slavka

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

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    /me пришел - посматрел на текст подумал еше раз что вроде бы функция делает только селект в массив. вроде даже ничего не возвращая.
    и ушел дальше по своим делам..
     
  5. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    А что не нравится, работает же... А зачем так написал? Зачем в коде выше в $what запихнул имена переменных?
    Там вноси изменения...
     
  6. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    return-вам в помощь, для возвращения данных обработанных в теле функции.