|
|
|
|
$sql = "select * from phone_program where id_programs=". intval($_GET['id_programs']);
$res=mysql_query($sql);
if(!$res) {
print "Ашыпка";
}
for($id_phone = array(); $row = mysql_fetch_assoc($res); )
$id_phone[] = $row['id_phone'];
print_r($id_phone);
|
Выдает :
Почему - понять не могу, вроде в БД все есть, адресная строка тоже в порядке:
..../editform.php?id_programs=10
|
P.S.
Дамп БД:
INSERT INTO `phone_program` VALUES (10, 2);
INSERT INTO `phone_program` VALUES (10, 4);
|
| |
|
|
|
|
|
|
|
для: Dizels
(03.09.2008 в 18:00)
| | $id_phone = array();
порпобуйте постаьти ПЕРЕД циклом for() | |
|
|
|
|
|
|
|
для: DEM
(03.09.2008 в 18:16)
| | перебирете массив while-ом или foreach-ем и не парьтесь | |
|
|
|
|
|
|
|
для: Balamut182
(03.09.2008 в 18:21)
| | если Вы не знаете что посоветовать - помолчите. | |
|
|
|
|
|
|
|
для: DEM
(03.09.2008 в 18:16)
| | Он там стоит. Вывод показывает, что этот массив - пуст. | |
|
|
|
|
|
|
|
для: Dizels
(03.09.2008 в 18:00)
| | >Дамп БД:
>
INSERT INTO `phone_program` VALUES (10, 2);
>INSERT INTO `phone_program` VALUES (10, 4);
|
Отсюда никак не следует, что в таблице есть соответствующие строки.
Структуру таблицы Вы не привели. | |
|
|
|
|
|
|
|
для: Trianon
(03.09.2008 в 18:24)
| |
CREATE TABLE `phone_program` (
`id_phone` int(11) NOT NULL,
`id_programs` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
|
вот сама БД | |
|
|
|
|
|
|
|
для: Dizels
(03.09.2008 в 18:35)
| | echo $sql что показывает? | |
|
|
|
|
|
|
|
для: Trianon
(03.09.2008 в 18:48)
| | Стоп!
у Вас же столбцы в другом порядке!
Десятка в другом столбце!
upd. Sim5 -- глаз-алмаз! | |
|
|
|
|
|
|
|
для: Dizels
(03.09.2008 в 18:00)
| | Может быть потому, что в переменной $row не количество строк возвращенных запросом, а совсем другое.
Если возвращаемых строк может быть несколько, то можно так:
$sql = "select * from phone_program where id_programs=". intval($_GET['id_programs']);
if (!$res = mysql_query($sql)) print 'Ошибка';
elseif (!$n = mysql_num_rows($res)) echo 'Таких записей 0';
else {
while ($mas = mysql_fetch_array($res)) $id_phone[] = $mas['id_phone'];
}
print_r($id_phone);
|
| |
|
|
|
|
|
|
|
для: Yuriev
(03.09.2008 в 18:31)
| | выводит :
| |
|
|
|
|
|
|
|
для: Dizels
(03.09.2008 в 18:37)
| | Ну еще бы, если $n не известно с какого боку взялся. | |
|
|
|
|
|
|
|
для: sim5
(03.09.2008 в 18:40)
| | Если работа кода дойдет до этой строки, то в $n будет количество возврашенных записей. | |
|
|
|
|
|
|
|
для: Yuriev
(03.09.2008 в 18:51)
| | а Вам я настоятельно советую конструкций вроде
if(!$переменная = выражение )
никогда не писать.
не смотря на то, что эта мерзость пропускается интерпретаттором php,
с точки зрения человека, владеющего любым Си-подобным языком - это ересь мерзкая - присвоение выражения результату инверсии переменной.
Если так хочется применить - берите в скобки:
if( ! ($переменная = выражение) )
|
| |
|
|
|
|
|
|
|
для: Trianon
(03.09.2008 в 19:17)
| | Мдя, уже отматерили, спасибо ;-) | |
|
|
|
|
|
|
|
для: sim5
(03.09.2008 в 19:26)
| | ну а что делать? режет же глаз... | |
|
|
|
|
|
|
|
для: Trianon
(03.09.2008 в 19:27)
| | Ну вот и говорю, я бы так красиво не смог, а сразу матом :) | |
|
|
|
|
|
|
|
для: Trianon
(03.09.2008 в 19:17)
| | Спасибо за совет!
Подскахите, пожалуйста, где можно почитать на эту тему. Я дествительно не задумываясь часто использую эту "ересь" | |
|
|
|
|
|
|
|
для: Yuriev
(03.09.2008 в 19:28)
| | Порядок выполнения операций (то есть взаимный приоритет и ассоциативность) , описанны здесь:
http://ru.php.net/manual/ru/language.operators.php#language.operators.precedence
Согласно них приоритет выполнения операции инверсии ( ! )выше чем приоритет выполнения любой операции присваивания. ( = += -= ... )
и в нормальных системах программирования Вам такое выражение "ошибут" по самое небалуйся.
PS. Dizels куда-то делся... :) | |
|
|
|
|
|
|
|
для: Trianon
(03.09.2008 в 19:33)
| | Правильнее, видимо, ! называть операцией НЕ, так как отрицание (инверсия) это тильда в РНР. | |
|
|
|
|
|
|
|
для: Dizels
(03.09.2008 в 18:37)
| | Возможно $_GET приходит пустой.
Попробуйте где-то перед $sql = "select ... поставить echo $_GET['id_programs']);
и посмотрите, что выведет браузер | |
|
|
|
|
|
|
|
для: Yuriev
(03.09.2008 в 18:31)
| | Если судить по представленному, то записей как минимум 2 есть. | |
|
|
|
|
|
|
|
для: Yuriev
(03.09.2008 в 18:31)
| | >Может быть потому, что в переменной $row не количество строк возвращенных запросом, а совсем другое.
Неужели?
и что ж там такое написано, что не дает коду работать?
:)) | |
|
|
|
|
|
|
|
для: Trianon
(03.09.2008 в 18:41)
| | спорить, конечно, весело, но может вернемся к проблеме? | |
|
|
|
|
|
|
|
для: Dizels
(03.09.2008 в 18:43)
| | $sql = "select * from phone_program where id_phone=". intval($_GET['id_phone']);
Тогда еще будут записи сосответсвующие, иначе... Вы же в запросе десятку спрашиваете, не так ли? | |
|
|
|
|
|
|
|
для: Dizels
(03.09.2008 в 18:43)
| | Возможно $_GET приходит пустой.
Попробуйте где-то перед $sql = "select ... поставить echo $_GET['id_programs']);
и посмотрите, что выведет браузер | |
|
|
|
|
|
|
|
для: Trianon
(03.09.2008 в 18:41)
| | mysql_fetch_assoc($res) возвращает не количество строк | |
|
|
|
|
|
|
|
для: Yuriev
(03.09.2008 в 18:47)
| | >mysql_fetch_assoc($res) возвращает не количество строк
mysql_fetch_assoc($res) и не должно возвращать количество.
Это не мешает коду работать. Если запрос что-нибудь вернет. | |
|
|
|
|
|
|
|
для: Trianon
(03.09.2008 в 18:49)
| | но код-то не работает:( | |
|
|
|
|
|
|
|
для: Dizels
(03.09.2008 в 18:57)
| | Код работает. Поищите четверку - увидите.
..../editform.php?id_programs=4
..../editform.php?id_programs=2
| И в следующий раз дамп таблицы показывайте вместе - и структуру и данные.
В конце концов, можете зайти в таблицу phpMyAdmin'ом или еще чем-нибудь наглядным для Вас. | |
|
|
|
|
|
|
|
для: Dizels
(03.09.2008 в 18:57)
| | Перед запросом select проверили, $_GET не пустой? | |
|
|
|
|
|
|
|
для: Dizels
(03.09.2008 в 18:57)
| | Ну блин, вы читаете или нет? Вы запрашиваете в GET параметре 10, и эту десяточку просите поискать среди id_prorams, а она у вас в id_phone "гуляет", чего вы ждете тогда? | |
|
|
|
|
|
|
|
для: sim5
(03.09.2008 в 19:04)
| | У Вас глаз как у орла! Класс! | |
|
|
|
|
|
|
|
для: Yuriev
(03.09.2008 в 19:10)
| | Всем спасибо)
Тему можно закрыть - нафлудили много, но все равно помогли и это радует) | |
|
|
|