• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите доделать код

  • Автор темы Автор темы Ragnos
  • Дата начала Дата начала

Ragnos

Новые
Регистрация
23 Дек 2011
Сообщения
23
Реакции
0
Баллы
0
Помогите доделать код

Здравствуйте, помогите пожалуйста доделать код php.
В mysql есть База, в ней три таблицы (москва, питер, воронеж). В форме есть выпадающий список этих городов, немогу понять как сделать код чтобы при выборе из списка какого нибуть города, php начал искать фамилию или имя в таблице этого города.

Попробовал с помощью условий if (впринципе с помощью него и хочу) но совсем запутался.


PHP:
<?php

$db=mysql_connect("localhost", "root", "");
mysql_select_db("Magazin",$db);

$search = $_POST['search'];
$select = "menu1";
$moscow = "Москва";
 
$result = mysql_query($query); 

 
if ($select == $moscow);
{
$query = mysql_query("SELECT * FROM lica WHERE name like '%$search%' OR lastname like '%$search%' OR dol like '%$search%'");
}


if (!$result){
	echo "Ошибка при запросе";
	exit(mysql_error());
}

 
$n = mysql_num_rows($result);
 
for($i = 0; $i < $n; $i++){
	$myarray[] = mysql_fetch_array($result);
}
 
foreach($myarray as $value){
	echo $value['dol'].'<br/>';
	echo $value['lastname'].'<br/>';
	echo $value['name'].'<hr/>';
}
 mysql_free_result($result)


?>
 
Ну неужели никто не поможет?
 
Я же говорил, что смогу помочь только с сегодняшнего дня..
HTML:
<html>
<head>
</head>
<body>
    <form method="GET" action="sp.php">
    <select name="city">
    <option>Москва</option>
    <option>Петербург</option>
    </select>
    <input type="text" size="25" name="surename" />
    <input type="submit" value="send"/>
    </form>
</body>
</html>
PHP:
<?php
$city=$_GET['city'];
$surename=$_GET['surename'];
$mysql = mysql_connect("localhost","root","123456") or die("Не вохможно подключиться к БД");
$bd = mysql_select_db("sp") or die("не возможно выбрать таблицу");
mysql_set_charset("utf8");
$query = "SELECT * FROM $city WHERE `surename` = '$surename'";
$result = mysql_query($query);
if (mysql_num_rows($result) > 0){
echo "Город -> " . $city . "<br />";
echo "Фамилия -> " . $surename . "<br />";
for ($i=0; $i < mysql_num_rows($result); $i++){
    $out = mysql_fetch_assoc($result);
    echo "Имя -> " . $out['name'] . "<br/>";
}
}
else{
    echo "Нету записей по вашему запросу";
}
 
Что то опять не так, когда выбираю город и ввожу фамилию из таблицы пишет что "Нету записей по вашему запросу", причём не важно какой город выберу всегда пишет что нету записей. Я так подозреваю что это из-за того что не указана таблица в коде, как считаете?
 
какие у вас таблицы?(названия) и как вы меняли файл .html ?
Я так подозреваю что это из-за того что не указана таблица в коде, как считаете?
выбор таблицы происходит в запросе. когда на сервер отправляете форму

то и select значение передается в$city и потом подставляется в SELECT * FROM $city WH...
соответственно запрос будет таким:
если выбрана москва
SELECT * FROM `москва` WH...

возможно попробуйте исправить запрос: возьмите в одинарные кавычки
$city
 
Последнее редактирование:
БД sp как и у вас, таблица называется spravochnik

кавычки не помогли, выбираю Москву ввожу фамилию (причём ту которая есть в таблице) пишет что нету таких
 
ну конечно у вас не будет работать. вы ведь сказали, что каждый город в своей таблице!
вот и создавайте в бд sp таблицы - Москва, Петербург и т.д. и уже туда помещайте поля с названиями к примеру surename и name . А таблицу spravochnik можете удалить.
 
Последнее редактирование:
Блин, опять не работает, удалил таблицу spravochnic, создал таблицу Москва в ней три поля id surename и name, добавил имя для проверки, в форме выбираю москву набираю фамилию и опять пишет ничего не найдено
 
сделайте экспорт sql кода и приведите его сдесь...
 
Код тот же что вы мне давали только с заменой слова spravochnik на Москву
 
вот ваш проект.
удалите из бд все таблице и импортируйте вложеный sp.sql
дальше запускаете index.html
вот у меня что получилось
Город Москва
фамилия Гаврилов

вывод сделал таким:
Запись № 1
Город -> Москва
Фамилия -> Гаврилов
Имя -> Алексей

Запись № 2
Город -> Москва
Фамилия -> Гаврилов
Имя -> Сергей
 

Вложения

  • sp.zip
    sp.zip
    1.9 KB · Просмотры: 10
Опять не помогло, не выводятся данные хоть стреляйся.

Сделал как сказали, только случайно удалил вcю БД sp, потом создал заново и в неё импортировал sql ваш. В php были неполадки с шрифтом выводились иерооглифы, исправил путём добавления windows-1251
 
нет. все должно быть в utf-8 в праузере тоже выствьте utf-8
а так даже не знаю что у вас не так(. Тем более если у вас все таки какие-то первоначальные варианты были правильными...
 
Ладно, буду разбираться дальше, спасибо что помогали, если что обращусь ещё
 
Назад
Сверху