|
|
|
| В базе как минимум 50% пустых строк и при просмотре таблицы, если данных нет, то название строки должно быть скрыто.
<?php
$fields = array('0'=>array('field'=>'address','label'=>'Наш адрес:'),
'1'=>array('field'=>'tel','label'=>'Телефоны:'),
'2'=>array('field'=>'fax','label'=>'Факс:'),
'3'=>array('field'=>'site','label'=>'Официальный сайт:'),
'4'=>array('field'=>'email','label'=>'Электронная почта:'),
);
$fields_num = count($fields);
while ($myrow = mysql_fetch_array($result)){
echo "<table border='1' cellspacing='0' cellpadding='0' width='650'>";
for($n=0; $n<$fields_num; $n++){
if ($myrow[$fields[$n]['field']] != '']){
echo "<tr>
<td width='112' align='left' valign='top'><p><em>".$myrow[$fields[$n]['label']]."</em></p></td>
<td width='402' align='left' valign='top'><p>".$myrow[$fields[$n]['field']]."</p></td>
</tr>";
}
echo "</table>";
}
}
?>
|
Ошибку дает Parse error: syntax error, unexpected ']'
на эту строку if ($myrow[$fields[$n]['field']] != '']){ | |
|
|
|
|
|
|
|
для: franko
(11.06.2011 в 09:21)
| | Вместо строки
if ($myrow[$fields[$n]['field']] != '']){
| следует писать
if ($myrow[$fields[$n]['field']] != ''){
|
| |
|
|
|
|
|
|
|
для: cheops
(11.06.2011 в 10:02)
| | ошибок нет теперь, но данные не выводятся, как не выводится даже таблица.
в чем может быть дело?
<?php
$result = mysql_query("SELECT * from pu WHERE id_pu='$id_pu'", $db);
$myrow = mysql_fetch_array($result);
$fields = array('0'=>array('field'=>'address','label'=>'Наш адрес:'),
'1'=>array('field'=>'tel','label'=>'Телефоны:'),
'2'=>array('field'=>'fax','label'=>'Факс:'),
'3'=>array('field'=>'site','label'=>'Официальный сайт:'),
'4'=>array('field'=>'email','label'=>'Электронная почта:'),
);
$fields_num = count($fields);
while ($myrow = mysql_fetch_array($result)){
echo "<table border='1' cellspacing='0' cellpadding='0' width='650'>";
for($n=0; $n<$fields_num; $n++){
if ($myrow[$fields[$n]['field']] != ''){
echo "<tr>
<td width='112' align='left' valign='top'><p><em>".$myrow[$fields[$n]['label']]."</em></p></td>
<td width='402' align='left' valign='top'><p>".$myrow[$fields[$n]['field']]."</p></td>
</tr>";
}
echo "</table>";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: franko
(11.06.2011 в 12:03)
| | Т.е. даже тэга <table> не выводится? | |
|
|
|
|
|
|
|
для: cheops
(11.06.2011 в 13:35)
| | да. даже таблица не выводится, хотя там border=1 | |
|
|
|
|
|
|
|
для: franko
(11.06.2011 в 17:36)
| | Сразу после выполнения mysql_query(), проверьте количество записей в результирующей таблице
<?php
echo "Количество записей = ".mysql_num_rows($result)."<br>";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(11.06.2011 в 18:23)
| | Количество записей = 1 | |
|
|
|
|
|
|
|
для: franko
(11.06.2011 в 19:36)
| | Вот что происходит: при помощи первого вызова функции mysql_fetch_array(), вы извлекаете первую и единственную запись в результирующей таблице
$myrow = mysql_fetch_array($result);
| когда скрипт подходит к циклу while, все записи из результирующей таблицы извлечены и функция mysql_fetch_array() возвращает false - цикл не срабатывает. | |
|
|
|
|
|
|
|
для: cheops
(11.06.2011 в 21:00)
| | поднял цикл. но все равно - не помогло.
$result = mysql_query("SELECT * from pu WHERE id_pu='$id_pu'", $db);
echo "Количество записей = ".mysql_num_rows($result)."<br>";
$myrow = mysql_fetch_array($result);
while ($myrow = mysql_fetch_array($result)){
|
| |
|
|
|
|
|
|
|
для: franko
(12.06.2011 в 19:44)
| | Поднятие цикла ничего не даст, нужно убрать лишнюю строку $myrow = mysql_fetch_array($result);
$result = mysql_query("SELECT * from pu WHERE id_pu='$id_pu'", $db);
echo "Количество записей = ".mysql_num_rows($result)."<br>";
while ($myrow = mysql_fetch_array($result)){
|
| |
|
|
|
|
|
|
|
для: cheops
(12.06.2011 в 21:03)
| | появилась таблица. только одна строчка
в первом столбце - пустота, а должно быть "наш адрес", во втором столбце - прописывается адрес. таблица заканчтвается на этом.
все остальные данные - вне таблицы. | |
|
|
|
|
|
|
|
для: franko
(12.06.2011 в 21:28)
| | Выведите дамп массива $myrow - в нем все нужные элементы присутствуют?
<?php
...
echo "<pre>";
print_r($myrow);
echo "</pre>";
...
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(12.06.2011 в 21:33)
| | да. все присутствуют.
отсутствуют названия строк - "Наш адрес", "телефоны", "факс" и т.д. - которые как раз и не выводятся | |
|
|
|