Forum Webscript.Ru

Программирование => PHP => Тема начата: zumer от 12 Декабря 2003, 18:43:56

Название: Поиск по базе
Отправлено: zumer от 12 Декабря 2003, 18:43:56
Ситуация такова: проводится поиск на наличие телефонного номера в базе, проблема в том, что выводится неправильное их количество.
За помощь заранее благодарен.
//в чем ошибка!
$query="select * from telephone where ".$telephone." like \'%".$tel."%\'";
   $result = mysql_query($query);
  $num_result=mysql_num_rows($result);
 echo "number of tel found ".$num_result." ";
Название: Поиск по базе
Отправлено: Меняздесьдавнонет от 12 Декабря 2003, 19:01:18
во-первых, ставить вопрос, как его ставишь ты - некорректно.
НУ ОТКУДА мы тебе родим твою ошибку, если не видим ни запроса
ни того, что ты ищешь
ни того, что находишь
ась?
ты форум с гадательным салоном не перепутал? Млжет, тебе к ясновидящей надо?

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

зачем ты имя поля задаешь переменной? У тебя что - телефон больше, чем в одном поле хранится?
Название: Поиск по базе
Отправлено: zumer от 12 Декабря 2003, 19:57:18
RomikChef
У меня скрипт поиска тел. в базе, я не могу его написать,
потому, что не знаю как делать поиск по полям базы.
Название: Поиск по базе
Отправлено: ThE0ReTiC от 12 Декабря 2003, 20:14:23
http://ln.com.ua/~openxs/articles/smart-questions-ru.html
Название: Поиск по базе
Отправлено: zumer от 12 Декабря 2003, 20:30:06
ThE0ReTiC
Мне нужно написать скрипт вывода значения поля (последнего в столбце), помоги с мануалом.
Название: Поиск по базе
Отправлено: zumer от 12 Декабря 2003, 20:46:06
Как объяснить ситуацию поконкретней? Попробуем...
Мне нужен скрипт ИДЕНТИЧНЫЙ скрипту alex smith c форума
"Базы данных", тема "поиск по базе данных на php".
Название: Поиск по базе
Отправлено: ThE0ReTiC от 13 Декабря 2003, 00:27:36
zumer
ну так и попроси у нее
я тебя могу тока на http://www.php.net направить
Название: Поиск по базе
Отправлено: Меняздесьдавнонет от 13 Декабря 2003, 10:26:32
$query="select count(*) from telephone where ПОЛЕ=\'$tel\'";
$result = mysql_query($query);
$row=mysql_fetch_row($result);
$count=$row[0];

вместо слова ПОЛЕ напиши имя поля, в котором лежит телефон. ты писал, что оно у тебя последнее.
Запрос сделан на точное соответствие.
Если тебе надо не номер целиком, а некоторые цифры, то запрос будет выглядеть так, как ты напи сал, только вместо переменной $telephone напиши по-человечески имя поля.
если тебя не устраивает результат, то ВЫВЕДИ! ВСЕ! НАЙДЕННЫЕ! ТЕЛЕФОНЫ! И! ЕСЛИ! САМ! НЕ ПОЙМЕШЬ! ЗАКОНОМЕРНОСТЬ! ТО! ПРИХОДИ! СЮДА! СПРАШИВАТЬ!
Название: Поиск по базе
Отправлено: zumer от 13 Декабря 2003, 17:13:34
RomikChef
Спасибо за помощь, только у меня осталась одна проблемка, как правильно вывести послений телефон в окне браузера. У меня есть один пример который я посмотрел в книжке демонстрирую...

$query="select count(*) from last where zp=\'$tel\'";
$result = mysql_query($query);  $row=mysql_fetch_row($result);
$count=$row[0];
?>
zp?
echo "end";
//Поле "zp"
Но что-то не работает
Название: Поиск по базе
Отправлено: Меняздесьдавнонет от 14 Декабря 2003, 16:13:05
Не завидую я тебе, родной.
У тебя номер телефона в переменной $tel
вот ее и надо выводить.
может быть, ты, все-таки, будешь выводить то, что тебе надо, а не то, что выводят в книжке, а?
А еще лучше - занялся бы ты чем-нибудь другим...
Название: Поиск по базе
Отправлено: zumer от 17 Декабря 2003, 19:22:13
Возможно я неправильно объяснил сложившуюся ситуацию со скриптом,начну сначала. Существует БД "last" в ней есть такой столбик как "zp", и мне нужно вывести значение последнего поля этого столбика. Как вывести все поля столбца я знаю (могу привести пример), НО КАК ЗНАЧЕНИЕ ПОСЛЕДНЕГО ПОЛЯ НЕТ!
И поэтому буду очень благодарен если кто-то поможет мне в этом.

 $query="select * from last ";
 $result = mysql_query($query);
while ($row = mysql_fetch_array ($result))
{echo "запись : ".$row[zp]."
\\n";}
Название: Поиск по базе
Отправлено: Меняздесьдавнонет от 17 Декабря 2003, 19:26:51
вся проблема от того, что ты не понимаешь теории.
во-первых, никогда не спрашивай, "как  вывести?"
да так же, как любуые другие данные.
Надо спрашиват "как запросить?"
Каким запросом получить из базы.

второе.
Вынужден тебя огорчить.
База не записывает сама, какое сообщение ты клал первым, а какое  - последним.
Ты должен сам позаботиться об этом.
У тебя есть поле, по которому можно отличить последнюю запись?
Название: Поиск по базе
Отправлено: Croaker от 17 Декабря 2003, 19:28:25
Цитировать
zumer:
Как вывести все поля столбца я знаю (могу привести пример)


приведи, пожалуйста.
Название: Поиск по базе
Отправлено: zumer от 17 Декабря 2003, 19:36:04
Croaker
$query="select * from last ";
$result = mysql_query($query);
while ($row = mysql_fetch_array ($result))
{echo "запись : ".$row[zp]."
\\n";}
Вот он родной пример вывода всех полей столбца "zp" таблици last
Название: Поиск по базе
Отправлено: zumer от 17 Декабря 2003, 19:44:35
RomikChef
В таблице last я кроме-того вставил еще один столбец ID типа int
со свойствами (NULL и auto_increment), тоисть после записи в новое поле столбца zp произойдет увеличение значения на 1 в новом поле ID, таким образом мы можем определить по величине ID , какая  запись была последней.
Название: Поиск по базе
Отправлено: Croaker от 17 Декабря 2003, 20:01:57
zumer
Че-то у меня такое чувство, что твой пример не заработает.
Если ты хочешь вывести элемент массива $row с индексом zp - пиши индекс в кавычках. Это раз.

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

Запонми. Нет такого понятия  - столбик. Есть понятие запись, и есть понятие - поле.

в такой таблице (table):

id  | name  | age
1  | Вася   | 21
2  | Петя   | 25
3  | Маша   | 17

Поле - это либо id, либо name, либо age, а запись - это

3  | Маша   | 17

Судя по твоей формулировке тебе нужно вывести последнее поле (age) последней записи (про Машу).

Чтобы вывести последнюю запись - используй LIMIT, ORDER by и DESC в своем SQL запросе.

Чтобы вырать последнее поле (на примере моей таблица - age), выбирай только это поле в SQL запросе (т.е. не SELECT *, а SELECT age), либо обращайся только к индексу массива с названием нужного поля ($row[\'age\']).

Запрос, чтобы плучить из таблицы "17",  должен быть такой - "SELECT age FROM table ORDER BY id DESC LIMIT 1"

Сможешь на этом примере разобраться?
Название: Поиск по базе
Отправлено: zumer от 18 Декабря 2003, 22:37:44
Croaker
1)Спасибо за пример, но возникла небольшая проблемка с выводом содержимого последней записи поля "zp", а в частности с использованием "echo ;"
Я пытался так выводить запись:
...
$query="SELECT zp FROM table last BY ID DESC LIMIT 1";
$result = mysql_query($query);  
echo "$row->zp";  
...
но тут-то было.

2)Существуют и другие примеры вывода последней записи поля, привожу пример,
он конечно действует, но он туповат.
...
$query="SELECT zp FROM last";
$result = mysql_query($query);
$title1 = mysql_result($result, 0);
$title1 = mysql_result($result, 1);
$title2 = mysql_result($result, 2);
echo "$title2";

Содержимое таблици:
ID  zp
 1   one   
 2   two   
 3   three

3)Возожно и такой метод действовал бы, но опять возникла ишибка с самим выводом.
...
select count(*) as zp from last;
$result = mysql_query($query);  
echo $row->total;
 
Помогите с выводом записи с помощью "echo"
Название: Поиск по базе
Отправлено: Меняздесьдавнонет от 18 Декабря 2003, 23:05:42
zumer
скажи, ты правда-правда не понимаешь ни строчки из тех примеров, которые приводишь?
что откда берется и что делает?

это ужасно...
Название: Поиск по базе
Отправлено: zumer от 19 Декабря 2003, 19:26:49
RomikChef
Цитировать
ни строчки из тех примеров

Некоторые строчки я понимаю это касается примеров 2 и 1, со
вторым я разобрался, я нашел его в мануале, а что в первом сложного этого я  понять не могу.
Название: Поиск по базе
Отправлено: Меняздесьдавнонет от 19 Декабря 2003, 20:32:15
ну вот, например, что делает вот эта строчка
$row = mysql_fetch_array ($result) ?
она тебе нужна саейчас, а ты ее не используешь


ты пишешь
$result = mysql_query($query);
echo "$row->zp";

то есть ты НИ КАПЛИ не соображаешь ,что делает функция mysql_query
потому, что в другом случае, чтобы получить данные из строки, ты делаешь еще какие-то операции КРОМЕ ЭТОЙ, а здесь почему-то думаешь, что хватит только ее.

В общем, хватит воду мутить.
идешь в документацию.
и смотришь, что делает каждая из этих функций
mysql_query
mysql_fetch_array
и самое главное - ЧТО ОНИ ВОЗВРАЩАЮТ!

документация в моей подписи.
Название: Поиск по базе
Отправлено: zumer от 24 Декабря 2003, 22:28:36
RomikChef
Возникла проблема с выводом русских слов из БД, выводятся "козяблики",буду рад за помощь
Название: Поиск по базе
Отправлено: Меняздесьдавнонет от 25 Декабря 2003, 00:31:08
что в базу записал - то и выводится.
проверяй, что заносишь и учи html как в нем кодировку указывать