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

Форум MySQL

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

 

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

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

тема: как задать запрос так чтобы выводились именя полей в таблице в браузере а не только содержимое?
 
 автор: lightning.say   (27.10.2010 в 04:00)   письмо автору
 
 

вот допустим есть запрос

$query = "SELECT * FROM am where client is not NULL";

но выводится лишь содержимое бд без указания имен полей

  Ответить  
 
 автор: Trianon   (27.10.2010 в 08:09)   письмо автору
 
   для: lightning.say   (27.10.2010 в 04:00)
 

SQL-сервер по запросу БД сам по себе в браузер не выводит вообще ничего.
В чем проблема-то?

  Ответить  
 
 автор: lightning.say   (27.10.2010 в 08:25)   письмо автору
 
   для: Trianon   (27.10.2010 в 08:09)
 

выводит если он в php коде, но без названия полей, че не понятно-то?
вот код если нужен:


<?php
  
include "config.php";
  
$query "SELECT * FROM am where client is not NULL";
  
$cat mysql_query($query);
  if(!
$cat) exit(mysql_erorr());
  echo 
"<table border=1>";
  while(list(
$port$client$CC_AMS$CC_AM$prescription) = mysql_fetch_row($cat))
            
  {
    echo 
"<tr>
            <td>
$port</td>
            <td>
$client</td>
            <td>
$CC_AMS</td>
            <td>
$CC_AM</td>
            <td>
$prescription</td>
          </tr>"
;
  }
  echo 
"</table>";
?>



Вот результат к примеру:

----------------------------------------------------------------------------------TP1.1 | Дальняя Связь |  CC1.2.141-CC1.2.111 | CC1.1.111-TP1.1 |    08D007271-1 | 
----------------------------------------------------------------------------------TP1.2 | Совинтел |  C1.2.142-CC1.2.112 | CC1.1.112-TP1.2 |   09K040100          |                       
-----------------------------------------------------------------------------------


В таблице отсутствуют заголовки столбцов port, client, CC_AMS, CC_AM, prescription
Надо чтобы было так:


------------------------------------------------------------------------------------port |   client     |       CC_AMS       |        CC_AM        |     prescription   | 
------------------------------------------------------------------------------------TP1.1 | Дальняя Связь |  CC1.2.141-CC1.2.111 | CC1.1.111-TP1.1 |    ------------------------------------------------------------------------------------TP1.2 | Совинтел            |  CC1.2.142-CC1.2.112 | CC1.1.112-TP1.2 |                         
------------------------------------------------------------------------------------

  Ответить  
 
 автор: sim5   (27.10.2010 в 08:43)   письмо автору
 
   для: lightning.say   (27.10.2010 в 08:25)
 

Так надо сперва сформировать заголовок таблицы и не как
"<tr>
<td>$port</td>
<td>$client</td>
<td>$CC_AMS</td>
<td>$CC_AM</td>
<td>$prescription</td>
</tr>"
а уж потом выводить данные от list.

  Ответить  
 
 автор: lightning.say   (27.10.2010 в 08:49)   письмо автору
 
   для: sim5   (27.10.2010 в 08:43)
 

Тут у меня данные в цикле выводятся, куда я заголовок впишу и как?

  Ответить  
 
 автор: sim5   (27.10.2010 в 08:51)   письмо автору
 
   для: lightning.say   (27.10.2010 в 08:49)
 

Да, задача прямо неимеющая решения...
<?
echo "<table border=1>
<tr>
 <td>port</td> 
 <td>client</td> 
 <td>CC_AMS</td> 
 <td>CC_AM</td> 
 <td>prescription</td> 
</tr>"

 while(list(
$port$client$CC_AMS$CC_AM$prescription) = mysql_fetch_row($cat)) 
  echo 
"<tr> 
     <td>
$port</td> 
     <td>
$client</td> 
     <td>
$CC_AMS</td> 
     <td>
$CC_AM</td> 
     <td>
$prescription</td> 
   </tr>"

  echo 
"</table>";

  Ответить  
 
 автор: lightning.say   (27.10.2010 в 11:09)   письмо автору
 
   для: sim5   (27.10.2010 в 08:51)
 

а через sql запрос эти данные получить нельзя не создавая названия вручную а обратившись к бд?

  Ответить  
 
 автор: sim5   (27.10.2010 в 12:06)   письмо автору
 
   для: lightning.say   (27.10.2010 в 11:09)
 

Нет, ну нормально, значит вам не лень назвать (заметьте самому, а не РНР за вас догадывается) имена переменных в list, а эти же самые имена просто прописать в заголовке, так уже проблема?
У вас что названия полей меняются по дням недели, что таковое требуется?

  Ответить  
 
 автор: lightning.say   (27.10.2010 в 13:40)   письмо автору
 
   для: sim5   (27.10.2010 в 12:06)
 

а если у меня 100 полей в бд что я должен для каждого писать такой код, не долго ли?

  Ответить  
 
 автор: sim5   (27.10.2010 в 13:47)   письмо автору
 
   для: lightning.say   (27.10.2010 в 13:40)
 

Во-первых я не представляю себе таблицу со ста заголовками, она неудобна будет на странице. Думаю, что и у вас нет столько. А во-вторых, вы пишите код один раз, и обращаетесь к одному и тому же, так что один раз написать это не проблема. Даже если и предположить, что вы выбираете из пусть существующих ста полей несколько для вывода, а затем опять несколько для вывода, то вы должны опять таки знать что в данном случае выводите.
В данном случае я не вижу никакой надобности узнавать имена полей, пусть даже это будет и 20 штук. Оправданно это будет только тогда, когда, например, большое число полей выводится порциями, по запросу пользователя, с постоянным смещением вправо.

  Ответить  
 
 автор: lightning.say   (27.10.2010 в 13:52)   письмо автору
 
   для: lightning.say   (27.10.2010 в 13:40)
 

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

  Ответить  
 
 автор: sim5   (27.10.2010 в 14:17)   письмо автору
 
   для: lightning.say   (27.10.2010 в 13:52)
 

А вам нужна универсальность? Универсальность обычно достигается потерей чего-то в чем-то. Вы не представили пока что задачу, которая бы оправдывала то, чего вы хотите, и довод "100 полей" невесомый. Посмотрим как вы решите "универсальность" и будет ли это "автомат", и если будет, то не будет ли он имеет "неуниверсальное".

  Ответить  
 
 автор: lightning.say   (27.10.2010 в 14:17)   письмо автору
 
   для: lightning.say   (27.10.2010 в 13:40)
 

для любого количества полей(это я к своему предыдущему сообщению). Задача есть, несколько баз данных с несколькими таблицами, каждая выводится на своей странице с определенными условиями при запросе и у каждой таблицы разное количество полей и записей.

  Ответить  
 
 автор: sim5   (27.10.2010 в 14:28)   письмо автору
 
   для: lightning.say   (27.10.2010 в 14:17)
 

Пишите, посмотрим какой у вас унивесальный автомат получится.

  Ответить  
 
 автор: lightning.say   (27.10.2010 в 14:46)   письмо автору
 
   для: lightning.say   (27.10.2010 в 13:40)
 

.

  Ответить  
 
 автор: Trianon   (27.10.2010 в 08:55)   письмо автору
 
   для: lightning.say   (27.10.2010 в 08:25)
 

То есть php-код всё же в браузер выводит содержимое таблицы? Пскольку таковой php-код написан?
А заголовок таблицы не выводит. потому что php-кода, отвечающенго за вывод заголовка, нет.

Hint. помочь получить метаданные табличного результата может mysql_fetch_field() либо mysql_fetch_assoc()

  Ответить  
 
 автор: lightning.say   (27.10.2010 в 11:53)   письмо автору
 
   для: Trianon   (27.10.2010 в 08:55)
 

да код написан и он выводит содержимое таблицы через sql запрос к бд а хотелось бы чтобы выводил и название заголовков через sql запрос или это невозможно? Когда в mysql пишешь аналогичный запрос названия ведь выводятся значит эти данные можно получить как-то

  Ответить  
 
 автор: Trianon   (27.10.2010 в 12:44)   письмо автору
 
   для: lightning.say   (27.10.2010 в 11:53)
 

>да код написан и он выводит содержимое таблицы через sql запрос к бд а хотелось бы чтобы выводил и название заголовков через sql запрос или это невозможно?
код и будет получать метаданные через sql-запрос.
но не в потоке данных, а в потоке метаданных.
В потоке данных тот же запрос никогда эти названия не вернет.
Поэтому и выводить названия придется отдельным php-кодом.

>Когда в mysql пишешь аналогичный запрос названия ведь выводятся значит эти данные можно получить как-то

Можно, конечно.
И я указал Вам инструменты, которые можно применить для реализации задуманного.
Только не стоит думать в клиенте mysql данные столбиков и их названия выводятся одним и тем же кодом - там тоже код вывода названий присутствует независимо.

  Ответить  
 
 автор: lightning.say   (27.10.2010 в 13:42)   письмо автору
 
   для: Trianon   (27.10.2010 в 12:44)
 

спасибо и за это, буду осваивать!

  Ответить  
Rambler's Top100
вверх

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