PHP.SU

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

Страниц (98): В начало « ... 5 6 7 8 [9] 10 11 12 13 ... » В конец

> Найдено сообщений: 1465
teddy Отправлено: 03 Ноября, 2014 - 19:35:54 • Тема: Выборка из базы по определенным ID • Форум: Вопросы новичков

Ответов: 3
Просмотров: 157
event
Гугл или IN нехороший?) Оба полезны, не придумывайте) в данном случае IN то что нужно
teddy Отправлено: 03 Ноября, 2014 - 19:29:57 • Тема: Выборка из базы по определенным ID • Форум: Вопросы новичков

Ответов: 3
Просмотров: 157
Гуглите MySQL IN()
teddy Отправлено: 02 Ноября, 2014 - 15:14:43 • Тема: Замкнутый массив? • Форум: Напишите за меня, пожалуйста

Ответов: 8
Просмотров: 88
RobinBad
Не за что. Если и число 7 фиксировано, тогда Ваш вариант пойдет)

DelphinPRO
А элемент с индексом 0 куда то потерялся Улыбка
Интересно, как поступишь, если массив будет ассоциативным?)
Или например если будет $start = 153; $count = 267; а сам массив будет содержать 30 элементов?
teddy Отправлено: 02 Ноября, 2014 - 13:16:03 • Тема: Замкнутый массив? • Форум: Напишите за меня, пожалуйста

Ответов: 8
Просмотров: 88
А что если цифры на которые Вы ориентируетесь будут превышать количество элементов в массиве? array_merge снова и снова? Улыбка Или это исключено для данной задачи?
Напишу на всякий случай решение с помощью итераторов.

PHP:
скопировать код в буфер обмена
  1. $iterator = new LimitIterator(new InfiniteIterator(new ArrayIterator($arr)),28, 7);
teddy Отправлено: 25 Октября, 2014 - 14:38:27 • Тема: Вывод последней записи с помощью PDO • Форум: Вопросы новичков

Ответов: 5
Просмотров: 582
Для начала $row[0],$row[1] лучше поменять на внятные ключи, а fetch mode сделайте fetch assoc, читабельность кода улучшиться.
Вот смотрите, Вы формируете ссылки на редактирование каждой записи, подставляя id каждой записи в ссылку. Тут все хорошо.
Но в конечном счете на странице редактирования, Вы используете этот $_GET['id'] в SQL запросе для получения необходимой записи для редактирования.

Так вот, когда Вы используете $_GET['id'] для получении записи, приведите его явно к числу.
PHP:
скопировать код в буфер обмена
  1. $id = isset($_GET['id']) ? (int)$_GET['id'] : null;

И уже этот $id можете спокойно использовать в своем запросе.

При нажатии на кнопку "Сохранить" так же экранируйте все данные, которые будут участвовать в запросе UPDATE. Сделать это можно с помощью метода quote(у экземпляра класса PDO)

Либо используйте подготовленные запросы и можно ничего не экранировать Улыбка
Как то так...
teddy Отправлено: 25 Октября, 2014 - 13:22:50 • Тема: Вывод последней записи с помощью PDO • Форум: Вопросы новичков

Ответов: 5
Просмотров: 582
Уже лучше Улыбка Но косячки все же остались.

Вопрос, зачем здесь while, если у Вас возвращается всего 1 запись?
PHP:
скопировать код в буфер обмена
  1. $stmt = $dbh->query('SELECT * from materials ORDER BY `id` DESC LIMIT 1');
  2. $result = $stmt->fetch(PDO::FETCH_ASSOC);
  3. var_dump($result);

В данном случае этого более чем достаточно.
teddy Отправлено: 25 Октября, 2014 - 12:29:08 • Тема: Вывод последней записи с помощью PDO • Форум: Вопросы новичков

Ответов: 5
Просмотров: 582
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `materials` ORDER BY `id` DESC LIMIT 1

(Добавление)
И что за catch(PDO_EXPRESSION $e) ? должно быть PDOException, а PDO_EXPRESSION нет в природе
(Добавление)
Блин... да тут гора ошибок))
так же при передаче массива в execute есть синтаксическая ошибка... + ко всему execute есть у PDOStatement а не у PDO.
teddy Отправлено: 19 Октября, 2014 - 16:16:43 • Тема: Работа с классами • Форум: Вопросы новичков

Ответов: 6
Просмотров: 268
Можно. И без конструктора тоже можно. И даже без сеттеров можно.
Но речь сейчас о режиме fetch class, а не о всех возможных решениях Улыбка
teddy Отправлено: 19 Октября, 2014 - 15:31:17 • Тема: сумма нечетных элементов массива • Форум: Вопросы новичков

Ответов: 8
Просмотров: 2008
Похоже я понял..)) Индексы вообще то считаются с нуля, а не с 1.

PHP:
скопировать код в буфер обмена
  1. $numbers = array(1,3,2,5,8,4,7);
  2.  
  3. $result = array();
  4. $numCnt = count($numbers);
  5.  
  6. for($i = 0, $j = 1; $i < $numCnt; $i++, $j++){
  7.        
  8.     if($j % 2 != 0)
  9.         $result[] = $numbers[$i];
  10. }
  11.  
  12. echo implode(', ', $result).'<br />';
  13. echo 'Сумма '.array_sum($result);

Сейчас я надеюсь все правильно?))
teddy Отправлено: 19 Октября, 2014 - 15:16:44 • Тема: сумма нечетных элементов массива • Форум: Вопросы новичков

Ответов: 8
Просмотров: 2008
Не обязательно копировать мое сообщение в своих постах Улыбка
Я б помог но похоже не понимаю что Вам нужно...
Объясните ещё раз, более внятно...
teddy Отправлено: 19 Октября, 2014 - 14:24:12 • Тема: сумма нечетных элементов массива • Форум: Вопросы новичков

Ответов: 8
Просмотров: 2008
Только выводит. Складывается с помощью array_sum.
Если нужны индексы а не значения, это нужно было как бы отметить изначально...

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

http://php.net/manual/ru/function.array-keys.php
http://php.net/manual/ru/function.array-flip.php
(Добавление)
Если же нужно получить значения которым соответствуют нечетные индексы то вот ещё пример

Спойлер (Отобразить)
teddy Отправлено: 19 Октября, 2014 - 14:06:31 • Тема: сумма нечетных элементов массива • Форум: Вопросы новичков

Ответов: 8
Просмотров: 2008
PHP:
скопировать код в буфер обмена
  1. $odd = array_filter($arr, function($val){
  2.     return $val % 2 != 0;
  3. });
  4.  
  5. foreach($odd as $val){
  6.     echo $val.'<br />';
  7. }
  8.  
  9. echo 'Сумма нечетных чисел: '.array_sum($odd);

$arr - Ваш массив.
teddy Отправлено: 19 Октября, 2014 - 13:58:44 • Тема: Работа с классами • Форум: Вопросы новичков

Ответов: 6
Просмотров: 268
supernick пишет:
Так вот подскажите как лучше, проще и удобнее это реализовать?

Есть удобный вариант.

PHP:
скопировать код в буфер обмена
  1. class User
  2. {
  3.     public $name;
  4.     public $email;
  5.     public $register_date;
  6. }
  7.  
  8. $stmt = $dbh->prepare('SELECT `name`, `email`, `register_date` FROM `users` WHERE `id`=:id');
  9. $stmt->setFetchMode(PDO::FETCH_CLASS, 'User');
  10. $stmt->execute(array(':id' => $userId));
  11.  
  12. $user = $stmt->fetch();
  13. var_dump($user->name);

Подразумевается, что переменная $dbh содержит экземпляр класса PDO.

При успешной выборке свойства экземпляра класса User будут заполнены данными из найденной записи в БД но при условии, что каждое название свойства класса User идентично названию поля в БД.

К сожалению, данный подход требует того, что бы свойства класса были публичными. В идеале должна быть некая прослойка, с помощью которой можно было бы заполнить соответствующие свойства даже если они защищенные или приватные. Но для препода я думаю сойдет вполне
teddy Отправлено: 18 Октября, 2014 - 12:09:17 • Тема: Ajax и select • Форум: Напишите за меня, пожалуйста

Ответов: 8
Просмотров: 82
В таком случае вопрос, почему Вы решили, что проблема в селекте? Остальные значения приходят что ли?Улыбка
Смотрите консоль в браузере(в панели разработчика) там должны быть ошибки после клика на элемент с id ChekUsers
teddy Отправлено: 18 Октября, 2014 - 11:46:59 • Тема: Ajax и select • Форум: Напишите за меня, пожалуйста

Ответов: 8
Просмотров: 82
CODE (javascript):
скопировать код в буфер обмена
  1. $('#ServerID').find(':selected').val()

Страниц (98): В начало « ... 5 6 7 8 [9] 10 11 12 13 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB