Вопрос такого плана: Имеются две таблицы, основная и таблица с типами. В основной имеются id типов, а в таблицами с типами имеются id и имена типов. Как вывести типы в виде списка так, чтобы при заполнении формы на сайте, выбрав тип из списка, он сохранился в основную таблицу mysql.
Заранее извиняюсь, если такие темы были. Совсем недавно занялся php и sql, буду рад любой помощи!
Спустя 5 минут, 11 секунд (6.10.2011 - 13:12) TranceIT написал(а):
Данную проблему можно решить телепатически, но временные затраты очень большие.
Покажите как вы пытались решить проблему.
Покажите как вы пытались решить проблему.
Спустя 18 минут, 59 секунд (6.10.2011 - 13:31) EatTheGuN написал(а):
В принципе ожидаемая реакция, прошу быть снисходительным.
<?
// Страница регситрации нового пользователя
# Соединямся с БД
mysql_connect("localhost", "root", "123456");
mysql_select_db("sql_jz_db");
if(isset($_POST['submit']))
{
$err = array();
# Если нет ошибок, то добавляем в БД нового пользователя
if(count($err) == 0)
{
$fio = $_POST['fio'];
mysql_query("INSERT INTO test SET fio='".$fio."'");
}
else
{
print "<b>При регистрации произошли следующие ошибки:</b><br>";
foreach($err AS $error)
{
print $error."<br>";
}
}
}
?>
<center><h3>Заполните заявку:</h3>
<br>
<center><form method="POST">
<table>
<tr>
<td>ФИО:
</td>
<td><input id="inpt1" name="fio" type="text">
</td>
</tr>
<tr>
<th>Тип</th>
<td>
<select name="idtype">
<option value="" selected>Выберите</option>
<?
$info=($_POST && $errors)?Format::input($_POST):array();
$services= mysql_query('SELECT * FROM '.TYPES.' WHERE isactive=1 ORDER BY type');
if($services && mysql_num_rows($services)) {
while (list($$id_type,$type) = mysql_fetch_row($services)){
$selected = ($info['idtype']==$id_type)?'selected':''; ?>
<option value="<?=$idtype?>"<?=$selected?>><?=$type?></option>
<?
}
}else{?>
<option value="0">Все вопросы</option>
<?}?>
</select>
</td>
</tr>
<td>
</td>
<td><br></br><input name="submit" type="submit" class="button" value="Добавить">
</td>
</tr>
</form>
</table>
Спустя 13 минут, 3 секунды (6.10.2011 - 13:44) TranceIT написал(а):
# Соединямся с БД
$link = mysql_connect("localhost", "root", "123456");
mysql_select_db("sql_jz_db", $link);
<option value="<?=$idtype?>"<?=$selected?>><?=$type?></option>
Дескрипторам php присваиваете переменные...
Спустя 41 минута, 13 секунд (6.10.2011 - 14:25) EatTheGuN написал(а):
А можно для особо понятливых как то подробней объяснить!?
Спустя 2 минуты, 9 секунд (6.10.2011 - 14:27) TranceIT написал(а):
Давайте попробуем разобраться вместе.
Переведите на русский язык вот этот кусочек:
Переведите на русский язык вот этот кусочек:
value="<?=$idtype?>"
Спустя 1 час, 56 минут, 54 секунды (6.10.2011 - 16:24) EatTheGuN написал(а):
value это значение, idtype это как раз переменная.
Эти строки я брал из похожего на мою ситуацию примера...Так что до конца не совсем понимаю что к чему.
$selected = ($info['idtype']==$id_type)?'selected':''; ?>
<option value="<?=$idtype?>"<?=$selected?>><?=$type?></option>
Эти строки я брал из похожего на мою ситуацию примера...Так что до конца не совсем понимаю что к чему.
Спустя 35 минут, 54 секунды (6.10.2011 - 17:00) TranceIT написал(а):
<?=$idtype?>
<? - открывающий PHP дескриптор
= - операция присвоения
$idtype - переменная
Теперь переводим на русский язык:
Присвоить открывающему дескриптору данные из переменной idtype.
Если вы не видите здесь простой ошибки, то вы не знаете синтаксис, а это основы основ.
Спустя 18 часов, 16 минут, 24 секунды (7.10.2011 - 11:16) EatTheGuN написал(а):
Я сразу сказал что я не гуру...начал вникать совсем недавно, поэтому и основы основ могу не знать!
я так понимаю что должно быть что то подобное
я так понимаю что должно быть что то подобное
$idtype = $_POST ['idtype'];?
Спустя 21 минута, 36 секунд (7.10.2011 - 11:38) XCross написал(а):
<?
$info=($_POST && $errors)?Format::input($_POST):array();
$services= mysql_query('SELECT * FROM '.TYPES.' WHERE isactive=1 ORDER BY type');
if($services && mysql_num_rows($services)) {
while (list($$id_type,$type) = mysql_fetch_row($services)){
$selected = ($info['idtype']==$id_type)?'selected':''; ?>
<option value="<?=$idtype?>"<?=$selected?>><?=$type?></option>
<?
}
}else{?>
<option value="0">Все вопросы</option>
<?}?>
Используй буферизацию, так удобней будет. Избавляйся от short - тегов(<? ?>, <= >).
foreach($err AS $error)
{
print $error."<br>";
}
Удобней использовать implode.
mysql_query("INSERT INTO `test` SET `fio` = '".mysql_real_escape_string($fio)."'");
mysql_query("SELECT * FROM `".TYPES."` WHERE `isactive` = 1 ORDER BY `type`");
Цитата |
Присвоить открывающему дескриптору данные из переменной idtype. Бла-бла-бла.... |
<?=$idtype?>это короткая запись
<?php echo $idtype; ?>