5 / 5 / 5
Регистрация: 07.07.2014
Сообщений: 559
1

Совет по выборке данных из бд

30.08.2015, 17:45. Показов 539. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день ув. пользователи ! Скажите пожалуйста, что плохого в этом коде ..

PHP
1
2
3
4
5
6
$b = mysql_query('SELECT * FROM `books` WHERE `category` = "'.$category.'"');
$temp = 0;
while ($row = mysql_fetch_assoc($temp)) {
    $temp = $temp + $row['temp '];
}
echo $temp;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.08.2015, 17:45
Ответы с готовыми решениями:

Нужен совет по выборке из БД
Есть у меня две таблицы в MySQL. В одной номера со статусами, в другой есть даты у этих номеров....

Нужен совет по выборке железки
Добрый день Из начально - ПК предназначается для игр. Собирается в основном для Assassins...

Дублирование данных при выборке данных
Здравствуйте! Использую MariaDB 10.4.8. Есть такой запрос: SELECT...

выбросы в выборке данных
коллеги, подскажите есть ли алгоритмы обрабоки выборки данных? т.е. есть выборка, она...

16
Эксперт PHP
3827 / 3178 / 1334
Регистрация: 01.08.2012
Сообщений: 10,768
30.08.2015, 17:55 2
Ну во-первых, для получения суммы значений столбца в БД есть SUM(), тогда и while не нужен.

Во-вторых, mysql устарело, используйте mysqli или PDO.
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.08.2015, 18:01 3
Цитата Сообщение от maximillian77 Посмотреть сообщение
($row = mysql_fetch_assoc($temp))
PHP
1
$row = mysql_fetch_assoc($b)
наверно лучше формировать массив. а потом выводить как нужно. или вам нужно вывести все данные в строке?
0
5 / 5 / 5
Регистрация: 07.07.2014
Сообщений: 559
30.08.2015, 18:13  [ТС] 4
fanatikus, так правильно, да. Я ошибся ..

PHP
1
$row = mysql_fetch_assoc($b)
Добавлено через 6 минут
Jodah, а если допустим содержимое массива $row я захочу вывести нум. списком, какой лучше цикл использовать ?
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.08.2015, 18:53 5
PHP
1
2
3
4
5
6
$b = mysql_query('SELECT * FROM `books` WHERE `category` = "'.$category.'"');
echo '<ul>';
while ($row = mysql_fetch_assoc($b)) {
    echo '<li>'.$row['title'].'</li>';
}
echo '</ul>';
0
5 / 5 / 5
Регистрация: 07.07.2014
Сообщений: 559
30.08.2015, 18:59  [ТС] 6
fanatikus, а если допустим у меня есть просто обычный массив и нужно содержимое массива вывести нумерованным списком. Какой цикл грамотнее использовать для этой цели ?

PHP
1
$array= array(0 => 'one', 1 => 'two', 2 => 'three', 3 => 'four', 4 => 'five');
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.08.2015, 19:12 7
for или foreach(для ассоциативных массивов)
0
5 / 5 / 5
Регистрация: 07.07.2014
Сообщений: 559
30.08.2015, 19:15  [ТС] 8
fanatikus,а почему так можете объяснить пожалуйста или скинуть ссылку на документацию ?
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.08.2015, 19:22 9
Цитата Сообщение от maximillian77 Посмотреть сообщение
а почему так можете объяснить
что почему?
0
5 / 5 / 5
Регистрация: 07.07.2014
Сообщений: 559
30.08.2015, 19:25  [ТС] 10
Почему именно for или foreach грамотнее использовать для ассоциативных массивов, а не do или while.
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.08.2015, 19:27 11
Цитата Сообщение от fanatikus Посмотреть сообщение
for или foreach(для ассоциативных массивов)
для массива с числовыми ключами, можно и while

Добавлено через 1 минуту
Цитата Сообщение от maximillian77 Посмотреть сообщение
Почему именно for или foreach грамотнее использовать для ассоциативных массивов,
для ассоциативных только foreach
0
5 / 5 / 5
Регистрация: 07.07.2014
Сообщений: 559
30.08.2015, 19:35  [ТС] 12
fanatikus, если бы у вас был такой массив

PHP
1
$array= array(0 => 'one', 1 => 'two', 2 => 'three', 3 => 'four', 4 => 'five');
вы можете сказать какой бы вы цикл использовали и почему ?
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.08.2015, 19:50 13
при помощи for или while можно перебрать только массив, индексы которого начинаются с 0 и идут по порядку. в остальных случаях foreach

Добавлено через 4 минуты
Цитата Сообщение от maximillian77 Посмотреть сообщение
если бы у вас был такой массив
любой из 3. я предпочитаю foreach
0
5 / 5 / 5
Регистрация: 07.07.2014
Сообщений: 559
30.08.2015, 19:59  [ТС] 14
fanatikus,получается, что приведенный выше массив можно перебрать любым циклом(for,foreach,do,while), ни какой цикл не будет пользоваться преимуществом ?
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.08.2015, 20:49 15
Цитата Сообщение от maximillian77 Посмотреть сообщение
любым циклом(for,foreach,do,while)
цикла do, нет. есть do-while
Цитата Сообщение от maximillian77 Посмотреть сообщение
получается, что приведенный выше массив можно перебрать любым циклом
да. почитай о циклах и сам все поймеш.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16842 / 6720 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
31.08.2015, 07:39 16
Цитата Сообщение от fanatikus Посмотреть сообщение
при помощи for или while можно перебрать только массив, индексы которого начинаются с 0 и идут по порядку
почему же? Можно и ассоциативный перебрать с помощью while или for.
PHP
1
2
3
4
$arr = ['foo' => 'lorem', 'bar' => 'ipsum', 'lol' => 'dolor'];
 
while(list($key, $value) = each($arr))
    echo $key, ' => ', $value, PHP_EOL;
1
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
31.08.2015, 10:09 17
Цитата Сообщение от KOPOJI Посмотреть сообщение
Можно и ассоциативный перебрать с помощью while или for.
да, век живи, век учись. но все-же foreach привычнее(понятнее). имхо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.08.2015, 10:09
Помогаю со студенческими работами здесь

Макрос по выборке данных
Подскажите макрос по выборке данных из таблицы и внесением их в указанную ячейку через запятую....

Ошибка в выборке данных
$dats=$_GET; $conn=mysql_connect('localhost','root','') or die(mysql_error());...

Проблема с запросом по выборке данных
est danije v tablice ID Lastname Nr data 1 petrov 1 03.03.03 1 petrov 2 03.03.04 1 ...

Сортировка данных при выборке
Ребят, м.б кто-нибудь знает, как после наполнения грида данными из БД, данные отображались...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru