|
|
16.03.2010, 08:46
|
|
malich
Андрей Малков
Зарегистрирован: 2005-08-09
Сообщений: 522
|
Код:".listQuery("SELECT Message_ID, area FROM Message$classID WHERE Checked=1 AND area != '' AND area != 'NULL' GROUP BY area", "<input name='checkbox$i' type='checkbox'> $data[area]<br/>")."
подскажите как использовать:
Код:<input ".(${"checkbox".$i}=='on'?" checked='checked'": NULL )." >
никак не могу разобраться
|
|
|
16.03.2010, 10:49
|
|
Хыиуду
Зарегистрирован: 2009-10-21
Сообщений: 156
|
Ну, во-первых, чтобы чекбокс был включен, ему достаточно написать checked, а не checked='checked'
А во-вторых - не знаю, конечно, всех деталей, но что-то мне кажется, что listQuery такое не потянет. Проще использовать обычные запросы
$res=mysql_query("SELECT Message_ID, area FROM Message$classID WHERE Checked=1 AND area != '' AND area != 'NULL' GROUP BY area");
$i=0;
while ($row=mysql_fetch_assoc($res))
{
echo (или $result.=)
"<input name='checkbox$i type=checkbox ".(${checkbox$i}=='on'?'checked':'').">$row[area]</a><br>";
$i++;
}
|
|
|
16.03.2010, 14:45
|
|
DiGGy
DiGGy
Зарегистрирован: 2005-04-04
Сообщений: 1546
|
как-то тут у вас всё в одну кучу да еще и с кучей ошибок...
1. SQL-запрос. Я так и не понял, что этим запросом хотели сделать... group by используют, когда применяют ф-ии агрегации типа count(), agv(), min(), max() и т.д. - у вас их нет. Если хотите вывести уникальные значения, то используют select distinct area... Для чего именно вам нужно поле Message_ID - тоже загадка, оно и ни в группировку не включено и ни в вывод через $data[..]. Также отсутстсвует сортировка, т.е. если вы хотите поле area как-то привязать к переменным checkbox, то получается, что вывод в хаотичной сортировке вас устраивает - что нелогично.
Рискну предположить, что вы хотели след. выборку сделать:
Код:select distinct `area` from `Message{$classID}` where `Checked`=1 and `area`>'' order by `area`
2. Вообще не понятно, что за переменные $checkbox - откуда они (в посте не указано)? Если вы хотите эти переменные в ф-ию listQuery передать, то их как минимум надо объявить глобальными, чтобы они были доступны внутри listQuery или обращаться к ним через массив $GLOBALS[...].
3. Варинт, предложенный Хыиуду можно рассматривать, но в рамках неткета он устаревший (раньше была практика обращения напрямую к пхп ф-ии с указанием $LinkID). Лучше вот так:
Код:
$html = ''; $box = '';
$areas = $db->get_col("select distinct `area` from `Message{$classID}` where `Checked`=1 and `area`>'' order by `area`");
foreach ($areas as $i=>$area) {
$box = "checkbox".$i;
$html .= "<input ".($$box=='on' ? "checked" : NULL).">$area<br/>";
}
в переменной $html будет текст, который вам нужен
зы. в общем и целом лучше формализуйте задачу получше и тогда будет ясно как ее решать.
Temet nosce...
|
|
|
16.03.2010, 16:13
|
|
malich
Андрей Малков
Зарегистрирован: 2005-08-09
Сообщений: 522
|
DiGGy - за distinct спасибо.
но обратите внимание, что вопрос звучал как получить эту информацию, внутри listQuery.
|
|
|
17.03.2010, 09:17
|
|
Хыиуду
Зарегистрирован: 2009-10-21
Сообщений: 156
|
DiGGy писал(а):3. Варинт, предложенный Хыиуду можно рассматривать, но в рамках неткета он устаревший (раньше была практика обращения напрямую к пхп ф-ии с указанием $LinkID).
Сам знаю, что устаревший, но пользуюсь им, поскольку нормальной документации по работе с объектом $db я так и не нашел.
|
|
|
17.03.2010, 09:38
|
|
pe3udent
Артур Юсупов
Зарегистрирован: 2008-04-03
Сообщений: 220
|
malich писал(а):вопрос звучал как получить эту информацию, внутри listQuery.
Код:".listQuery("SELECT Subdivision_ID AS id, Subdivision_Name AS name FROM Subdivision ORDER BY Subdivision_ID ASC LIMIT 10", "<input type='checkbox' name='subd' value='$data[id]'"; if($data[id] == intval($_GET['si'])) $result .= ' checked'; $result .= " /> $data[name]<br>")."
не проверял, но должно работать
|
|
|
17.03.2010, 09:59
|
|
DiGGy
DiGGy
Зарегистрирован: 2005-04-04
Сообщений: 1546
|
malich писал(а):но обратите внимание, что вопрос звучал как получить Эту информацию, внутри listQuery.
обратите внимание на п.2 моего поста где говорится про глобальный массив $GLOBALS[...], также посмотрите на пост pe3udent, который в своем частном случае использует массив $_GET[], потому что параметры передает через get метод. Где у вас определяются переменные $checkbox - тока вам известно, поэтому пишите $GLOBALS, чтоб уж наверняка.
В общем, ваш вопрос решаем, подумайте, попытайте разные варианты...
Хыиуду писал(а):Сам знаю, что устаревший, но пользуюсь им, поскольку нормальной документации по работе с объектом $db я так и не нашел.
И не найдете! Это заимствованный класс, это не разработка неткета. Советую вам от документации перейти к изучению исходников, а именно: /netcat/sql_core.php - посмотрите все методы, вроде всё и без документации понятно...
Temet nosce...
|