[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Получение результата при запросе к методу
johniek_comp
Есть метод select, пока без наворотов
public static function select($query)
{
mysql_real_escape_string($query);

mysql_query($query) or die($logs->write(mysql_error()));

}

ну и вызываю его
if(isset(parent::$id))
{
$data['user_name'] = mysql :: select("SELECT `login` FROM `user` WHERE `id` = '". parent::$id ."'");
}


хочу в $data['user_name'] получить не посредственно результат, идей оч много, хочу услышать мнения экспертов...ну и вообще по реализации



Спустя 4 минуты, 46 секунд (30.03.2012 - 22:13) inpost написал(а):
`id` = ' - ты зачем последнюю кавычку экранизируешь? Я что-то тебя не понимаю, у тебя вообще она работает?!

Спустя 15 минут, 50 секунд (30.03.2012 - 22:29) Placido написал(а):
Метод работать не будет, так как аргументом mysql_real_escape_string() должно быть значение, а не запрос.
В результате выполнения приведенного кода ты просто получишь SELECT `login` FROM `user` WHERE `id` = \'что там лежит в parent::$id\', и возникнет ошибка SQL.

Спустя 26 минут, 34 секунды (30.03.2012 - 22:55) m4a1fox написал(а):
Итого имеем

mysql_real_escape_string($query);

где $query - "SELECT `login` FROM `user` WHERE `id` = '". parent::$id ."'"
И тогда получаем
mysql_real_escape_string("SELECT `login` FROM `user` WHERE `id` = '". parent::$id ."'");

Эээээээ кажется это не будет работать :)

Спустя 8 часов, 56 минут, 44 секунды (31.03.2012 - 07:52) johniek_comp написал(а):
Ах, да, загнал я с mysql_real_escape_string smile.gif

Спустя 1 час, 31 минута, 15 секунд (31.03.2012 - 09:23) Invis1ble написал(а):
Цитата
хочу в $data['user_name'] получить не посредственно результат

результат чего?

Спустя 8 минут, 13 секунд (31.03.2012 - 09:31) johniek_comp написал(а):
Invis1ble
как в кохане, получить ас. массив, а потом разобрать на одни большой через foreach

Спустя 1 час, 6 минут, 28 секунд (31.03.2012 - 10:38) johniek_comp написал(а):
Походу вам только запросы новичков исправлять, как по делу так молчат все, ну лады dry.gif

Спустя 23 минуты, 54 секунды (31.03.2012 - 11:02) Invis1ble написал(а):
тебе никто не обязан помогать, так что умерь свой пыл
у меня вон вообще неделями топики без ответов висят, я ж не плачусь




Спустя 1 минута, 39 секунд Invis1ble написал(а):
покажи текущий вариант кода с учетом исправлений

Спустя 6 минут, 28 секунд (31.03.2012 - 11:08) Winston написал(а):
public static function select($query)
{
$result = mysql_query($query) or die($logs->write(mysql_error()));
while($row = mysql_fetch_assoc($result))
$data[] = $row;

return $data;

}

if(isset(parent::$id))
{
$data['user_name'] = mysql :: select("SELECT `login` FROM `user` WHERE `id` = '". parent::$id ."'");
echo $data['user_name'];
}

Типа так...
Свернутый текст
Но по моему это говнокодинг :)

Спустя 2 минуты, 3 секунды (31.03.2012 - 11:10) johniek_comp написал(а):
Invis1ble
самое банальное :rolleyes:

public static function select($query) {
$result = mysql_query($query) or die($logs->write(mysql_error()));
if ( !mysql_num_rows($result) ) {
return false;
}
while($row = mysql_fetch_assoc($result)) {
$rows[] = $row;
}
return $rows;
}

Спустя 6 минут, 55 секунд (31.03.2012 - 11:17) Invis1ble написал(а):
ну нормально
только
Цитата
  if ( !mysql_num_rows($result) ) {
    return false;
  }

имхо лишнее, лучше просто пустой массив вернуть

Спустя 11 минут, 11 секунд (31.03.2012 - 11:28) johniek_comp написал(а):
Winston
Invis1ble
Спасибо за подсказки! Получилась мини кохана:
classes_mysql.php
public static function select($query)
{
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_assoc($result))
{
$rows[] = $row;
}
return $rows;
}

controller_user.php
public function show()
{
$data = array();
if(isset(parent::$id))
{
$data['user_name'] = mysql :: select("SELECT `login` FROM `user` WHERE `id` = '". parent::$id ."'");
}
View::Factory('user_show', 'Просмотр ', $data);
}

view_user_show.php
Просмотр юзера
<?php
foreach($user_name as $view)
{
echo $view['login'];
}
?>

в итоге по запросу http://mvc/user/show/1 выводит Просмотр юзера johniek_comp :)

Спустя 1 минута, 51 секунда (31.03.2012 - 11:30) Invis1ble написал(а):
Цитата
  $result = mysql_query($query) or die(mysql_error());
 
  while($row = mysql_fetch_assoc($result))
  {
  $rows[] = $row;
  }
  return $rows;

rows инициализируй, иначе notice будет при отсутствии результатов в выборке

Спустя 12 минут, 29 секунд (31.03.2012 - 11:43) johniek_comp написал(а):
Invis1ble
инициализировал, в случае отсутствии выборки возвращаю null, но вылазит нотис на foreach, мол ничего обрабатывать ему, а лишней проверки на наличие результата выборки делать нихачю!

Спустя 4 минуты, 13 секунд (31.03.2012 - 11:47) Invis1ble написал(а):
я ж написал выше, возвращай пустой массив, тогда с foreach проблем не будет

Спустя 5 минут, 27 секунд (31.03.2012 - 11:52) johniek_comp написал(а):
Invis1ble
Решил все так:
return isset($rows) ? $rows : $array = array();


ни нотисов, ничего, как и хотел :)

Спустя 1 минута, 51 секунда (31.03.2012 - 11:54) Invis1ble написал(а):
вот получше вариант, без доп. проверки
$rows = array();

while ($row = mysql_fetch_assoc($result))
$rows[] = $row;

return $rows;

Спустя 7 минут (31.03.2012 - 12:01) johniek_comp написал(а):
Invis1ble
Этот способ медленнее работает wink.gif

Спустя 4 минуты, 16 секунд (31.03.2012 - 12:06) Invis1ble написал(а):
медленнее чем с проверкой? ты замерял?

Спустя 4 минуты, 46 секунд (31.03.2012 - 12:10) johniek_comp написал(а):
biggrin.gif biggrin.gif biggrin.gif
да эт я не глянул на знак(-), твой быстрее

хотя не, подожди, я чего-то торможу:
твой: -1333184323.54
мой: -1333184266.13

Спустя 59 минут, 18 секунд (31.03.2012 - 13:10) m4a1fox написал(а):
Как мне кажется использовать пдо было бы лучше. Как убедился вчера - кода меньше ( 2 строчки smile.gif )

Спустя 2 минуты, 49 секунд (31.03.2012 - 13:12) Invis1ble написал(а):
Цитата
твой: -1333184323.54
мой: -1333184266.13

что это за цифры? код теста в студию

Спустя 14 минут, 18 секунд (31.03.2012 - 13:27) johniek_comp написал(а):
m4a1fox
Угу, после твоей темы пошел почитал что такое pdo, вот хочу такой же класс как у тебя написать, но пока совмещу с остальным это все дело.
Invis1ble
забей rolleyes.gif

Спустя 2 минуты, 41 секунда (31.03.2012 - 13:29) Winston написал(а):
Цитата (johniek_comp @ 31.03.2012 - 12:10)
твой: -1333184323.54
мой: -1333184266.13

Чтобы не было отрицательных чисел, нужно писать не microtime() a microtime(true)

Спустя 3 часа, 36 минут, 30 секунд (31.03.2012 - 17:06) m4a1fox написал(а):
johniek_comp
Цитата
Угу, после твоей темы пошел почитал что такое pdo, вот хочу такой же класс как у тебя написать, но пока совмещу с остальным это все дело.
Ага! Ну удачи че...


_____________
user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.