Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: запрос с checkbox-ом
 
 автор: Надия   (18.12.2007 в 04:22)   письмо автору
 
 

Здравствуйте! Помогите сделать вывод данных из формы черех checkbox? например, есть в БД две таблицы - PC и Param. Необходимо создать форму, на которую будут динамически выводиться checkboxы с названиями тех полей, которые есть в этих таблицах. Потом выбираем несколько checkbox -ов и должны отобразиться выбранные поля ... Две таблицы связаны через ID: PC.ID_PC=Param.ID_PC

   
 
 автор: exp   (18.12.2007 в 10:05)   письмо автору
 
   для: Надия   (18.12.2007 в 04:22)
 

а для чего такое может-быть нужно ?
:)
если пользователи будут выбирать какие поля в таблицах смотреть ,наверное им надо ограничить только некоторыми, и некоторые сделать принудительно , а не так как например это :)

<?php

$tab 
= array('PC''Param');
$fields = array();

if (!empty(
$_POST)) {

    function 
check($v$key$pr)
    {
        global 
$tab$fields;

    
    if (
preg_match('#^[a-z][a-z_\d]*$#i'$v)) $fields[] = $pr '.' $v ' AS ' $pr '__' $v;
        else return;
    }
if (!empty(
$_POST["$tab[0]"])) array_walk($_POST["$tab[0]"], 'check'$tab[0]);
if (!empty(
$_POST["$tab[1]"])) array_walk($_POST["$tab[1]"], 'check'$tab[1]); 
echo 
'<table border="4px">
        <tr>
        <td>' 
implode("</td>\n<td>"$fields) . '</td>
        </tr>'
;

if (empty(
$fields)) exit;
else if (
count($fields) > 1$fields implode(', '$fields);
else  
$fields $fields[0];

$query 'SELECT ' $fields ' FROM ' $tab[0] . ' LEFT JOIN ' $tab[1] . 'ON PC.ID_PC=Param.ID_PC;';
$query_look mysql_query($query);


    while(
$rows mysql_fetch_row($query_look))
    {
            echo 
'<tr><td>' implode("</td>\n<td>"$rows) . '</td></tr>' "\n";

    }
    echo 
'
            </table>'
;

    exit;
}

?>
<style>
input { padding: 2px 20px }
</style>

<form action="?" method="post">
<?php

foreach($tab AS $name)
{
$query_look mysql_query('DESCRIBE ' $name ';');
    echo 
'<h2>' $name "</h2>\n";

    while(
$rows mysql_fetch_row($query_look))
    {
    echo 
'
        <input type="checkbox" name="' 
$name '[]" value="' $rows[0] . '"/>' $rows[0] . '<br>';
    }
echo 
"<hr>\n";
}

?>
<input type="submit" value="   "/>
</form>

   
 
 автор: Надия   (18.12.2007 в 11:10)   письмо автору
 
   для: exp   (18.12.2007 в 10:05)
 

Спасибо, сейчас попробую....:-)) А надо мне это для того, чтобы пользователь мог выбрать нужные ему для просмотра поля и все данные выводились в таблице...

   
 
 автор: Надия   (18.12.2007 в 11:35)   письмо автору
 
   для: Надия   (18.12.2007 в 11:10)
 

не получилось.........выдает кучу ошибок :-(((((((((((

   
 
 автор: Надия   (19.12.2007 в 03:08)   письмо автору
 
   для: Надия   (18.12.2007 в 11:35)
 

подскажите пожадуйсто.....а если я буду сама создавать чекбоксы с названиями только тех полей, которые мне нужно отобразить. Как мне создать массив чекбоксов и как правильно построить запрос?

   
 
 автор: exp   (20.12.2007 в 03:58)   письмо автору
 
   для: Надия   (19.12.2007 в 03:08)
 

Насколько смог чего-нибудь придумать :) , Вам лучше просто уже придумать несколько вариантов того что можно-будет показать пользователю , и делать скрипт уже конкретно под эти варианты. при этом узнавать сначала имена полей в таблицах это лишнее.
такое делается если только в скриптах администрирования баз данных. структура таблиц должна быть уже известна , даже если таблицы создаются в процессе чего.нибудь.
И если я правильно понял из вопроса , Вам нужно будет только несколько вариантов запросов SELECT.
Остальное зависит от того что конкретно делается. Что.бы точнее ответить нужно знать хотя.бы структуру таблиц и примерно то что в них содержится .
// а тот код у меня работал :) , с немного другим запросом , без LEFT JOIN .
там в начале ещё должно.быть соединение с сервером и выбор базы данных

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования