|
|
|
| Перепробовав все примеры, обнаруженные на форуме, не обнаружил ни одного работоспособного, позволяющего средствами рнр увидеть результат исполнения оператора SHOW, выводящего список столбцов и тип полей.
Как это делается? | |
|
|
|
|
|
|
|
для: Владимир55
(28.02.2009 в 13:36)
| | Из phpMyAdmin этот оператор выводит что-нибудь адекватное?
Ваш пример?
Будем исправлять. | |
|
|
|
|
|
|
|
для: 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 в 15:33)
| | дает.
Результат выполнения операторов SHOW в php-скрипте получается точно так же, как и результат выполнения операторов SELECT.
Еще раз.
Где php-скрипт, в котором Вы исполняете SHOW и выводите результат? | |
|
|
|
|
|
|
|
для: 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>';
|
Кроме шапки таблицы нет ничего. | |
|
|
|
|
|
|
|
для: Владимир55
(28.02.2009 в 23:43)
| | У Вас запрос SHOW fields from parol_vse в PMA выдавал такой набор полей?!
Сейчас попробую нарисовать абстрактную версию... | |
|
|
|
|
|
|
|
для: 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';
... | |
|
|
|
|
|
|
|
для: Trianon
(01.03.2009 в 00:02)
| | Да, получилось, работает совершенно верно! И выдает ту же инормацию, что и phpMyAdmin. Но как же велика дистанция между книжным примером и практической реализацией!
Спасибо! | |
|
|
|