Помощник
|
Вывод необходимых строк из MySQL |
BOKOREZ
|
Сообщение
#1
|
||
|
|
||
|
|||
BOKOREZ
|
Сообщение
#2
|
|
Каюсь, элементарных вещей не заметил. Сам спросил, сам разобрался. Если кому интересно, решение ниже:
[PHP]$sequery = "SELECT * FROM mytables WHERE user = $user_id LIMIT 0, 30"; $seresult = mysql_query($sequery); if($sequery) { ob_start(); while($se = mysql_fetch_array($seresult)): echo "<tr><td>$se[name]</td><td>$se[desc] рублей</td><td>$se[app]</td></tr>"; $fulltables = ob_get_contents(); endwhile; ob_end_clean(); } else { $fulltables = "<p><b>Error: ".mysql_error()."</b><p>"; exit(); }[/PHP] |
|
|
Degradator |
30.11.2015, 15:01;
Ответить: Degradator
Сообщение
#3
|
|
[IMG]http://risovach.ru/upload/2013/08/mem/malysheva_27435826_orig_.jpg[/IMG]
|
|
|
Degradator |
30.11.2015, 15:04;
Ответить: Degradator
Сообщение
#4
|
|
Можно спросить, что именно проверяет вот это условие?
[PHP]if($sequery) [/PHP] И зачем тут вобще нужен ob_start();? Наверно, никогда не слышал про сложение строк? Ну и никогда не видел конструкций вида while(): - endwhile;, обычно делают while(){} |
|
|
BOKOREZ
|
Сообщение
#5
|
|
Можно спросить, что именно проверяет вот это условие? [PHP]if($sequery) [/PHP] [PHP]if(check_value($sequery), $min_val, $max_val) {...}[/PHP] Оно у меня является числом, и тут я его проверяю на допустимость. Сорри, что при добавке поста не указал это, проблема была в другом, не посчитал нужным писать весь код. [PHP] while(): ... endwhile;[/PHP] Подскажите, что плохого в такого вида конструкции? Ну и почему нельзя использовать ob_start();? |
|
|
Degradator |
1.12.2015, 17:14;
Ответить: Degradator
Сообщение
#6
|
|
$sequery = "SELECT * FROM mytables WHERE user = $user_id LIMIT 0, 30"; if($sequery) Оно у меня является числом, и тут я его проверяю на допустимость Точно оно является числом? Ну и почему нельзя использовать ob_start();? плохо для производительности, тем более не надо использовать если можно просто сложить строки. Да, можно складывать строки. |
|
|
Den1xxx |
1.12.2015, 19:21;
Ответить: Den1xxx
Сообщение
#7
|
|
И зачем тут вобще нужен ob_start();? Наверно, никогда не слышал про сложение строк? Это такая заглушка. Когда нет ожидаемых данных или когда какой-нибудь умник поимеет БД, скрипт типа не будет сыпать ошибками «Warning», т.к. всё закешировано. ТС видимо никогда не слышал про экранирование данных и про проверки isset и !empty. Чувствую, нет, даже знаю, что его ожидает много боли. никогда не видел конструкций вида while(): - endwhile; Ну это ещё одна конструкция, видимо из знаменитого учебника Попова про PHP 4. В своих особо ценных советах он ещё любит do .... while использовать вместо foreach, но здесь к сожалению не пригодилось.\ Ещё я совсем не понимаю, зачем здесь переменной $fulltables присваивается каждый раз новое значение, переписывая предыдущее: [PHP] while($se = mysql_fetch_array($seresult)): echo "<tr><td>$se[name]</td><td>$se[desc] рублей</td><td>$se[app]</td></tr>"; $fulltables = ob_get_contents(); endwhile;[/PHP] А ещё я не заметил, чтобы переменная $fulltables была определена. Что может вызвать ошибку Warning, как раз и подавляемое этим странным кешированием вывода. BOKOREZ, держите медальку, Вы заработали: [IMG]http://s4.pikabu.ru/post_img/big/2015/05/07/6/1430989171_1871837159.jpg[/IMG] |
|
|
BOKOREZ
|
Сообщение
#8
|
|
Господа, спасибо за критику. И за медальку тоже, давно чувствую, что она мне нужна.
ТС видимо никогда не слышал про экранирование данных и про проверки isset и !empty. Про проверки empty и isset слышал, и использую их довольно таки везде. Просто здесь указывать не стал, дабы не уходить от сути проблемы. А суть проблемы была в другом совсем. Точно оно является числом? Точно, перепроверил 850 раз. А именно на допустимые символы только от 0 до 9, на отсутствие спецсимволов, знаков минус и плюс итд итп. Честно, проверяю досконально, безопасность же... По поводу сложения строк не совсем понял, объяснять не объясняйте, у вас без сарказма не получается, а мне стремненько. Если можно, дайте вменяемую и правильную инфу. Ещё я совсем не понимаю, зачем здесь переменной $fulltables присваивается каждый раз новое значение, переписывая предыдущее А как правильно? Я ведь только учусь=) |
|
|
BOKOREZ
|
Сообщение
#9
|
|
Господа, я тут погуглил... Ну если опустить все проверки (честно, они есть) и обратить внимание на суть моего вопроса... так правильно?=)
[PHP]while($se = $sequery->fetch_array()){ $fulltable .='<tr>'; $fulltable .= '<td>'.$se['name'].'</td>'; $fulltable .= '<td>'.$se['cost'].'</td>'; $fulltable .= '<td>'.$se['approved'].'</td>'; $fulltable .='</tr>'; } $fulltable .= '</table>';[/PHP] |
|
|
Degradator |
2.12.2015, 19:19;
Ответить: Degradator
Сообщение
#10
|
|
так правильно? определенно лучше. Вобще, использовать fetch_array я не рекомендую. Лучше юзай fetch_assoc или хотябы fetch_array (MYSQLI_ASSOC) |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Ручной обмен, ввод/вывод электронных валют | ЮMoney, WMZ, Крипта, Приват, Монобанк | Низкие комиссии, минимальные суммы сделок быстро, удобно, по доступному курсу |
200 | Sostavitel | 98242 | 11.2.2024, 21:07 автор: Wolfhound |
|
Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery Разработка сайтов и сервисов под-ключ |
0 | alexey | 1243 | 24.11.2023, 14:46 автор: alexey |
|
Sbitcoin.ru – Ввод, Вывод, Обмен: Qiwi, YD, Btc, Btc-e, PM, Cash IN, PR24, MG, WU, Нал (RU, UA). | 9 | sbitcoinru | 6784 | 10.10.2023, 19:25 автор: Sbitcoin |
|
Обмен WebMoney - Яндекс - QIWI. Вывод/ввод Приват24 UAH | 225 | himin | 132906 | 7.5.2023, 13:26 автор: Вера_Симонова |
|
«»101Crypta.com«»ВВОД/ВЫВОД/ОБМЕН«»BTC/ETH/QIWI/USDT/VISA/MC«»НАЛИЧНЫЕ/СНГ/ЕВРОПА«» | 13 | 101Crypta | 12161 | 18.4.2023, 23:15 автор: 101Crypta |
Текстовая версия | Сейчас: 24.4.2024, 15:21 |