Как заполнить элементами массива список?

PNS

Новичок
Как заполнить элементами массива список?

Задача : Дан массив $ar Нужно заполнить его элементами поле со списком так, чтобы врезультате можно было пользоваться элементами массива интерактивно.
Подскажите пожалуйста, как такое делается?
 

Фанат

oncle terrible
Команда форума
пользоваться элементами массива интерактивно.
извините, а что это значит?

Вы уверены, что осознанно к скрипту на php примаменяете понятие "интерактивность"?

а поле со списком заполняется точно так же, как и любая другая операция с массивом - перебором в цикле.
понятие цикла изшкольного курса информатики не забыто?
 

PNS

Новичок
Originally posted by Фанат
извините, а что это значит?

Вы уверены, что осознанно к скрипту на php примаменяете понятие "интерактивность"?

а поле со списком заполняется точно так же, как и любая другая операция с массивом - перебором в цикле.
понятие цикла изшкольного курса информатики не забыто?
---------------
Интерактивность я тут понимаю так :Кликнул по строчке в списке - она отправилась на обработку функцией. Я , возможно, в терминологии не силен.

А насчет цикла - как к блоку <select></select> привязать переменную цикла?
 

Фанат

oncle terrible
Команда форума
очень плохо, что не силен.
к блоку <select></select> ничего привязывать не надо
с точки зрения пхп - это не блок. это просто кусок текста.
дело в том, что пхп формирует хтмл страницу, ЦЕЛИКОМ.
Со всеми блоками и потрохами. с помощью оператора echo.
надо вывести select? выводим.
надо вывести option? выводим.
надо вывести body? пожалуйста.
яваскрипт, img src - ради бога, без проблем.
промежду тегами можно выводить любые переменные, содержимое которых будет полноправной частью свормированного хтмл документа.

большие блоки хтмл лучше выводить не через пхп, а как есть, закрывая и открывая тег пхп.
строки в пхп ограничиваются кавычками.
оператор конкатенации (объединения) строк - точка (.)
вроде бы, все
или что-то еще не ясно?

если есть вопросы, то рекомендую
http://phpfaq.ru/na_tanke для терминологии
http://phpfaq.ru/newbie по обучение основам пхп
 

PNS

Новичок
Originally posted by Фанат
очень плохо, что не силен.
к блоку <select></select>
.......
.......
........
если есть вопросы, то рекомендую
http://phpfaq.ru/na_tanke для терминологии
http://phpfaq.ru/newbie по обучение основам пхп
-______________________________________

Большое спасибо за ответ. Я попробую, Думаю справлюсь - ответ внятный и понятный.
На счет очень плохо - что тут поделаешь, я ведь не больше 2-х недель как пхп начал постигать.

Еще раз спасибо.
 

Фанат

oncle terrible
Команда форума
если не получится - показывай, что сделал - будем исправлять
 

PNS

Новичок
Originally posted by Фанат
если не получится - показывай, что сделал - будем исправлять
Вроде работает. Нашел такой вариант (мне это нужно-то было для нормальной визуализации работы с базой данных):

$conns =mysql_pconnect("localhost" , "v44s" , "КGGTHy92" );
// коннект к бд

function prntablename()
{
$listtabs= mysql_list_tables("vzms");//Список таблиц
$tabs= mysql_fetch_row($listtabs) ; // Таблицы помещены в массив

while ( $t = mysql_fetch_row($listtabs) )
{
// это сам вывод
echo "
<option> $t[0] </option>
";

}; }

echo
"<form name='form1' method='post' action=''>
<select name='select' size=1 >
prntablename() ; // Получилось
</select>
</form>"

?>


Спасибо еще раз.
 

Фанат

oncle terrible
Команда форума
Несколько замечаний,если будет позволено.
визуализация работы с базой данных если она требует вывода таблиц, означает оную работу админа, а не пользователя.
рекомендую не изобретать велосипед, а воспользоваться готовым инструментом - phpmyadmin (в гугле набраешь это слово и идешь по первой ссылке)

mysql_list_tables - устаревшая и неподдерживаемая функция.
список таблиц надо получать соответствующим SQL запросом

сам код
я не знаю, откуда он взят, но он просто кошмарный.
$listtabs= mysql_list_tables("vzms");//возвращает НЕ Список таблиц
$tabs= mysql_fetch_row($listtabs) ; // Таблицы НЕ помещены в массив

дальнейший код - это просто что-то невообразимое.
во-первых, он. конечно же, не будет работать.
во-вторых, даже если, КАК Я ГОВОРИЛ, куски хтмл отделить от пхп, чтобы не возникало синтаксических ошибок - все равно я бы хотел посмотреть на
ХТМЛ код, генерируемый этим скриптом...

Знаит так.
учимся работать с баззой
http://detail.phpclub.net/article/phpintro
и узнаемЮ, что делают все эти конструкции -
mysql_fetch_row
while
и так далее.
 

PNS

Новичок
Originally posted by Фанат
Несколько замечаний,если будет позволено.
визуализация работы с базой данных если она требует вывода .....

...

while
и так далее.
Все-таки работает, я его поправил, можешь посмотреть.

<?php
$conns =mysql_pconnect("localhost" , "vzms" , "DDD" );// коннект к бд


function titul($caption)
{
echo "
<em><h3 align = center>
$caption
</h3>
</em> " ;
}

function prntablename()
{
$listtabs= mysql_list_tables("vzms");//Список таблиц
$tabs= mysql_fetch_row($listtabs) ; // Таблицы помещены в массив

while ( $t = mysql_fetch_row($listtabs) )
{// это вывод таблиц
echo "
<option> $t[0] </option>
";
};

}

function prnfldname($tbname)
{
$listtabs= mysql_list_tables("vzms");//Список таблиц
$tabs= mysql_fetch_row($listtabs) ; // Таблицы помещены в массив
// Что именно здесь сделано?
if (!$tbname) {exit;}
$qe="select * from $tbname";
$rsl=mysql_query($qe);
$numflds=mysql_num_fields($rsl);
for ($f=0 ; $f<$numflds ; $f++)
{
$fldn=mysql_field_name($rsl , $f);
echo "<option> $fldn </option>";
}
}

function prnfldtp($tbname, $fnum)
{
$listtabs= mysql_list_tables("vzms");//Список таблиц
$tabs= mysql_fetch_row($listtabs) ; // Таблицы помещены в массив
if (!$tbname) {exit;}
$qe="select * from $tbname";
$rsl=mysql_query($qe);
$numflds=mysql_num_fields($rsl);
$fldtp=mysql_field_type($rsl , $fnumflds);
echo "<font color=#CC0000 size=4 ><strong><em>
$fldtp</em></strong></font>";
}

function prnfldtyps($tbname)
{
$listtabs= mysql_list_tables("vzms");//Список таблиц
$tabs= mysql_fetch_row($listtabs) ; // Таблицы помещены в массив
if (!$tbname) {exit;}
$qe="select * from $tbname";
$rsl=mysql_query($qe);
$numflds=mysql_num_fields($rsl);
for ($f=0 ; $f<$numflds ; $f++)
{
$fldt=mysql_field_type($rsl , $f);
echo "<font color=#CC0000 size=4 ><strong><em>
$fldt</em></strong></font>";
}

}


function prninfo($tbname)
{
$listtabs= mysql_list_tables("vzms");//Список таблиц
$tabs= mysql_fetch_row($listtabs) ; // Таблицы помещены в массив
if (!$tbname) {exit;}
$qe="select * from $tbname";
$rsl=mysql_query($qe);
$numflds=mysql_num_fields($rsl);
for ($f=0 ; $f<$numflds ; $f++)
{
$fldn=mysql_field_name($rsl , $f);
$fldt=mysql_field_type($rsl , $f);
$fldf=mysql_field_flags($rsl , $f);
echo "
<table width= 630 border=1 align=center bgcolor=#FFFF99>
<tr>
<td width=30 >&nbsp; $f </td>
<td width=150>&nbsp; $fldn</td>
<td width=150>&nbsp; $fldt</td>
<td width=150>&nbsp; $fldf</td>
</tr>
</table>

";
}
}


?>


<?php
titul("Информация о таблицах")
?>

<form name="form1" method="post" action="control.php">
<table widt
h="500" border="2" align="center" cellpadding="0" cellspacing="0" bgcolor="#CCCCCC">
<tr>
<td width="200" align="right">Список таблиц</td>
<td width="300" align="left"><select name="selecttb" class="Menu" id="selecttb">
<?php
@prntablename() ; // в сисок вставляются имена таблиц
?>
</select></td>
</tr>
<tr>
<td width="200">&nbsp;</td>
<td width="300"><input name="Submit" type="submit" class="Small" value="Посмотреть информацию"></td>
</tr>
</table>
</form>
<p>
<?php
titul("Информация о таблице $selecttb") ;
prninfo($selecttb);
?>
</p>


Я не знаю, чем заменять mysql_list_tables .
Если подскажете, то спасибо.
Насчет админа. Да, это так - но я решил , что без набивания руками кода самому я долго буду пхп изучать.

Вот HTML, который получается

<title>Tables</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<link href="../CSS.CSS" rel="stylesheet" type="text/css">
<body>



<em><h3 align = center>
Информация о таблицах
</h3>
</em>
<form name="form1" method="post" action="control.php">
<table widt
h="500" border="2" align="center" cellpadding="0" cellspacing="0" bgcolor="#CCCCCC">
<tr>
<td width="200" align="right">Список таблиц</td>
<td width="300" align="left"><select name="selecttb" class="Menu" id="selecttb">

<option> forum_topic </option>

<option> forum_type </option>

<option> questions </option>

<option> stud </option>
</select></td>
</tr>
<tr>
<td width="200">&nbsp;</td>
<td width="300"><input name="Submit" type="submit" class="Small" value="Посмотреть информацию"></td>
</tr>
</table>
</form>
<p>

<em><h3 align = center>
Информация о таблице forum_type
</h3>
</em>
<table width= 630 border=1 align=center bgcolor=#FFFF99>
<tr>
<td width=30 >&nbsp; 0 </td>
<td width=150>&nbsp; ft_id</td>
<td width=150>&nbsp; int</td>
<td width=150>&nbsp; not_null primary_key auto_increment</td>
</tr>
</table>


<table width= 630 border=1 align=center bgcolor=#FFFF99>
<tr>
<td width=30 >&nbsp; 1 </td>
<td width=150>&nbsp; ft_name</td>
<td width=150>&nbsp; string</td>
<td width=150>&nbsp; not_null</td>
</tr>
</table>


<table width= 630 border=1 align=center bgcolor=#FFFF99>
<tr>
<td width=30 >&nbsp; 2 </td>
<td width=150>&nbsp; ft_desc</td>
<td width=150>&nbsp; string</td>
<td width=150>&nbsp; not_null</td>
</tr>
</table>

</p>
<p>&nbsp; </p>
</body>

-~{}~ 24.05.04 00:12:

Originally posted by Фанат
Несколько замечаний,если будет позволено.
визуализация работы с базой данных если она требует вывода таблиц, означает оную работу админа, а не

1. Касаемо моего кода - согласен полностью --- там действительно много лишней каши.

2. Насчет учиться - посмотрю обязательно по тому адресу , который ты указал.
 

Фанат

oncle terrible
Команда форума
извини, но смысла всей этой каши я не понял.
но если оно делает то, что тебе надо - ради бога, мне не жалко.
 

PNS

Новичок
Originally posted by Фанат
извини, но смысла всей этой каши я не понял.
но если оно делает то, что тебе надо - ради бога, мне не жалко.
Как ты понял, мою кашу я собираюсь нормально доварить. Если получится из более удобоваримое , я выложу.
 

Фанат

oncle terrible
Команда форума
IntenT
Надо-надо
по моему мнению, как раз для этого форум и нужен
не все ж тыкать носом таких, как dok™ в то, что они и сами могут найти.
а вот как раз помощь в освоении, ответы на закономнрные вопросы, рихтовка кода, подсказка более красивых решений - самон оно.

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

PNS

Новичок
Originally posted by IntenT
А может ненадо?
Вполне возможн не надо выкладывать такое количество кода.
Ведь загнешься читать. и разбираться тем паче. А вот краткий совет - даже, иногда намек -- штука полезная.
(С этим примером, кстати. Пока мне в лоб не напомнили что бывает такая вещь ЦИКЛ работа стояла. Я давно привык к микросовтовской системе, где думать почти не надо и от одного клика решается много задач сразу. )
 

Фанат

oncle terrible
Команда форума
для начала тебе надо определиться, что делает твоя программа.
пока я в ней (в частности, в пресловутых селектах) логики не вижу
 

_RVK_

Новичок
>Я не знаю, чем заменять mysql_list_tables .
SHOW TABLES

Пример
PHP:
$sql='SHOW TABLES';
$result=mysql_query($sql);
while ($data=mysql_fetch_array($result))
{
    print $data[0].'<br>';
}
 

PNS

Новичок
Originally posted by Фанат
для начала тебе надо определиться, что делает твоя программа.
пока я в ней (в частности, в пресловутых селектах) логики не вижу
А задача простая - создавать и модифицировать таблицы через веб - я же не могу этого делать в офисе у хостера.

Я тут уже в коде многое поправил и дописал. Но пока еще не все готово.

-~{}~ 25.05.04 10:49:

Originally posted by Diesel
>Я не знаю, чем заменять mysql_list_tables .
SHOW TABLES

Пример
PHP:
$sql='SHOW TABLES';
$result=mysql_query($sql);
while ($data=mysql_fetch_array($result))
{
    print $data[0].'<br>';
}
С
PHP:
;$SQL="SHOW TABLES"
я попробую, а чем все-таки плох mysql_list_tables конкретно,
 

_RVK_

Новичок
PNS тем что в мане русским по белому написано:
"Замечание: Функция устарела и не должна быть использована. Используйте SQL-запрос SHOW TABLES FROM DATABASE вместо неё."

Например, её могут выкинуть из будующих версий PHP и тогда твоя программа не будет работать....
 

PNS

Новичок
Originally posted by Diesel
>Я не знаю, чем заменять mysql_list_tables .
SHOW TABLES

Пример
PHP:
$sql='SHOW TABLES';
$result=mysql_query($sql);
while ($data=mysql_fetch_array($result))
{
    print $data[0].'<br>';
}
==========
Странно, у меня сработало только так:
PHP:
$sq="SHOW TABLES";
@$listtabs= mysql( "vzms" , $sq);
Вариант
$sq="SHOW TABLES";
$listtabs= mysql_query( $sq);
не выводти список.
 
Сверху