|
|
|
| Добрый день!!
Помогите решить следующую задачу:
Есть БД(karta) в ней есть таблица(dannie) с полями ФИО, дата рождения, пол, гражданство, паспортные даннные и т.д.
Необходимо выполнить отчет в котором бы содержались поля из таблицы выбранные с помощью checkbox'ов.
query.php
<script type="text/javascript">
function checkAll(oForm, cbName, checked)
{
for (var i=0; i < oForm[cbName].length; i++) oForm[cbName][i].checked = checked;
}
</script>
<tr><td><input type="checkbox" name="total" value="checkbox" onClick="checkAll(this.form,'vibor',this.checked)">Отметить все<br></tr></td>
<tr><td><input type="checkbox" name="vibor" value="familia">Фамилия</tr></td>
<tr><td><input type="checkbox" name="vibor" value="name">Имя</tr></td>
<tr><td><input type="checkbox" name="vibor" value="otchestvo">Отчество</tr></td>
<tr><td><input type="checkbox" name="vibor" value="data">Дата рождения</tr></td>
<tr><td><input type="checkbox" name="vibor" value="mestorozh">Место рождения</tr></td>
<tr><td><input type="checkbox" name="vibor" value="document">Документ</tr></td>
<tr><td><input type="checkbox" name="vibor" value="seria">Серия</tr></td>
<tr><td><input type="checkbox" name="vibor" value="number">Номер</tr></td>
<tr><td><input type="checkbox" name="vibor" value="kem">Кем</tr></td>
<tr><td><input type="checkbox" name="vibor" value="kogda">Когда</tr></td>
<tr><td><input type="checkbox" name="vibor" value="grazhdan">Гражданство</tr></td>
<tr><td><input type="checkbox" name="vibor" value="pol">Пол</tr></td>
</table>
|
Результат нужно вывести в виде таблицы с колонками выбранными с помощью чекбоксов | |
|
|
|
|
|
|
|
для: natsuho
(29.03.2010 в 09:41)
| | может например, вот так:
$q="SELECT ";
//если был выбран checkbox familia то добавляем его для вывода данных из таблицы
if (isset($_POST["familia"])) $q.="and familia,"; (поле familia таблицы table_name)
if (isset($_POST["name"])) $q.="and name,";
...
//если создать массив с именами переменных и именами полей таблицы и пройти по массиву
//сейчас в конец $q запятая которую надо убрать
$q.=" FROM table_name where ....";
$res=mysql_query($q);
//вывод результата | |
|
|
|
|
|
|
|
для: serenya1983
(29.03.2010 в 13:10)
| | ничего не вывело..=((
echo $res; ничего не показал
Переменная $_GET["familia"]) не передается..потому что echo $q; выдает SELECT FROM dannie. | |
|
|
|
|
|
|
|
для: natsuho
(29.03.2010 в 14:10)
| | чекбоксы вида
<input type="checkbox" name="vibor[document]">
|
не прокатит?
а потом будет массив
который после обработки можно собрать в строку
$sql_ins = implode(",", $_POST['vibor']);
|
и запихнуть в запрос
"SELECT ".$sql_ins." FROM dannie"
|
возможно проще брать из базы все поля звездочкой, а фильтровать только вывод? | |
|
|
|
|
|
|
|
для: Balamut182
(29.03.2010 в 14:21)
| | а можно по подробнее, а то я новичок во всем этом | |
|
|
|
|
|
|
|
для: natsuho
(29.03.2010 в 14:27)
| | хз, как то так
<table>
<?php
$res = mysql_fetch_assoc( mysql_query( "SELECT * FROM table", $Link_id ) );
$count = count( $res );
for( $i = 0; $i < $count; $i++ ) {
?>
<tr>
<?php
foreach( $res[$i] as $key => $val ) {
if( in_array( $key, array_keys($_POST['vibor'] )) ) {
?>
<td><?=$val;?></td>
<?php
}
}
?>
</tr>
<?php
}
?>
|
| |
|
|
|
|
|
|
|
для: Balamut182
(29.03.2010 в 14:43)
| | Balamut182,
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in
$res = mysql_fetch_assoc( mysql_query( "SELECT * FROM table", $Link_id ) );
|
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in
$res = mysql_fetch_assoc( mysql_query( "SELECT * FROM table", $Link_id ) );
|
Warning: Invalid argument supplied for foreach()
foreach( $res[$i] as $key => $val ) {
|
И еще name какой писать??
Я уже запуталась( | |
|
|
|
|
|
|
|
для: natsuho
(29.03.2010 в 09:41)
| | Надо всем чебоксам давать разные имена.
<input type="checkbox" name="vibor"...
<input type="checkbox" name="nomer".... | |
|
|
|
|
|
|
|
для: Лена
(29.03.2010 в 14:33)
| | и value="1" ставить, а то они в On приходят - не айс, по-моему =)
А в имя можно массивы choice[] - так еще проще работать. | |
|
|
|
|
|
|
|
для: neadekvat
(29.03.2010 в 14:51)
| | В value нужно пихать данные, которые нужно получить не сервере, чаще всего это id элемента. Или да, 1, если в базе есть дополнительное поле, которое меняет свое состояние в зависимости от выбранного чекбокса.
>А в имя можно массивы choice[] - так еще проще работать.
Ну автор же нигде не указал, что ему на выходе нужно один массив получить :) | |
|
|
|
|
|
|
|
для: Лена
(29.03.2010 в 14:57)
| | Автор не знает, как решить задачу, а добавив к уже имеющемуся у него коду в имена [] (при этом оставив значения value) задачу решить проще намного, мне кажется | |
|
|
|