ilka
01-11-2010, 02:42
Доброй ночи коллеги.
Прошу помощи и сильно не пинать, т.к. с пхп знаком только с прошлых выходных.
Ситуация следующая.
Задача написать веб морду к БД mysql, в которой имеются записи о клиентах организации.
Пользователь забивает фамилию, допустим - Иванов. и тут оказывается что после обработки массива, клиентов с такой фамилией - 3 человека (у всех записей есть свой уникальный идентификатор - ID). Выбираем нужного нам человека, тыкаем на него и открывается следующий скрипт, который с помощью SQL запроса (основываясь на выбранном ID) заполняет HTML табличку и сотрудник пускает эти данные на распечатку -например договор на нужного Иванова И.И.
... как передать переменную методом POST для обработки введенной информации массива - разобрался. Но возникла проблема с передачей нужной части массива из одного скрипта (findscript.php) в другой (createdoc.php) (допустим ТОЛЬКО 2й Иванов с ID = 123 из всех трех найденных должен быть внесен в документ, для последующей печати).
Заранее большое спасибо за любую подсказку или ссылку!
p.s.: прошу прощения за избыточность кода!)
файл 1
<html>
<head>
<title>Поиск клиента в Базе данных</title>
</head>
<body>
<form action="findscript.php" method="post">
<center>
<b>Введите фамилию клиента (в Именительном падеже - Иванов)</b>
<p>
<b>Если по фамилии клиент не был найден, введите его номер сотового телефона (без восьмерки - 9261234545)</b>
<p>
<table width="600"><tr><td align="left">
Ищем по:<br>
<select name="searchtype" size=2>
<option value="Last_Name" selected>Фамилии клиента
<option value="Phone">Номеру сотового телефона клиента
</select><br>
Введите данные:<br><input type="binary" name="searchterm"><br>
<p>
<p>
<input type=submit value="Поиск">
</center>
</form></td></tr></table>
</body>
</html>
файл findscript.php
<html>
<head>
<title>Программа поиска клиента (файл findscript.php)</title>
</head>
<body>
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
$db = 'clients';
//$pass = $_POST['password'];
$user = '*****';
$pass = '******';
$server = 'localhost';
$link = mysql_connect($server, $user, $pass);
if(!$link) die('Не могу соединиться с MySQL');
mysql_select_db($db) or die('Не могу открыть $db: '.mysql_error());
$how = $_POST['searchterm'];
$what = $_POST['searchtype'];
//echo 'searchtype';
//var_dump($_POST);
trim ($how);
if (!$how)
die ('Не все данные введены.<br>
Пожалуйста, вернитесь назад и закончите ввод информации');
$how = addslashes ($how);
$query = "SELECT * FROM (info) WHERE $what like '%$how%'";
$result = mysql_query($query);
$number = mysql_num_rows($result);
/* Напечатать всех в красивом виде*/
$i = 0;
IF ($number == 0) {
print "<center><P><P>Клиент в базе данных не найден.</center>";
} ELSEIF ($number > 0) {
print "<center><P><P><b>Количество найденых клиентов в базе данных: $number</b><BR><BR>";
while ($i < $number){
$lastname = mysql_result($result,$i,"Last_Name");
$middlename = mysql_result($result,$i,"Middle_Name");
$name = mysql_result($result,$i,"Name");
$phone = mysql_result($result,$i,"Phone");
$id = mysql_result($result,$i,"ID");
?>
<table border=5 rules="all" width="600" cellpadding="5"><td align="left">
<tr><td>
<?php
print "<b> $lastname $name $middlename</b> ";
?>
</td>
<th>
<form action="createdoc.php" target="_self" method="post"><input type="submit" value="Сформировать договор">
// И ВОТ ЗДЕСЬ НАСКОЛЬКО Я ПОНИМАЮ НУЖНО ВСТАВИТЬ КОД ДЛЯ ПЕРЕДАЧИ ТРЕБУЮЩЕЙСЯ
// И УЖЕ ОТОБРАННОЙ ЧАСТИ ПЕРЕМЕННОЙ К СЛЕДУЮЩЕМУ СКРИПТУ ===> createdoc.php
</form>
</th></td>
</tr>
<tr><td>
<?php
print " Сотовый телефон - <b>$phone</b> ";
?>
</td>
<td>
<?php
print " Номер клиента - $id ";
?>
</td>
</tr>
<?php
print "<BR><BR>";
$i++;
?>
<?php
}
//print "</center>";
}
mysql_close($link);
?>
</tr>
</table>
</body>
</html>
Прошу помощи и сильно не пинать, т.к. с пхп знаком только с прошлых выходных.
Ситуация следующая.
Задача написать веб морду к БД mysql, в которой имеются записи о клиентах организации.
Пользователь забивает фамилию, допустим - Иванов. и тут оказывается что после обработки массива, клиентов с такой фамилией - 3 человека (у всех записей есть свой уникальный идентификатор - ID). Выбираем нужного нам человека, тыкаем на него и открывается следующий скрипт, который с помощью SQL запроса (основываясь на выбранном ID) заполняет HTML табличку и сотрудник пускает эти данные на распечатку -например договор на нужного Иванова И.И.
... как передать переменную методом POST для обработки введенной информации массива - разобрался. Но возникла проблема с передачей нужной части массива из одного скрипта (findscript.php) в другой (createdoc.php) (допустим ТОЛЬКО 2й Иванов с ID = 123 из всех трех найденных должен быть внесен в документ, для последующей печати).
Заранее большое спасибо за любую подсказку или ссылку!
p.s.: прошу прощения за избыточность кода!)
файл 1
<html>
<head>
<title>Поиск клиента в Базе данных</title>
</head>
<body>
<form action="findscript.php" method="post">
<center>
<b>Введите фамилию клиента (в Именительном падеже - Иванов)</b>
<p>
<b>Если по фамилии клиент не был найден, введите его номер сотового телефона (без восьмерки - 9261234545)</b>
<p>
<table width="600"><tr><td align="left">
Ищем по:<br>
<select name="searchtype" size=2>
<option value="Last_Name" selected>Фамилии клиента
<option value="Phone">Номеру сотового телефона клиента
</select><br>
Введите данные:<br><input type="binary" name="searchterm"><br>
<p>
<p>
<input type=submit value="Поиск">
</center>
</form></td></tr></table>
</body>
</html>
файл findscript.php
<html>
<head>
<title>Программа поиска клиента (файл findscript.php)</title>
</head>
<body>
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
$db = 'clients';
//$pass = $_POST['password'];
$user = '*****';
$pass = '******';
$server = 'localhost';
$link = mysql_connect($server, $user, $pass);
if(!$link) die('Не могу соединиться с MySQL');
mysql_select_db($db) or die('Не могу открыть $db: '.mysql_error());
$how = $_POST['searchterm'];
$what = $_POST['searchtype'];
//echo 'searchtype';
//var_dump($_POST);
trim ($how);
if (!$how)
die ('Не все данные введены.<br>
Пожалуйста, вернитесь назад и закончите ввод информации');
$how = addslashes ($how);
$query = "SELECT * FROM (info) WHERE $what like '%$how%'";
$result = mysql_query($query);
$number = mysql_num_rows($result);
/* Напечатать всех в красивом виде*/
$i = 0;
IF ($number == 0) {
print "<center><P><P>Клиент в базе данных не найден.</center>";
} ELSEIF ($number > 0) {
print "<center><P><P><b>Количество найденых клиентов в базе данных: $number</b><BR><BR>";
while ($i < $number){
$lastname = mysql_result($result,$i,"Last_Name");
$middlename = mysql_result($result,$i,"Middle_Name");
$name = mysql_result($result,$i,"Name");
$phone = mysql_result($result,$i,"Phone");
$id = mysql_result($result,$i,"ID");
?>
<table border=5 rules="all" width="600" cellpadding="5"><td align="left">
<tr><td>
<?php
print "<b> $lastname $name $middlename</b> ";
?>
</td>
<th>
<form action="createdoc.php" target="_self" method="post"><input type="submit" value="Сформировать договор">
// И ВОТ ЗДЕСЬ НАСКОЛЬКО Я ПОНИМАЮ НУЖНО ВСТАВИТЬ КОД ДЛЯ ПЕРЕДАЧИ ТРЕБУЮЩЕЙСЯ
// И УЖЕ ОТОБРАННОЙ ЧАСТИ ПЕРЕМЕННОЙ К СЛЕДУЮЩЕМУ СКРИПТУ ===> createdoc.php
</form>
</th></td>
</tr>
<tr><td>
<?php
print " Сотовый телефон - <b>$phone</b> ";
?>
</td>
<td>
<?php
print " Номер клиента - $id ";
?>
</td>
</tr>
<?php
print "<BR><BR>";
$i++;
?>
<?php
}
//print "</center>";
}
mysql_close($link);
?>
</tr>
</table>
</body>
</html>