Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
8 / 8 / 1
Регистрация: 22.02.2012
Сообщений: 168
1

Поиск элемента в бд

24.09.2013, 03:14. Показов 2145. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброй ночи! Совсем запуталась в бд. Суть такая: в поле ввожу фамилию. Нажимаю найти. Если в базе с фамилиями такая есть, то вывести все данные по этому товарищу, если такого нет, то вывести клиент не найден. Вот код,который я пытаюсь написать. Вопросы возникают на месте !!!!!!!!!!!!!!!!!!
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
 
mysql_connect('localhost', 'root', '2799994') or die('No connect with data base'); 
mysql_query('SET NAMES UTF-8');
mysql_select_db('sh_pr') or die('No data base');
//$client=$_POST['a'];
$query ="SELECT `cl_fam` FROM `laba1` WHERE (`cl_fam`='$client')";
///!!!!!!!!!!! что написать дальше то нужно? Как проверить, нашлась ли такая фамилия в бд?
 
?>
<html> 
<head> 
    <meta charset="cp1251"> 
    <title>Поиск</title> 
</head>
<body> 
<form method="post">
<input type="text" name="a" />
<input type="submit" value="Найти" />
<? php !!!!!!!!!!!!!! и что здесь тогда ?>    // echo какой-ниб переменной со значениями найден товарищ или нет что ли?
</form>     
</body>
</html>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.09.2013, 03:14
Ответы с готовыми решениями:

Вставка элемента в заданную позицию, удаление элемента по заданной позиции, поиск заданного элемента
Добавить в класс &quot;Односвязный список&quot; следующие функции: вставка элемента в заданную позицию,...

Поиск минимального значения элемента и определение порядкового номера наименьшего элемента
Дана непустая последовательность различных натуральных чисел. Определить порядковый номер...

Поиск элемента и если находится, то замена существующего элемента на найденный
Есть два элемента: ('.banner') и ('.banner_top.'). ('.banner') находится на странице по...

Реализация списка.Удаление хвостового элемента.Поиск элемента
Всем привет,мое задание выглядит так : В класс List&lt;T&gt; из классной работы добавить следующие...

12
Заблокирован
24.09.2013, 06:48 2
Цитата Сообщение от Margo_legion Посмотреть сообщение
Вопросы возникают на месте !!!!!!!!!!!!!!!!!!
А именно. Почему бд в юникоде, а страница в 1251? Где собственно выполнение запроса? Где проверка результата. Где вывод результата?

Слишком мало кода, слишком много вопросов. Читайте мануал. http://php.net/manual/en/mysqli.query.php Там есть примеры и можно переключиться на условный русский.
0
4 / 4 / 2
Регистрация: 12.09.2013
Сообщений: 73
24.09.2013, 14:34 3
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?
 
mysql_connect('localhost', 'root', '2799994') or die('No connect with data base'); 
mysql_query('SET NAMES UTF-8');
mysql_select_db('sh_pr') or die('No data base');
//$client=$_POST['a'];
$query ="SELECT `cl_fam` FROM `laba1` WHERE `cl_fam`='$client'";
$result = mysql_query($query) or die (mysql_error());
if(mysql_num_rows($result) > 0) {
    while($bdrow = mysql_fetch_assoc($result)) {
        $content .= $bdrow;
    }   
}
else {
    $content = "клиент не найден";
}
 
 
?>
 
<html> 
<head> 
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
    <title>Поиск</title> 
</head>
<body> 
<form method="post">
<input type="text" name="a" />
<input type="submit" value="Найти" />
<?=$content; ?>
</form>     
</body>
</html>
0
8 / 8 / 1
Регистрация: 22.02.2012
Сообщений: 168
24.09.2013, 15:16  [ТС] 4
Что-то не работает у меня ваш код ((
Я тут пока мучилась,накатала вот так еще:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
 
mysql_connect('localhost', 'root', '2799994') or die('No connect with data base'); 
mysql_query('SET NAMES utf8');
mysql_select_db('sh_pr') or die('No data base');
$client=$_POST['a'];
$sql ="SELECT * FROM `laba1` WHERE cl_fam='$client'"; 
$res=mysql_query($sql);
while($row = mysql_fetch_array($res))          //так даже лучше,он теперь из базы тянет все строки по этому клиенту
{                                                            //но это если он есть. А можно ли здесь как-то поставить проверку еще
echo "Номер: ".$row['id_cl']."<br>\n";           //что если такого товарища в базе нет,то вывести "не найден"?
echo "Имя:".$row['cl_name']."<br>\n";           //или только по истине работает все?
echo "Фамилия:".$row['cl_fam']."<br>\n";
echo "Долг:".$row['Dolg']."<br><hr>\n";
}
 
?>
<html> 
<head> 
<meta charset="cp1251"> 
<title>Клиенты</title> 
</head>
<body> 
<form method="post">
<input type="text" name="a" value= "<?php echo $client;?>"/>
<input type="submit" value="Найти" />  
<?php echo $a;?>        //по сути ничего в $a не занесено. А надо как-то тут ложность условия вывести. Типа else
</form>     
</body>
</html>
0
4 / 4 / 2
Регистрация: 12.09.2013
Сообщений: 73
24.09.2013, 15:31 5
Что-то не работает у меня ваш код ((
Что именно не работает? В чем ошибка? В какой строке?
"Ложность условия" я показал вам как надо проверить.
0
Заблокирован
24.09.2013, 19:00 6
Вот так все и устроено у нас. Документацию читать - фиг, бредятину писать - пожалуйста.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// ваши сообщения в аргументах конструкции die потонут в потоке мата
// так что можете ничего не комментировать на момент смерти скрипта
// если только у вас не включена опция mysqli_report(MYSQLI_REPORT_STRICT);
$link = new mysqli('localhost', 'root', '2799994', 'sh_pr');
if ($link->connect_errno) die; 
 
$link->set_charset('utf8');
 
if(!isset($_POST['a']) die('No fam');
 
$client=$link->real_escape_string($_POST['a']);
 
$sql ='SELECT * FROM `laba1` WHERE `cl_fam`="' . $client . '";';
 
if(!$res=$link->query($sql)) die; // на случай если нет такой таблицы или поля, или иных ошибок запроса
 
if($link->affected_rows < 1) die('No such client found'); // affected_rows универсальное свойство
 
echotable($res); // вывести результат легче всего в таблицу
 
// функция постройки таблицы из результата
function echotable($result) {
    echo '<br/>';
    echo '<table class="echotable"><tr style="font-weight:bold">';
    while($field = $result->fetch_field()) echo '<td>' . $field->name;
    while($row = $result->fetch_row()) echo '<tr><td>' . implode('<td>', $row);
    echo '</table>';
    echo '<br/>';
}
Когда получите пятерку за лабу, не забудьте проставиться участникам форума.

Добавлено через 21 минуту
Цитата Сообщение от Margo_legion Посмотреть сообщение
//по сути ничего в $a не занесено. А надо как-то тут ложность
Эту строку

PHP
1
if(!isset($_POST['a']) die('No fam');
переносите на самый верх, в самое начало скрипта вот так:
PHP
1
2
3
4
5
6
7
if(isset($_POST['a']) {
 
// тут все остальное что выше написано в коде php за исключением той самой строки
 
}
 
// а за скобкой ваш html с формой и полями и кнопкой
Когда нет в пост элемента "а" появятся поля. Если в поле "а" ввести имя и нажать кнопку, элемент "а" появится в посту и сработает часть скрипта которая выведет данные из БД. Если нажать обновить - еще раз выведет.
0
8 / 8 / 1
Регистрация: 22.02.2012
Сообщений: 168
24.09.2013, 19:01  [ТС] 7
В вузе PHP не учат. А уж тем более,как с бд работать в пхп.
0
Заблокирован
24.09.2013, 19:06 8
Я только что хотел узнать в каком-таком ВУЗе задают такие лабы. Это ж надо додуматься - да еще женщине.

Добавлено через 3 минуты
$mysqli::affected_rows универсальное свойство показывающее количество строк в результате после любых операций как то update, insert, delete и конечно select. Однако хранится оно в инстанси коннекта, поэтому снимать показания надо сразу, до получения следующего результата. Результат, конечно, имеет свое свойство количества полученных из БД строк.
0
8 / 8 / 1
Регистрация: 22.02.2012
Сообщений: 168
24.09.2013, 19:27  [ТС] 9
dapol, почему-то сначала в вашем коде,при открытии файла в браузере сразу вылезло клиент не найден. Я ничего еще даже ввести не успела,а теперь вообще кусок кода пхп вылез как есть,не интерпретировался. Но это скорее всего у меня апачи опять гонит. А вот первое так и есть.

Добавлено через 1 минуту
sqlnub, спасибо,я попробую сейчас разобраться в вашем коде.

P/S: а что за дескриминация по половому признаку то? ну мне это интересно,в вузе только делфи преподавала,потом немного Си++. Но мне веб нравится,поэтому и разбираюсь в нем на вымышленных примерах
0
Заблокирован
24.09.2013, 20:15 10
А что, в делфях не надо запрос выполнять? Типа там такой язык могучий что сам допрет по инерции.

Видели мы таких преподавателей. Которые учат английскому, а по-английски не читают, учат Си, а ни одного приложения в своей жизни не написали. Вы запутались в элементарной логике элементарного интерфейса с одним-единственным полем и одной кнопкой, но жалуетесь на сексизм в почтовый ящик.

Добавлено через 13 минут
Чтобы по-быстрому понять особенность веб-приложений надо просто вспомнить как пишутся обычные консольные апликухи, которые загружаются с параметрами в строке аргументов, выполняют поставленную задачу и выгружаются оставив после себя результат на экране или в памяти компа.
0
4 / 4 / 2
Регистрация: 12.09.2013
Сообщений: 73
25.09.2013, 09:05 11
Цитата Сообщение от Margo_legion Посмотреть сообщение
dapol, почему-то сначала в вашем коде,при открытии файла в браузере сразу вылезло клиент не найден. Я ничего еще даже ввести не успела
А, так оказывается, за вас надо было полностью все написать, а не на мысли натолкнуть. Простите, простите...
0
8 / 8 / 1
Регистрация: 22.02.2012
Сообщений: 168
25.09.2013, 20:44  [ТС] 12
Что за чушь? Я еще раз повторюсь: это не лаба и не курсовик!!! У нас даже базы access преподавали,какой может быть пхп!!! Я пару дней назад курсы закончили по пхп и вот пытаюсь разобраться со всем,что там говорили. А ваш код запустить пыталась,потому что вы использовали функцию fetch_assoc, а я выкладывала код,где использовала fetch_array. Или скажете,что я этот код тоже скопипастила? Нет,я там каждую строчку наизусть помню и каждую запятую объяснить могу. А так как я плохо еще в коде чужом разбираюсь в силу недостатка опыта, то и решила запустить и посмотреть,что он вообще делает! И написала вам,что ничего не делает. А если бы я хотела,чтобы кто-то за меня что-то сделал,то писала бы иначе
0
Заблокирован
25.09.2013, 22:13 13
"Базы access преподавали".

"Знаем мы компьютеры. Грузили мы их" - говорил герой Куравлева, советский грузчик и алкаш. Я очень сомневаюсь что в исторический период съемок этого фильма авторам был известен термин "грузить компьютер". Даже в штатах откуда все пошло сперва говорили не download, но inputting. В современном нам языке цитата обрела более глубокий смысл.

На самом деле многие дамочки пользуются сексизимом, но отрицают, но пользуются, но отрицают...
0
25.09.2013, 22:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.09.2013, 22:13
Помогаю со студенческими работами здесь

Поиск элемента в бинарном дереве, вставка элемента
Прошу помочь написать программу для поиска элемента в бинарном дереве, и вставки элемента. Могу...

Поиск максимального элемента в строке элемента Stringgrid
Помогите пожалуйста!!!) Дано два целочисленных квадратных массива 4х4. Создайте программу...

Поиск заданного элемента в упорядоченном массиве (бинарный поиск)
Заполнить одномерный массив из n элементов согласно таблицы. Размерность массива задать в виде...

Поиск заданного элемента в упорядоченном массиве(бинарный поиск)
Заполнить одномерный массив из n элементов по формуле приведенной в картинке. Размерность массива...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru