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

Форум MySQL

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

 

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

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

тема: Команда SHOW и рнр
 
 автор: Владимир55   (28.02.2009 в 13:36)   письмо автору
 
 

Перепробовав все примеры, обнаруженные на форуме, не обнаружил ни одного работоспособного, позволяющего средствами рнр увидеть результат исполнения оператора SHOW, выводящего список столбцов и тип полей.

Как это делается?

  Ответить  
 
 автор: Trianon   (28.02.2009 в 14:09)   письмо автору
 
   для: Владимир55   (28.02.2009 в 13:36)
 

Из phpMyAdmin этот оператор выводит что-нибудь адекватное?
Ваш пример?
Будем исправлять.

  Ответить  
 
 автор: Владимир55   (28.02.2009 в 14:52)   письмо автору
 
   для: Trianon   (28.02.2009 в 14:09)
 

В принципе, в phpMyAdmin структура таблицы и типы полей видны и без запроса. Но если выполнить книжный запрос SHOW FIELDS FROM parol_vse, то выводится совершенно верная информация. В моем случае такая:

Результат SQL-запроса
Хост: localhost
База данных: luck
Время создания: Фев 28 2009 г., 14:48
Создан: phpMyAdmin 3.1.2 / MySQL 5.0.75
SQL-запрос: SHOW fields from parol_vse; 
Строки: 10 

Field  Type  Null  Key  Default  Extra  
id int(11) NO PRI NULL auto_increment 
sozdan varchar(20) YES   NULL   
t_sozd varchar(20) YES   NULL   
operator varchar(20) YES   NULL   
user_id varchar(20) YES   NULL   
rur varchar(20) YES   NULL   
usd varchar(20) YES   NULL   
isp varchar(20) YES   NULL   
t_isp varchar(20) YES   NULL   
str_isp varchar(99) YES   NULL   

Невозможно загрузить расширение mcrypt! Проверьте настройки PHP.

А вот как это осуществить средствами рнр, я не понял.

  Ответить  
 
 автор: Trianon   (28.02.2009 в 15:00)   письмо автору
 
   для: Владимир55   (28.02.2009 в 14:52)
 

не Ваша ли это тема?
http://softtime.ru/forum/read.php?id_forum=3&id_theme=62215

  Ответить  
 
 автор: Владимир55   (28.02.2009 в 15:33)   письмо автору
 
   для: Trianon   (28.02.2009 в 15:00)
 

Да, указанная Вами тема создана мною.
Но разве она дает искомый ответ?

  Ответить  
 
 автор: Trianon   (28.02.2009 в 15:39)   письмо автору
 
   для: Владимир55   (28.02.2009 в 15:33)
 

дает.
Результат выполнения операторов SHOW в php-скрипте получается точно так же, как и результат выполнения операторов SELECT.

Еще раз.
Где php-скрипт, в котором Вы исполняете SHOW и выводите результат?

  Ответить  
 
 автор: Владимир55   (28.02.2009 в 23:43)   письмо автору
 
   для: Trianon   (28.02.2009 в 15:39)
 

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

Вот и в этом случае я безрезультатно использую такой код:
        echo '<br><p style="text-indent: 50px; margin-top: 0; margin-bottom: 0">
    <font face="Arial" size="4" color="#0000FF">Логи паролей</font></p>
    <br>
    <div align="center">
    <table border="1" width="100%" id="table1" style="border-collapse: collapse" bordercolor="#0000FF">
        <tr>
            <td align="center">id       </td>
            <td align="center">sozdan   </td>
            <td align="center">t_sozd   </td>
            <td align="center">operator </td>
            <td align="center">user_id  </td>
            <td align="center">rur      </td>
            <td align="center">usd      </td>
            <td align="center">isp      </td>
            <td align="center">t_isp    </td>
            <td align="center">str_isp  </td>
        </tr>';

    unset($row); // Удаление массива
    $res = mysql_query("SHOW fields from parol_vse");
    while($row = mysql_fetch_assoc($res))
    echo '<tr>
            <td align="center">', $row['id'],         '</td>
            <td align="center">', $row['sozdan'],   '</td>
            <td align="center">', $row['t_sozd'],   '</td>
            <td align="center">', $row['operator'], '</td>
            <td align="center">', $row['user_id'],  '</td>
            <td align="center">', $row['rur'],      '</td>
            <td align="center">', $row['usd'],      '</td>
            <td align="center">', $row['isp'],      '</td>
            <td align="center">', $row['t_isp'],    '</td>
            <td align="center">', $row['str_isp'],  '</td>
        </tr>';

    echo '    </table>
</div>';

Кроме шапки таблицы нет ничего.

  Ответить  
 
 автор: Trianon   (28.02.2009 в 23:52)   письмо автору
 
   для: Владимир55   (28.02.2009 в 23:43)
 

У Вас запрос SHOW fields from parol_vse в PMA выдавал такой набор полей?!
Сейчас попробую нарисовать абстрактную версию...

  Ответить  
 
 автор: Trianon   (01.03.2009 в 00:02)   письмо автору
 
   для: Trianon   (28.02.2009 в 23:52)
 


<STYLE>
table { border-collapse: collapse; background-color: #DDDDDD }
td      { border: 1px solid #777777; text-align: center; padding: 3px }
td.null { border: 1px solid #777777; text-align: center; padding: 3px ; background-color: #987654 }
th      { border: 1px solid #777777; text-align: left; padding: 3px ;  color: #770000 }
</STYLE>
<?php
 
require_once 'dbconfig.php';

 
$sql "SHOW FIELDS FROM `$table`";

 
$res =  mysql_query($sql);
 if(!
$res) exit("Error in $sql "mysql_error());

 for(
$flist = array(); (($field mysql_fetch_field($res)) != false); )
  
$flist[] = $field->name;

 echo 
"<table><tr>";
 foreach( 
$flist as $field) echo "<th>".htmlspecialchars($field)."</th>";
 echo 
"</tr>\r\n";
 while((
$row mysql_fetch_row($res))!= false)
 {
   echo 
"<tr>";
   foreach(
$flist as $key => $field)
     if(isset(
$row[$key]))
        echo 
" <td>".htmlspecialchars($row[$key])."</td>";
     else
        echo 
" <td class=null>NULL</td>";
   echo 
"</tr>\r\n";
 }
echo 
"</table>\r\n";

?>


$table = 'parol_vse';
...

  Ответить  
 
 автор: Владимир55   (01.03.2009 в 00:24)   письмо автору
 
   для: Trianon   (01.03.2009 в 00:02)
 

Да, получилось, работает совершенно верно! И выдает ту же инормацию, что и phpMyAdmin. Но как же велика дистанция между книжным примером и практической реализацией!

Спасибо!

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

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