Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не получается сделать правильный вид вывода данных, из мускула с помощью PHP 
:(
    Опции темы
ARTi13
Дата 26.9.2008, 08:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 6.1.2008
Где: г. Хабаровск

Репутация: нет
Всего: нет



Доброго всем времени суток. Не получилось сделать задуманное. 
Мне нужно вывести город, улицу один раз, а затем вывести все данные по  подразделениям, должностям, ФИО, телефонам. Т.е. вот так

[view=ЗАДУМАННОЕ] 
  Хабаровск    Пушкина,12     
ВДВ    Руководство    майор    Алибабаев    Андрей    Васильевич    1111    111111
ВДВ    Руководство    майор    Иванов    Иван    Иванович    2232    223222
ВДВ    Руководство    майор    Сергеев    Сергей    Сергеевич    3232    353535
     Хабаровск    Гоголя, 54     
ВДВ    Штаб    майор    Терентьева    Маргарита    Петровна    4444    444444
ВДВ    Штаб    майор    Иванов    Иван    Иванович    5555    555555
[/ЗАДУМАННОЕ]

Работающий код сделанный раннее: 
Код

if(!empty($_POST['type']))
 {
 
        foreach ($_POST['type'] as $val)
     {
    
    $sql = "SELECT directory_id,  city, street, fsubdivision, lsubdivision, appointment, fname, lname, mname, tellocal,  telGTS  FROM `sdirectory` WHERE (lsubdivision) LIKE '%".$val."%'";
   

    $query = mysql_query($sql) or die(mysql_error());
 
     print("<br><center><table width = \"90%\" border = \"1\" bgcolor = \"#BAF8CB\" cols = \"1\">");
     while ($myrow = mysql_fetch_array($query, MYSQL_ASSOC)) {
        print "\t<tr>\n";

            foreach ($myrow as $col_value) {
            print "\t\t
            <td>$col_value</td>\n";

        }
        print "\t</tr>\n";

    }
    print "</table>\n";
   }
   }
     
Результат кода.
Хабаровск    Пушкина, 12    ВДВ    Руководство    майор    Алибабаев    Андрей    Васильевич    1111    111111
Хабаровск    Пушкина, 12    ВДВ    Руководство    майор    Иванов    Иван    Иванович    2323    233232
Хабаровск    Пушкина, 12    ВДВ    Руководство    майор    Сергеев    Сергей    Сергеевич    3333    333333
                                    
Хабаровск    Гоголя, 54    ВДВ    Штаб    майор    Тереньтева    Маргарита    Петровна    4444    444444
Хабаровск    Гоголя, 54    ВДВ    Штаб    майор    Иванов    Иван    Иванович    5555    555555

НЕ получается сделать, вывод результата сложнее, а именно в виде ЗАДУМАННОГО см. выше. 
Ниже приведён не работающий код:  
Код:first

Код

<FORM NAME="Form1" ACTION="http://localhost/second.php" method="POST">
     <INPUT TYPE="checkbox" NAME='type[]' VALUE='Руководство'> Руководство<BR>
     <INPUT TYPE="checkbox" NAME='type[]' VALUE='Совет ветеранов'> Совет ветеранов<BR>
     <INPUT TYPE="checkbox" NAME='type[]' VALUE='Штаб'> Штаб<BR>
       <INPUT TYPE="submit" VALUE="Выбрать">


Код:second


Код

<?
$db = mysql_connect("localhost", "root", "******")
or die("Could not connect : " . mysql_error());
  mysql_query ("set character_set_client='cp1251'");
  mysql_query ("set character_set_results='cp1251'");
  mysql_query ("set collation_connection='cp1251_general_ci'");
    print "Успешное соединение";
//выбираем таблицу
      mysql_select_db("base")or die("не конект : " . mysql_error());

   if(!empty($_POST['type']))
 {
        foreach ($_POST['type'] as $val)
     {

      $sql = "SELECT directory_id, city, street, fsubdivision, lsubdivision, appointment, fname, lname, mname,tellocal, tellocaltwo FROM `sdirectory`  WHERE (lsubdivision) LIKE '%".$val."%'";

      $query = mysql_query($sql) or die(mysql_error());
 //здесь  я пробовал преобразовать элементы массива, в переменные. Чтобы дальше использовать переменную $street  в алгоритме(алгоритм не использовал т.к.
 //ниже написанный мной код (упрощённый вариант не сработал, т.е. не вывел мне те поля, которые я перечислил). Алгоритм следующий хотел применить 
 //не полностью напишу: 
$a = array['street']; 
if ($a !='street') { если улицы не равны выводит результат следующего выбранного подразделения(штаб) и т.д.}
 //Подскажите пожалуйста как осуществить ЗАДУМАННОЕ или хотя бы подскажите как PHP может узнать, что  я хочу 
 //использовать  столбец данных street,  как переменную.

         echo "<table>";
       while (list($directory_id, $city, $street,$fsubdivision, $lsubdivision, $appointment, $fname, $lname, $mname, $tellocal, $tellocaltwo ) = mysql_fetch_row($query)) {
            echo  "<tr>
<td>$directory_id</td>
<td>$city</td>
<td>$street</td>
<td>$fsubdivision</td>
<td>$lsubdivision</td>
<td>$appointment</td>
<td>$fname</td>
<td>$lname</td>
<td>$mname</td>
<td>$tellocal</td>
<td>$tellocaltwo</td>
</tr>"; 
 }
         echo "</table>";
                 }
          }
?>

Please  help me
Структура базы данных есть.
user posted image

Это сообщение отредактировал(а) ARTi13 - 29.9.2008, 06:15
PM MAIL   Вверх
skyboy
Дата 26.9.2008, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



Цитата(ARTi13 @  26.9.2008,  07:08 Найти цитируемый пост)
Не получилось мне найти примерного примера реализации, задуманного.

а зачем искать? ты же пост свой сам писал, а не искал такой же, чтоб скопировать?
если у тебя уже есть структура таблиц в БД(а судя по PHP-коду, она у тебя есть), то почему ты эту структуру здесь не указываешь? если структуры нет, то откуда ты взял этот PHP-код?
если у тебя запрос возвращает не то, что ты ожидаешь, то привел бы только этот запрос. 
вобщем, не знаю, как - кому, но мне практичеки ничего из твоего вопорса не понятно.
итак, рекомендую описать: как у тебя данные хранятся(стурктура используемых в задаче таблиц БД), что ты ожидаешь получить и что получаешь. и указывать только необходимое. например, если информация в базе данных у тебя есть и у тебя-таки проблема вывода, то HTML-код формы не нужен. А если структуры БД ешё не существует, то не нужен PHP-код, выбираеющий непонятно что непонятно откуда.
PM MAIL   Вверх
ARTi13
Дата 29.9.2008, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 6.1.2008
Где: г. Хабаровск

Репутация: нет
Всего: нет



skyboy переделал, начальную страницу.  Надеюсь изложил вопрос нормально. 
Please help me
PM MAIL   Вверх
fics
  Дата 6.11.2008, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 21.2.2008
Где: Луганск

Репутация: нет
Всего: нет



Можно сделать так:

когда  читаеш mysql_fetch_array($query) скидуеш свой город в переменную и при последующей итерации 
сравнюеш полученный город с уже существующей переменной если они не равны тогда напечатай город из этой перемнной
только, отсортируй по этому полю


Код

<?php
.........................................................

$rez = mysql_query('select * from mytable order by city');


$city = 'bla bla';

while($row = mysql_fetch_array($rez)) {
   if($city != $row['city']) {
      $city = $row['city']; 
      echo $city
   }

   выподиш все остальное
} 

?>


Это сообщение отредактировал(а) fics - 6.11.2008, 23:41
--------------------
Ушел на пары
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0472 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.