[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: поиск в БД и вывод
Lola_56
Такая проблема. Нужно найти в таблице БД номер счета клиента и вывести данные этого клиента на страницу.
user posted image
вводим номер счета на странице. В phpMyAdmin есть таблица вида:
user posted image
и на страницу нужно вывести данные из БД в виде:
user posted image

помогите пожалуйста. wub.gif



Спустя 14 минут, 6 секунд (12.05.2010 - 23:01) Lola_56 написал(а):
ну неужели ни кто??? ohmy.gif скрипт не сложный - знаю, просто не могу разобраться, он мне НИЧЕГО не выводит(((((

Спустя 3 минуты, 27 секунд (12.05.2010 - 23:05) Jaska написал(а):
пост удалил) невнимательно прочел задачу)

Спустя 8 секунд (12.05.2010 - 23:05) Семён написал(а):
<form action="" method="post">
<input
type="text" name="Nsc" />
<input
type="submit">
</form>


<?php
$con = mysql_connect("адрес_сервера","логин","пароль");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("база_данных", $con);

$result = mysql_query("SELECT * FROM Имя_таблицы Where Nsc=".intval($_POST['Nsc']));

while($row = mysql_fetch_array($result))
{
echo 'ФИО ' . $row['fio'] . '<br>';
echo 'Номер лицевого счёта ' . $row['Nsc'] . '<br>';
echo 'Адрес ' . $row['adr'] . '<br>';
echo 'Номер организации ' . $row['Kodorg'] . '<br>';
}

mysql_close($con);
?>

Спустя 5 минут, 30 секунд (12.05.2010 - 23:11) Jaska написал(а):
Встречный вопрос. Добавление LIMIT 1 ускорит выборку?
И еще, поле id излишне по-моему.

А что если вместо intval использовать просто явное указание типа (int)? Так же еще мне кажется можно сократить набор полей для выборки. id и Nsc нам не нужно

Спустя 6 минут, 35 секунд (12.05.2010 - 23:17) Семён написал(а):
Я так привык, у intval (есть ещё доп. параметр)
Холивар echo vs print.

Спустя 3 минуты, 27 секунд (12.05.2010 - 23:21) Jaska написал(а):
Хм) ну я понял что вы так привыкли huh.gif я с точки зрения оптимизации, не этого кода а вообще в целом. имеет ли смысл?

Спустя 1 минута, 54 секунды (12.05.2010 - 23:22) Семён написал(а):
Цитата (Jaska @ 13.05.2010 - 00:21)
Хм) ну я понял что вы так привыкли huh.gif я с точки зрения оптимизации, не этого кода а вообще в целом. имеет ли смысл?

Холивар echo vs print, принципиальной разницы нет. У intval просто доп. возможности, а так разницы нет. хочешь так хочешь так.
---
Ещё прикрутить шаблонизатор с кешем. + мемкеш, оптимизация ёпта smile.gif

Спустя 5 минут, 45 секунд (12.05.2010 - 23:28) Jaska написал(а):
biggrin.gif диплом бы тогда отличный получился)

а что касаемо базы данных?

Спустя 2 минуты, 7 секунд (12.05.2010 - 23:30) Lola_56 написал(а):
mysql_fetch_array(): supplied argument is not a valid MySQL result resource
вот что он мне теперь выдает blink.gif

ругается на строчку while($row = mysql_fetch_array($result))

Спустя 2 минуты, 28 секунд (12.05.2010 - 23:33) Jaska написал(а):
Надеюсь вместо Имя_таблицы было нормальное название таблицы. Для пущей уверенности замените на

$result = mysql_query("SELECT * FROM Имя_таблицы WHERE `Nsc`= '".intval($_POST['Nsc']."'"));

Спустя 3 минуты, 4 секунды (12.05.2010 - 23:36) Lola_56 написал(а):
biggrin.gif ну уж в этом можешь не сомневаться. весь скрипт:

if(isset($_POST['btn']))
{
$result = mysql_query("SELECT * FROM `fizlic` Where Nsc=".intval($_POST['Nsc']));

while($row = mysql_fetch_array($result))

$content.='<b>ФИО '.ucfirst($row['fio']).'<br> Номер счета '.ucfirst($row['Nsc']).'<br>Адрес '.ucfirst($row['adr']).'<br>Код организации '.ucfirst($row['Kodorg']).'</b><br /><br />';

}

Спустя 2 минуты, 28 секунд (12.05.2010 - 23:38) Jaska написал(а):
А теперь еще раз посмотри на свой код.
$_POST['btn'] и Where Nsc=".intval($_POST['Nsc']));

чувствуешь разницу?)

Спустя 1 минута, 23 секунды (12.05.2010 - 23:40) Lola_56 написал(а):
честно? нет unsure.gif

Спустя 2 минуты, 5 секунд (12.05.2010 - 23:42) Lola_56 написал(а):
я поняла, что проблема тут... но вот вопрос, если я делаю без $_POST['btn'], то у меня переходит на пустую страницу и не отображает НИЧЕГО

Спустя 50 секунд (12.05.2010 - 23:43) Jaska написал(а):
Хорошо, объясняю. Зачем проверять $_POST['btn'] если не используется в коде, но раз проверка проходит то наверное $_POST['Nsc'] тогда не существует, поэтому имеет смысл заменить $_POST['Nsc'] на $_POST['btn']

без обид, просто от себя. Если это дипломный проект думаю стоит разобраться хотя бы что делает строчка if(isset($_POST['btn']))

Спустя 5 минут, 12 секунд (12.05.2010 - 23:48) Lola_56 написал(а):
ну что делает эта функция я знаю, просто я в пхп не сильна если честно, а так сложилось, что нужно делать именно в нем. Я год его не касалась и уже напрочь забыла. Был бы это просто сайт - уже бы готов был, а тут блин столько заковырок sad.gif

Спустя 3 минуты, 33 секунды (12.05.2010 - 23:51) Lola_56 написал(а):
ну как бы там ни было, скрипт серно не рабит sad.gif

Спустя 1 минута, 13 секунд (12.05.2010 - 23:53) Jaska написал(а):
какая ошибка?

Спустя 2 минуты (12.05.2010 - 23:55) Lola_56 написал(а):
я так поняла у меня на while зацикливается что ли.....
просто если закоментить, то при нажатии на кнопку хотя бы выводит
ФИО
Номер счета
Адрес
Код организации
ну в смысле только слова sad.gif

Спустя 33 секунды (12.05.2010 - 23:55) Lola_56 написал(а):
а ошибку никакую не выводит вообше, просто переход на новую страницу с каркасом но ничего не пишет...

Спустя 1 час, 31 минута, 52 секунды (13.05.2010 - 01:27) Bezdna написал(а):
А что за функция ucfirst()?

Может так:




if(isset($_POST['btn']))
{
$result = mysql_query("SELECT * FROM `fizlic` Where `Nsc`='".intval($_POST['Nsc']."'"));

$content = "";

while($row = mysql_fetch_array($result))

$content.="<b>ФИО ".$row['fio']."<br />
Номер счета "
.$row['Nsc']."<br />
Адрес "
.$row['adr']."<br />
Код организации "
.$row['Kodorg']."</b>
<br /><br />"
;

}

echo $content;

Спустя 17 минут, 9 секунд (13.05.2010 - 01:44) Jaska написал(а):
То что ты сделал не поможет. Внимательнее смотри код: $_POST['btn'] и $_POST['Nsc'].

Как выяснилось позже форма имела вид

<form  method="post" action="test.php"> 
<label>
Введите номер лицевого счета</label>
<input
type="text" name="Nsc">
<input
type="submit" name="btn" value="OK" >
</form>

Спустя 11 минут, 5 секунд (13.05.2010 - 01:55) Lola_56 написал(а):
if (isset($_POST['Nsc'])) {
$result = mysql_query("SELECT * FROM `fizlic` WHERE `Nsc`='".intval($_POST['Nsc'])."' LIMIT 1") or die("Невозможно выполнить запрос: " . mysql_error());
if (mysql_num_rows($result) == 1) {
$row = mysql_fetch_array($result);
echo 'ФИО ' . $row['fio'] . '<br>';
echo 'Номер лицевого счёта ' . $row['Nsc'] . '<br>';
echo 'Адрес ' . $row['adr'] . '<br>';
echo 'Номер организации ' . $row['Kodorg'] . '<br>';
}

}
}

вот он рабочий код smile.gif


Спустя 23 минуты, 56 секунд (13.05.2010 - 02:19) Jaska написал(а):
Невероятными совместными усилиями мы его создали с Lola_56 cool.gif

Спустя 8 часов, 58 минут, 21 секунда (13.05.2010 - 11:18) Lola_56 написал(а):
спасибо!!! Вроде так пустяшно на вид - а сколько мучений wacko.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.