Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [решено] PHP - Передача полезного значения(части) массива из одного скрипта php, в другой.

Ответить
Настройки темы
Разное - [решено] PHP - Передача полезного значения(части) массива из одного скрипта php, в другой.

Аватара для ilka

Новый участник


Сообщения: 43
Благодарности: 4

Профиль | Отправить PM | Цитировать


Изменения
Автор: ilka
Дата: 01-11-2010
Описание: было не точно написано
Доброй ночи коллеги.
Прошу помощи и сильно не пинать, т.к. с пхп знаком только с прошлых выходных.
Ситуация следующая.
Задача написать веб морду к БД mysql, в которой имеются записи о клиентах организации.
Пользователь забивает фамилию, допустим - Иванов. и тут оказывается что после обработки массива, клиентов с такой фамилией - 3 человека (у всех записей есть свой уникальный идентификатор - ID). Выбираем нужного нам человека, тыкаем на него и открывается следующий скрипт, который с помощью SQL запроса (основываясь на выбранном ID) заполняет HTML табличку и сотрудник пускает эти данные на распечатку -например договор на нужного Иванова И.И.
... как передать переменную методом POST для обработки введенной информации массива - разобрался. Но возникла проблема с передачей нужной части массива из одного скрипта (findscript.php) в другой (createdoc.php) (допустим ТОЛЬКО 2й Иванов с ID = 123 из всех трех найденных должен быть внесен в документ, для последующей печати).

Заранее большое спасибо за любую подсказку или ссылку!

p.s.: прошу прощения за избыточность кода!)

файл 1
PHP код: Выделить весь код

<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

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>

-------
...пользуясь моментом...хочу передать привет друзьям...которые тоже пользуются ...моментом)))


Отправлено: 02:42, 01-11-2010

 

Deadooshka


Сообщения: 2499
Благодарности: 682

Профиль | Отправить PM | Цитировать


радио-кнопки не подходят? <input type="radio" name="name" value="<ID человеков>" />. В скрипте ловите $_POST['name'].

Отправлено: 19:32, 01-11-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для ilka

Новый участник


Сообщения: 43
Благодарности: 4

Профиль | Отправить PM | Цитировать


так а как мне передать нужное мне значение из массива методом POST? У меня же массив в php и как перекинуть его на другую страницу?
если value="<ID человеков> то там указывается конкретный номер...т.е. переменную $id - подставить не могу...он так её и передаст как текст, и будет $_POST['name'] = буковки $id.
.....или же нет?

-------
...пользуясь моментом...хочу передать привет друзьям...которые тоже пользуются ...моментом)))


Отправлено: 20:14, 01-11-2010 | #3


Deadooshka


Сообщения: 2499
Благодарности: 682

Профиль | Отправить PM | Цитировать


зачем передавать что-то, если можно снова сформировать этот массив? сделайте функцию/метод для формирования массива....
обычно скрытые данные передаются через input type="hidden" name="" value="..."
если name будет типа array[key] - на выходе будет $_POST['array']['key']
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:19, 01-11-2010 | #4


Аватара для ilka

Новый участник


Сообщения: 43
Благодарности: 4

Профиль | Отправить PM | Цитировать


Спасибо за ответы!
...но представим что пользователь вбивает в поиске "Иванов" ...страничка отображает ряд найденных Ивановых, среди которых и тот кто нам нужен. Далее тыкнув на него ....она ожидает что отчет будет сформирован только по тому Иванову, которого она выбрала.
...теперь что получается. Генеря страничку с выводом на экран всего массива с "Ивановыми", у нас уже есть тот уникальный идентификатор ($id), который теперь осталось только передать следующей странице (___.php) в SQL запрос и просто сделать выборку заполняя html-шаблон. Дико извиняюсь но в упор не понимаю зачем ещё раз генерить массив на следующей странице.

Объясните пожалуйста!
Может я просто не правильно мыслю?

-------
...пользуясь моментом...хочу передать привет друзьям...которые тоже пользуются ...моментом)))


Отправлено: 22:30, 01-11-2010 | #5


Deadooshka


Сообщения: 2499
Благодарности: 682

Профиль | Отправить PM | Цитировать


ilka, конкретизируйте. Напишите пример массива, который хотите получить, элементы массива, значения.
Если будет галочка/радио-кнопка, то получите ID (или чего там), на основе которого можно вытянуть из базы недостающую инфу для распечатки.
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:48, 01-11-2010 | #6


Аватара для ilka

Новый участник


Сообщения: 43
Благодарности: 4

Профиль | Отправить PM | Цитировать


Добрый день)
попробовал с радио кнопкой..... на следующей странице php выдал текст "array" и всё =(
...наверное очень криво объясняю...извините...попробую ещё раз
---------------------------------------------------------
1. на первой странице вводится фамилия клиента,
после чего все данные идут на след страницу =>



---------------------------------------------------------
$last = $_POST['searchterm']; //переданная фамилия
$query = "SELECT * FROM (info) WHERE Last_Name like '%$last%'";
$result = mysql_query($query);
$number = mysql_num_rows($result);
/* Напечатать всех в красивом виде*/

2. вот сдесь начинается самое интересное -
обрабатываем массив, который красиво отобразится в html на страничке оператора,
а в массиве информация по трем клиентам и в каждой
переменной $lastname $middlename $name $phone $id есть три значения, которые по порядку
выведутся в HTML каждый в своей табличке и у каждого будет кнопка "Сформировать договор"
Нажав на одну из получившихся трех (в данном случае) кнопок в интересующей нас табличке.
Каким то образом переменная $id (так проще всего, по скольку в БД это уникальное значение
и основываясь на нем можно составить точный запрос) -но не весь массив! а только одно единственное значение!
должна передаться в следующую страницу

(Картинка как оно все выглядит)



$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="Сформировать договор">

===========================================
скорее всего тут нужно как то передать $id
===========================================

</form>
</th></td>
</tr>
<?php
print "<BR><BR>";
$i++;
?>

===============================================================
здесь генерится следующая табличка - пока массив не закончится.
===============================================================

<?php
}
}
mysql_close($link);
?>

......где то уперся лбом и не пойму что делать ....а точнее что искать(

-------
...пользуясь моментом...хочу передать привет друзьям...которые тоже пользуются ...моментом)))


Отправлено: 15:37, 02-11-2010 | #7


Deadooshka


Сообщения: 2499
Благодарности: 682

Профиль | Отправить PM | Цитировать


mysql_query - там посмотрите примеры правильного перебора результата.
Цитата ilka:
скорее всего тут нужно как то передать $id »
input type="hidden" внутри формы
HTML код: Выделить весь код
<form action="createdoc.php" method="post"> <input type="submit" value="Сформировать договор" /> <input type="hidden" name="ID" value="<?php echo $id; ?>" /> </form>

id будет в $_POST['ID']

или просто ссылку без формы
HTML код: Выделить весь код
<a href="createdoc.php?ID=<?php echo $id; ?>">Сформировать договор</a>

будет тогда $_GET['ID'] (или $_REQUEST в обоих случаях)

в createdoc.php обработайте ID и выводите что надо.
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:16, 02-11-2010 | #8


Аватара для ilka

Новый участник


Сообщения: 43
Благодарности: 4

Профиль | Отправить PM | Цитировать


Sham, Огромное Вам человеческое спасибо!!!!!!!!!!!!!!!!!!!!!!!!!
Всё заработало!!!
Буду продолжать ваять далее)

-------
...пользуясь моментом...хочу передать привет друзьям...которые тоже пользуются ...моментом)))


Отправлено: 19:37, 02-11-2010 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [решено] PHP - Передача полезного значения(части) массива из одного скрипта php, в другой.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Передача данных с одного ПК на другой Cjing Хочу все знать 7 25-04-2010 23:44
[решено] PHP | Вывод массива в файл Coutty Вебмастеру 2 29-10-2008 08:48
Передача переменной из PHP в JavaScript rulllesss Вебмастеру 1 25-07-2005 09:27
php деление значения строковой переменной Guest Вебмастеру 4 14-10-2004 17:12
PHP. Запись массива в файл. Hemp Вебмастеру 3 08-10-2004 20:50




 
Переход