Ну да должно быть так. Код (Text): $messages( $row['id'] = array('from' => $row['name'], 'theme' => $row['theme'], 'text' => $row['text']) ); Я сначало просто квадратные скоюки заменил на круглые. Серовно выводит: Warning: Missing argument 1 for getMessages(), called in Z:\home\regularka.ru\www\hell.php on line 25 and defined in \home\tr.bu\proba.php on line 1 Fatal error: Function name must be a string in \home\tr.bu\proba.php on line 6
Код (Text): $messages( WTF? круглые скобки используются для функций. про это тебе PHP и ругается. ты буквально указал ему "возьми имя функции в переменной $messages и вызови эту функцию".
в панели управления посмотри, может это просто ты сам не сменил Добавлено спустя 58 секунд: ты типа наобум пытаешься починить версию пхп заменой скобок на какие-нибудь другие? =)))
С этим разобрался. print_r(getMessages()); Массив выводит, а вот как теперь построчно выводить для таблицы сообразить не могу.Неужели через foreach. Тогда я вообще не могу понять как две функции могут быть лучше чем одна при этом не большая. Если можно пожалуйста поясните прелесть получение данных из DB(Ведь таблица тоже своего рода массив), затем загоняем все это добро в массив при этом я так понимаю потребляем ресурсы сервера. А затем таки через цикл получаем данные из массива и выводим в html снова потребляя те же ресурсы. Ни как не могу понять смысла этого мероприятия
А представь что прошло пол года. Это сейчас у тебя код помещается на экране монитора, а реальный проект состоит из большого количества кода. Если его не разделять то с ним работать очень трудно. Особенно тем кто этот код впервые видит. Есть гораздо более эффективные методы убийства сервака От твоего кода он даже не чихнет
lean, вы ещё учтите, что даже если у вас таблицы в сотни тысяч строк, то вы не будете делать выборку по всем сразу - вы же не вывалите столько данных пользователю в браузер за один раз? Поэтому ресурсов потребляется минимально. Главное преимущество - возможность легко сменить дизайн, не повредив при этом запросы SQL, и не продираясь сквозь их дебри, отлавливая вёрстку среди логики. Я вам больше скажу, в реальных проектах делается не просто отдельная функция, отвечающая за вывод, а отдельный файл.
То есть в проекте я создаю например две функции в одной я получаю из таблицы в другой вывожу. Ок, но что мне мешает в нужных местах выводить циклом определенные значения из базы данных. И ещё если я получаю из базы данных 1000 строк и помещаю в массив, ведь все это сохраняются в память так, и следовательно будет там храниться до тех пор пока запущена сессия или нет. Добавлено спустя 10 минут 42 секунды: Я так понимаю имеется ввиду различные классы которые имеют определенные функции. Например функция или класс который будет заниматься получением данных из таблицы и передавая по GET переменные с различными значением для выбора нужной таблицы и БД могу менять полученные данные. Правильно я понимаю.
Совесть у некоторых лень Разделяй код иначе пройдет время сам не разберешь. Придумай ситуацию где тебе понадобится взять из базы 1000 строк. Посмотри как готовые фреимворки сделаны http://www.yiiframework.com/ http://laravel.com/
Например вывод на печать данные сотрудников среднего предприятия. Была такая задача очень давно помогали реализовать. Просто я электронщик по ряду задач теперь мне нужен php хотя до этого баловался периодически по мелочи сейчас начинаю осмыслено подходить к вопросам. Спасибо за терпение.
Так можно? function getMessages($id, $DB, $table, $sorter, $if, $wel ) { $id = (int)$id;//защита от инъекций $messages = []; //прими новый синтаксис массива всем сердцем $sql = mysql_query("SELECT $wel FROM $table $if $sorter"); while ($row = mysql_fetch_array($sql)) { $messages[$row['id']] = ['from' => $row['name'], 'theme' => $row['theme'], 'text' => $row['text']]; } return $messages; }
На PHP не делают вывод на печать. Только в браузер. И не стоит убивать посетителя сайта списком из 1000 сотрудников предприятия, не разделённым на страницы хотя бы по 100
Да нет. Я просто не могу понять зачем мне выносить операцию получения данных из одной таблицы отдельно если я её ни где более повторять не буду. Поэтому я предположил её сделать многофункциональной. А что это опять не разумно?
Вот так получат из массива данные будет правильно? Код (Text): foreach (getMessages() as $ключ=>$значение) { echo $ключ; //вперемежку с html foreach ($значение as $ключи=>$значения) { echo $значения;//также с оформлением } }
Используйте PDO Код (PHP): // @TODO реализовать getPDODriver function getMessages() { $db = getPDODriver(); $db->prepare("SELECT id, name, text, theme FROM table ORDER BY id"); $db->execute(); return $db->fetchAll(); } print_r getMessages(); Про mysql_* забудьте как страшный сон.