PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (5): « 1 [2] 3 4 5 »

> Найдено сообщений: 67
Object Отправлено: 27 Февраля, 2014 - 15:19:30 • Тема: Проверка вводимых данных • Форум: Вопросы новичков

Ответов: 7
Просмотров: 183
Хорошо. Я понял, PDO намного удобнее mysqli, но если подходить с точки зрения удобства то также можно использовать и какой-то фреймворк и тогда будет и удобно и не нужно заморачиваться с проверками и т.д. Но если подходить как говорится с академической точки зрения, то все же хотелось бы получить ответ/совет на первый вопрос, стоит ли, по возможности, делать тщательную проверку/преобразование данных или достаточно real_escape_string?
Object Отправлено: 27 Февраля, 2014 - 13:28:19 • Тема: Проверка вводимых данных • Форум: Вопросы новичков

Ответов: 7
Просмотров: 183
Мелкий пишет:
А какая разница?
Ну в подготавливаемых запросах нужно биндить результат к переменным, а если у меня функция делает запрос к разным таблицам. Разные запросы, разное количесво полей и т.д. Я это имел ввиду.
Object Отправлено: 27 Февраля, 2014 - 13:00:07 • Тема: Проверка вводимых данных • Форум: Вопросы новичков

Ответов: 7
Просмотров: 183
Мелкий пишет:
Use prepared statements, Luke!
А если запросы динамические?
Object Отправлено: 27 Февраля, 2014 - 11:20:29 • Тема: Проверка вводимых данных • Форум: Вопросы новичков

Ответов: 7
Просмотров: 183
Что-то меня переклинило с безопасностью и мне кажется я уже леплю лишнее. Скажите если я знаю тип поля в базе, стоит ли мне делать проверку вносимых данных соответственно этим типам, например как-то так:

PHP:
скопировать код в буфер обмена
  1. switch ($type) {
  2.         case 'int':
  3.             $value = intval($value);
  4.             break;
  5.         case 'float':
  6.             $value = floatval($value);
  7.             break;                                                     
  8.         case 'varchar':
  9.             $value = "'".$this->db->real_escape_string(strip_tags(trim($value)))."'";
  10.             break;
  11.         default:
  12.             $value = $this->db->real_escape_string(strip_tags(trim($value)));
  13.             break;
  14. }


Или достаточно проэскейпить все и не забивать голову и код лишним мусором?
Object Отправлено: 27 Февраля, 2014 - 11:10:15 • Тема: Запись данных в базу • Форум: Вопросы новичков

Ответов: 10
Просмотров: 322
1. Ну обычная процедура изменения записи подразумивает что Вы вытаскиваете данные нужной Вам записи и присваиваете их текстовым полям формы. Потом при сохранении в базу, данные из формы распихиваются по переменным и втыкаются в запрос. Что поменялось то будет изменено, а старые данные запишутся обратно.

2. Или формировать запрос динамически и в SET передавать только поля значение которых поменялось.
Object Отправлено: 30 Апреля, 2013 - 15:40:12 • Тема: Различие в массивах. • Форум: Вопросы новичков

Ответов: 12
Просмотров: 411
Area пишет:
Можно ли сделать без циклов? В любом случаи и - не плохо.

Можно через if, но тогда код не универсален, если добавить элемент в любой из массивов, нужно дописывать новые проверки. Как-бы в учебных целях это можно, но в работе это бред.
Object Отправлено: 30 Апреля, 2013 - 12:11:06 • Тема: Различие в массивах. • Форум: Вопросы новичков

Ответов: 12
Просмотров: 411
Вы в первом посте неправильно формулировали задачу:

Area пишет:
Сравнить первый со вторым и вытащить содержимое первого.
Я например подумал что сравнить нужно значения, а потом оказывается что сравнивать нужно ключи.

Вот как-то так:
PHP:
скопировать код в буфер обмена
  1.         $arrayFirst = array(3=>array(1=>'one', 2=>'two'), 4=>array(1=>'four', 2=>'five'));
  2.         $arraySecond = array(3=>'one', 6=>'two');
  3.        
  4.         foreach ($arrayFirst as $k1=>$v1) {
  5.                 foreach ($arraySecond as $k2=>$v2) {
  6.                         if ($k1 == $k2) {
  7.                                 $arrayThird[$k1] = $v1;
  8.                         }
  9.                 }
  10.         }
  11.        
  12.         echo "<pre>";
  13.         print_r($arrayThird);
  14.         echo "</pre>";
Object Отправлено: 30 Апреля, 2013 - 08:18:58 • Тема: Не получается сделать простую таблицу • Форум: Вопросы новичков

Ответов: 11
Просмотров: 470
Может там какие-то стили прописаны для таблиц по-умолчанию.

P.S. Вообще-то это Вам нужно на форум по HTML и верстке.
Object Отправлено: 29 Апреля, 2013 - 20:23:23 • Тема: Не получается сделать простую таблицу • Форум: Вопросы новичков

Ответов: 11
Просмотров: 470
У меня все нормально, проверял в IE 8, FF, Chrome.



Если текста много, тянется блок с картинкой, если мало, растягиваются строки справа под высоту левой (с картинкой).
Object Отправлено: 29 Апреля, 2013 - 12:12:06 • Тема: Вывод изображений в слайдер • Форум: Вопросы новичков

Ответов: 10
Просмотров: 1348
У Вас формулировка вопросов это ... ужас.

Если нужно вытаскивать только некоторое количество изображений можно поменять запрос, к примеру вот так:

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `name` FROM `imgs`
  2. ORDER BY `id` DESC
  3. LIMIT 0, 5;


Будет выводить только 5 картинок, включая последнюю добавленную, только из-за сортировки первой картинкой в слайдере будет последняя добавленная в базу, второй предпоследняя и т.д., но пересортировать можно уже в php. Это как-бы простой вариант, а можно считать количество записей в таблице с изображениями, считать сдвиг и выводить последние 5, тогда не нужно пересортировывать в пыхе.

P.S. Вообще-то php скрипт должен выводить все изображения, только не все отображать, а вот "крутить" карусель (слайдер) нужно уже с помощью javascript. ну это при нормальной реализации.
Object Отправлено: 28 Апреля, 2013 - 22:54:30 • Тема: Не получается сделать простую таблицу • Форум: Вопросы новичков

Ответов: 11
Просмотров: 470
CODE (html):
скопировать код в буфер обмена
  1. <table>
  2.         <tr><td rowspan="3">Image</td><td>Text</td></tr>
  3.         <tr><td>Text</td></tr>
  4.         <tr><td>Text</td></tr>
  5. </table>
Object Отправлено: 28 Апреля, 2013 - 22:39:39 • Тема: Вывод изображений в слайдер • Форум: Вопросы новичков

Ответов: 10
Просмотров: 1348
Вам нужно выводить имена файлов изображений из таблицы и если например там их 5 и в таблицу добавили 6-ю, то вывести в слайдер все 6 или все-таки только последнюю? А то Ваше сообщение и код какие-то противоречивые. Если нужны все изображения зачем передавать id одной картинки? Чего Вы прицепились к этому id? Зачем лупить в цикле 5 раз select? Можно выбрать все одним запросом, а потом в цикле выводить картинки в блоки. Ну и последнее, обычно слайдер делают через списки <ul> задавая стили.

PHP:
скопировать код в буфер обмена
  1. <div id="slider">
  2. <ul>
  3.     <?PHP
  4.         $path = 'img/';
  5.         $sql ='SELECT name FROM imgs';
  6.         $query = mysql_query($sql) or die(mysql_error());
  7.         while ($res = mysql_fetch_assoc($query)){
  8.         echo "<li><img src='{$path}{$res['name']}'></li>";
  9.         } ?>
  10. </ul>
  11. </div>


Как-то так.
Object Отправлено: 04 Апреля, 2013 - 08:37:49 • Тема: Если результат пустой • Форум: Вопросы новичков

Ответов: 10
Просмотров: 1052
Как вариант можно проверить количество записей в результирующем наборе:

PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("SELECT * FROM table1", $link);
  2. $num_rows = mysql_num_rows($result);
  3.  
  4. if ($num_rows == 0) {
  5.     //Выводить тото!
  6. }
Object Отправлено: 29 Марта, 2013 - 15:54:23 • Тема: mysql_result() на mysqli? • Форум: Вопросы новичков

Ответов: 42
Просмотров: 6515
это так надо?
fetch_array()[0];

а может так:
fetch_array([0]);
Object Отправлено: 29 Марта, 2013 - 08:41:31 • Тема: update msql • Форум: Вопросы новичков

Ответов: 19
Просмотров: 633
Вам же написали:
caballero пишет:
и пиши коректно с массивами

"UPDATE obyavi SET title='{$_POST["title"]}' "
или
"UPDATE obyavi SET title='". $_POST["title"] ."'"


А Вы в том месте где Вам указали исправили, а в другом зачем, да?
У Вас написано так:
PHP:
скопировать код в буфер обмена
  1. $sql = "UPDATE obyavi SET title='".$_POST['title']."' WHERE id='$id'";


А теперь еще раз внимательно смотрим как собирается строка с подстановкой переменных

или так:
PHP:
скопировать код в буфер обмена
  1. $sql = "UPDATE obyavi SET title='{$_POST['title']}' WHERE id={$id}";

или так:
PHP:
скопировать код в буфер обмена
  1. $sql = "UPDATE obyavi SET title='".$_POST['title']."' WHERE id=".$id;

Страниц (5): « 1 [2] 3 4 5 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB