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


Автор: Predator199 9.4.2013, 15:11
Иногда нужна только одна запись из бд.
Для этого необходимо прописывать:
Код

$query = запрос;    
$row = $db->get_row($query);
$row['name']

Можно ли как с массивом. Вытащить содержимое поля без (mysqli_fetch_assoc).
Как нибудь так:
Код

$query->name

Автор: Arantir 9.4.2013, 15:24
http://php.net/manual/en/mysqli-result.fetch-object.php

Автор: Predator199 9.4.2013, 15:27
Не вижу плюса да и разнице. За исключение созданного массива.
Так и так придется еще одну строчку писать.

Автор: Arantir 9.4.2013, 15:39
Цитата(Predator199 @  9.4.2013,  14:27 Найти цитируемый пост)
Так и так придется еще одну строчку писать. 
А вы ассемблер, ну или C++ хотя бы, изучите. Потом не нарадуетесь простоте работы с PHP.

Чем больше средств, тем больше возможностей для оптимизации выполнения. 

А если хотите $имя_бд->запрос->name, то перейдите на фреймворк, CMS или готовый движок под ваши цели. Но каждая безосновательно сэкономленная строка имеет свою цену в виде ресурсов.

Автор: Sanchezzz 9.4.2013, 18:38
Predator199 Все тебе не так, может пора сменить профессию или слушать и принимать советы людей. 

Код

В PDO это делается так ->fetchColumn();

даже на твоем примере можно в $db классе и дописать пару методов, точнее переписать весь класс =)
Добавить в методы 
Код

public function  query($query){
$this->res = // функция которая делает запрос
return $this;
}

public function get_col($name, $default = null){
     if($row  = mysqli_fetch_assoc($this->res)){
        return isset($row[$name]) ? $row[$name] : $default;
    }
    return false;
}

Автор: bars80080 10.4.2013, 16:29
да не, имеет место простой восторг дорвавшегося до программирования человека. хотя, восприимчивость информации и способность к обучению тут, конечно, на очень низком уровне. надо вначале просто доходчиво объяснить




Цитата(Predator199 @  9.4.2013,  15:11 Найти цитируемый пост)
Иногда нужна только одна запись из бд.
Для этого необходимо прописывать:
$query = запрос;    
$row = $db->get_row($query);
$row['name']

Можно ли как с массивом. Вытащить содержимое поля без (mysqli_fetch_assoc).

нет.
даже если вы напишите какую-нибудь функцию, класс или иную оболочку, всё равно там будет использоваться mysqli_fetch_assoc. хотя внешне это и будет выглядеть, как получение записи одной строкой.
тут главное понимать, что...
Цитата(Arantir @  9.4.2013,  15:39 Найти цитируемый пост)
каждая безосновательно сэкономленная строка имеет свою цену в виде ресурсов. 

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

1. прежде чем делать такие вещи, надо изначально осознать что и насколько вам нужно.
2. никогда свою лень не ставить в условия задачи

Автор: cia 12.4.2013, 10:02
Вот, одна строка:
Код

$query = запрос;$row = $db->get_row($query);$row['name']

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