Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2012, 09:59   #1
acteralex
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 189
По умолчанию не работает foreach

PHP код:
$row $a->selectAll("test_kurs");
    foreach(
$row as $values){
        if(
$values['thems_id'] == $_GET['id']){
            
$v_kurs .= $values['kurs'].","
        }
    } 
таблица:
Код:
+----------+-----+
| thems_id | kurs|
+----------+-----+
4 | 2
4 | 3
4 | 4
выводит только последнюю строку! Почему?
Хотя другие выводы работают. Делаю тоже самое.. Перебор раюотает, всё ок! о здесь нет
acteralex вне форума Ответить с цитированием
Старый 22.03.2012, 10:04   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

ну.. логика такая значит. В вашем случае переменная изменяется только в случае равенства поля thems_id и id полученного через метод GET ... наверное он = 4 потому и последнюю выводит
ADSoft вне форума Ответить с цитированием
Старый 22.03.2012, 10:09   #3
acteralex
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 189
По умолчанию

но у меня thems_id везде = 4..
По идее он должен добавлять каждый раз...
Код:
<?php
$v_kurs = 2,3,4,;//вот, что должно быть в переменной! а только 4:(
?>
acteralex вне форума Ответить с цитированием
Старый 22.03.2012, 10:28   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

вот ваш код - идея
Код:
if($values['thems_id'] == $_GET['id']){
            $v_kurs .= $values['kurs'].","; 
        }
условие может отработать ТОЛЬКО в случае равенства!!!! перебираете $values['thems_id'], а $_GET['id'] - неизменна!!! равенство при вашем примере только в 1 случае может быть!

если хотите чтоб просто все были номера - уберите сравнение
ADSoft вне форума Ответить с цитированием
Старый 22.03.2012, 10:28   #5
zamaevac
Пользователь
 
Аватар для zamaevac
 
Регистрация: 22.03.2010
Сообщений: 88
По умолчанию

acteralex, var_dump($row); в студию.
Я, похоже, знаю в чём проблема, но хочу убедиться. Выведите мне переменную и я расскажу в чём дело.
zamaevac вне форума Ответить с цитированием
Старый 22.03.2012, 11:22   #6
acteralex
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 189
По умолчанию

ADSoft, так всё правильно! в случае равенства!
у меня везде thems_id = 4? и $_GET['id'] = 4;
должно выводить всё полностью!
Вы путаете с курсом... курс = 4.. Естественно только один раз выведет!

НО! ЧТО САМОЕ ИНТЕРЕСНОЕ: если удаляю последнюю строку в БД, то у меня выведется только 3 (тройка)
acteralex вне форума Ответить с цитированием
Старый 22.03.2012, 11:25   #7
acteralex
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 189
По умолчанию

array(1) { [4]=> array(3) { ["thems_id"]=> string(1) "4" [1]=> string(1) "4" ["kurs"]=> string(1) "4" } }
acteralex вне форума Ответить с цитированием
Старый 22.03.2012, 11:33   #8
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от acteralex Посмотреть сообщение
array(1) { [4]=> array(3) { ["thems_id"]=> string(1) "4" [1]=> string(1) "4" ["kurs"]=> string(1) "4" } }
Ваш метод selectAll(); возвращает только одну строку в этом запросе.
Разберитесь почему.
foreach здесь не при чем.
Andkorol вне форума Ответить с цитированием
Старый 22.03.2012, 11:47   #9
acteralex
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 189
По умолчанию

Andkorol, selectAll() работает хорошо, т.к. я его уже использую в N-ый раз.. и всё хорошо! А здесь нет
Вот:
Код:
array(4) { [1]=> array(3) { ["id"]=> string(1) "1" [1]=> string(42) "3 курс, информатика, 1 гр" ["kurs"]=> string(42) "3 курс, информатика, 1 гр" } [2]=> array(3) { ["id"]=> string(1) "2" [1]=> string(40) "2 курс, менеджмент, 4 гр" ["kurs"]=> string(40) "2 курс, менеджмент, 4 гр" } [3]=> array(3) { ["id"]=> string(1) "3" [1]=> string(40) "5 курс, социология, 2 гр" ["kurs"]=> string(40) "5 курс, социология, 2 гр" } [4]=> array(3) { ["id"]=> string(1) "4" [1]=> string(26) "4 курс, сия, 1 гр" ["kurs"]=> string(26) "4 курс, сия, 1 гр" } }
acteralex вне форума Ответить с цитированием
Старый 22.03.2012, 11:54   #10
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

а как же?
Цитата:
Сообщение от acteralex Посмотреть сообщение
array(1) { [4]=> array(3) { ["thems_id"]=> string(1) "4" [1]=> string(1) "4" ["kurs"]=> string(1) "4" } }
не пойму.... тут явно видно что 1 строка.... и возвращает её ваш метод
ADSoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Foreach в SQL Ivan_32 SQL, базы данных 1 03.04.2011 20:28
php: for из foreach avast2011 PHP 4 13.02.2011 22:03
foreach ограничение на вывод Kasper1 PHP 2 29.01.2011 02:43
Классы в C# и цикл foreach densx Помощь студентам 2 30.11.2010 03:33
foreach c двумя массивами sliker PHP 9 26.02.2010 15:36