Xwab
Форумыnavigate_nextПрограммирование на PHP

Помогите дописать...
Сообщения
sadesto

В общем... Начал писать скрипт вывода городов и поселков для анкеты.
Добавление Города и Поселка сделал, Вывод списка городов и поселков тоже. Теперь нужно сделать кусок страницы на котором будет добавление города и поселка юзера в базу данных.
---

    default :
         echo '<div class="1"><b>Города</b></div>';
      if ($id)
      {
            /////////////////////////
            // Управление районами //
            /////////////////////////
            $req = mysql_query("SELECT `text` FROM `gorod` WHERE `id` = '$id' AND `type` = 'g' LIMIT 1");
            $res = mysql_fetch_assoc($req);
            echo '<div class="bmenu">Районы в ' . $res['text'] . '</div>';
            $req = mysql_query("SELECT * FROM `gorod` WHERE `refid` = '$id' AND `type` = 'r' ORDER BY `realid` ASC");
            if (mysql_num_rows($req)) {
                while ($res = mysql_fetch_assoc($req)) {
                    echo is_integer($i / 2) ? '<div class="list1">' : '<div class="list2">';
                    echo '<a href=""><b>' . $res['text'] . '</b></a>'; // тут должна быть ссылка на страницу записи в базу
                    echo '</div>';
                    ++$i;
                }
            }
            else {
                echo '<div class="1"><p>Список районов пуст</p></div>';
            }
        }
        else {
            echo '<div class="1">Список городов</div>';
            $req = mysql_query("SELECT * FROM `gorod` WHERE `type` = 'g' ORDER BY `realid` ASC");
            while ($res = mysql_fetch_assoc($req)) {
                echo ($i % 2) ? '<div class="12">' : '<div class="11">';
                echo '<a href="gorod.php?&amp;id=' . $res['id'] . '"><b>' . $res['text'] . '</b></a> ';
                echo '(' . mysql_result(mysql_query("SELECT COUNT(*) FROM `gorod` WHERE `type` = 'r' AND `refid` = '" . $res['id'] . "'"), 0) . ')';
                echo '</div>';
                ++$i;
            }
        }
        break;
}

---
http://n-wap.ru/login.php?id=3&p=test - тест логин
http://n-wap.ru/str/gorod.php - то что получилось сделать (Выберите Любой город, Будет список поселков), Нужно при нажатии на поселок Попасть на страницу
Вы живете в: "Город", "Поселок" ?
(Подтвердить)|(Назад)
----
в голове что то типа:

$city1 = mysql_query("SELECT `text` FROM `gorod` WHERE `id` = '$id' AND `type` = 'g' LIMIT 1");
$city = mysql_fetch_assoc($city1);
$rayon1 = mysql_query("SELECT * FROM `gorod` WHERE `refid` = '$id' AND `type` = 'r' ORDER BY `realid` ASC");
$rayon = mysql_fetch_assoc($rayon1);

if (isset($_POST['submit']))
{
$mysql = mysql_query("UPDATE `users` SET live='$city['text'], $rayon['text']' WHERE id='$id'");
}
echo '<div class="1"><a href="">'.'$city['text'].'</a> >> '.$rayon['text'].'</div>';
echo '<div class="2">';
if ($mysql && isset($_POST['submit']))
echo 'Вы Удачно сменили место проживания!<br />';
echo '<b>Вы подтверждаете?</b><br />Что вы проживаете в<br />Городе: '.$city['name'].'<br />Районе: '.$rayon['name'].'';
echo '<form method="POST"><input type="submit" value="Подтверждаю" name="submit" /></form>';
echo '</div>';



кто поможет доделать?

04 Ноя 2011, 12:49
mix

твой код не читал, но запрос для ввода данных в БД можно составить следующим способом: mysql_query("INSERT INTO `users` SET `login` = '$login', ..., `gorod` = '$gorod'"); думаю суть ясна

04 Ноя 2011, 16:06
sadesto

mix, это я как раз знаю))) вопрос такой по сути:
if ($id)
{
выводим поселок
}
else
{
выводим город
}
/gorod.php - города
/gorod.php?&id=$id - поселки... еще один кусок как сюда прикрутить? =)

04 Ноя 2011, 17:06
mix

sadesto, какой кусок, ты о чем?

04 Ноя 2011, 17:20
sadesto

mix, ну смотри:
сперва идет вывод городов, выбрали город идет вывод поселка...

теперь нужно чтобы при выбранном поселке можно было сохранить город и поселок. вот в самой странице как это оформить?

04 Ноя 2011, 18:05
aBSuRD

sadesto, как вариант:
Таблица городов, поселков (gorod):
id | gorod | name
gorod - id города в котором расположен поселок, если 0-то это город
name - название города/поселка
Далее gorod.php:

if(isset($_GET['id'])) {
$id=intval($_GET['id']);
if(!$gorod=mysql_fetch_assoc(mysql_query('SELECT `name`, `gorod` FROM `gorod` WHERE `id`='.$id))):
//Города/поселка не существует
elseif($gorod['gorod']!=0):
//Это поселок..
$city=mysql_result(mysql_query('SELECT `name` FROM `gorod` WHERE `id`='.$gorod['gorod']),0);
if(isset($_POST['submit'])) {
//Тут заносим данные в БД
mysql_query('UPDATE `users` SET `gorod`="'.mysql_real_escape_string($city).'" AND `poselok`="'.mysql_real_escape_string($gorod['name']).'" WHERE `id`='.$user);
} else {
echo '<form action="gorod.php?id='.$id.'" method="post">
<div>
Вы живете в
Городе: ',htmlspecialchars($city),'<br />
Поселке: ',htmlspecialchars($gorod['name']),'<br />
<input type="submit" name="submit" value="Да"/>
</div>
</form>';
}
else:
echo 'Город: ',htmlspecialchars($gorod['name']),'<br />
Выберите поселок: ';
$query=mysql_query('SELECT `id`, `name` FROM `gorod` WHERE `gorod`='.$id);
while($res=mysql_fetch_assoc($query)) {
echo '<br /><a href="gorod.php?id=',$res['id'],'">',htmlspecialchars($res['name']),'</a>';
}
endif;
} else {
//Выводим список городов
echo 'Выберите город:';
$query=mysql_query('SELECT `id`, `name` FROM `gorod` WHERE `gorod`=0');
while($res=mysql_fetch_assoc($query)) {
echo '<br /><a href="gorod.php?id=',$res['id'],'">',htmlspecialchars($res['name']),'</a>';
}


__________
посл.ред. 04 Ноя 2011, 19:21; всего 1 раз 04 Ноя 2011, 18:27
mix

sadesto, используй form select

04 Ноя 2011, 19:16
sadesto

aBSuRD, спасибо)))
если мой вариант щас не заработает, то использую твой пример
добавлено спустя 1 минуту:
mix, спасибо))) до меня наконец дошло что я забывал сделать

04 Ноя 2011, 19:20
mix

sadesto, что забыл? мне тож интересно

04 Ноя 2011, 19:37
sadesto

mix, забыл то, за что меня сожгут на костре... по сути темы:
мне надо было сделать еще одну страничку, на которой бы выводились полученные ранее данные.
Города в моем случае хранились вместе с поселками, и различались по типу данных type = r и g.
вот кстати таблица сама

CREATE TABLE 'gorod' (
  'id' int(11) NOT NULL auto_increment,
  'refid' int(11) NOT NULL default '0',
  'type' char(1) NOT NULL default '',
  'user_id' int(11) NOT NULL,
  'realid' int(3) NOT NULL default '0',
  'text' text NOT NULL,
  PRIMARY KEY  ('id'),
  KEY 'refid' ('refid'),
  KEY 'type' ('type'),
  KEY 'user_id' ('user_id')
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

и короче в поселках refid = город в котором находится поселок.
добавлено спустя 2 минуты:
а еще я понял что слишком накрутил все, когда когда создавал форму добавления городов и поселков... и что проще было бы разбить все на 2 таблицы: Города + Районы

04 Ноя 2011, 19:50
Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.