Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: извлечение данных из базы, при помощи ПХП
 
 автор: oceania   (20.02.2006 в 12:05)   письмо автору
 
 

каким приблизительно должен быть запроса, если мне необходимы последние данные таблицы....
сначала я одной страницей ПХП ввожу данные, затем мне необходимо в другой странице ПХП написать запрос о извлечении только что введённых значений.....
Так сложно из-за того, что я обращаюсь к ПХП из Флэша, а в свою очередь ПХП обращается к БАЗЕ ДАННЫх
Спасибо большое!

   
 
 автор: cheops   (20.02.2006 в 13:45)   письмо автору
 
   для: oceania   (20.02.2006 в 12:05)
 

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

   
 
 автор: oceania   (20.02.2006 в 15:05)   письмо автору
 
   для: cheops   (20.02.2006 в 13:45)
 

база mysql
база test состоит из таблиц student (id, FIO, Birthday, Specialiti, Result)
первая страница php отправляет информацию о студентах Имя, дата рождения, специальность.
а вторая result и выводит все вместе фамилию, специальность результат

   
 
 автор: elenaki   (20.02.2006 в 15:20)   письмо автору
 
   для: oceania   (20.02.2006 в 15:05)
 

select * from student order by id DESC limit 0,1

   
 
 автор: oceania   (21.02.2006 в 10:30)   письмо автору
 
   для: elenaki   (20.02.2006 в 15:20)
 

а можно ли совместить занесение данных в базу и извлечение их, в одном запрос
как я понимаю select * from student order by id DESC limit 0,1 относится непосредственно к выводу данных


<?php

$Result=$GET['r'];

msql_connect("localhost", "root", "");
msql_select_db("test");

$query="INSERT INTO $students VALUES ('$Result')" ;
$result=mssql_query($query);
while ($row=msql_fetch_array()){
echo $row ["FIO"].","$row [$"Speciality"]. "<br/>";
echo $row ["Result"].
}
msql_close();

   
 
 автор: elenaki   (21.02.2006 в 10:57)   письмо автору
 
   для: oceania   (21.02.2006 в 10:30)
 

не. так не получится. запрос INSERT не возвращает массив. он только может вернуть TRUE
или FALSE - получилось или нет вставить данные.

   
 
 автор: oceania   (21.02.2006 в 11:32)   письмо автору
 
   для: elenaki   (21.02.2006 в 10:57)
 

поняла.....
а вот допустим на первой странице ПХП я напишу
<?php
$FIO=$GET['FIO'];
$Birthday=$GET['Birth'];
$Speciality=$GET['spec'];
msql_connect("localhost", "root", "");
msql_select_db("test");

$query="INSERT INTO students VALUES ('$FIO','$Birthday','$Speciality')" ;
$result=mssql_query($query);
msql_close();
?>

а на второй
<?php

$Result=$GET['r'];

msql_connect("localhost", "root", "");
msql_select_db("test");

$query="INSERT INTO students VALUES ('$Result')" ;
$result=mssql_query($query);

$query="select * from student order by id DESC limit 0,1" ;
$result=mssql_query($query);
}
msql_close();


?>

допишет ли он мне данные именно в эту же таблицу, или мне придётся создать отдельную таблицу Result (Id,Name,StudentId)? Для того что бы поле последней страницы я как результат получила FIO,Speciality,Result

   
 
 автор: elenaki   (21.02.2006 в 11:45)   письмо автору
 
   для: oceania   (21.02.2006 в 11:32)
 

зачем на второй странице INSERT? данные уже в базе. там идет только выборка селектом.

   
 
 автор: oceania   (21.02.2006 в 12:02)   письмо автору
 
   для: elenaki   (21.02.2006 в 11:45)
 

дело в том, что перед тем как вывести данные мне необходимо ввести в эту же таблицу или в другую таблицу значение Result и только после этого вывести и это значение и значение FIO и Speciality(расположенные или в этой таблице или в другой)

   
 
 автор: elenaki   (21.02.2006 в 12:15)   письмо автору
 
   для: oceania   (21.02.2006 в 12:02)
 

тогда надо делать не INSERT, а UPDATE. вам же надо обновить уже существующую строку.
на первой странице вы внесли данные в базу. тут же надо извлечь последний вставленный
id функцией LAST_INSERT(). в ней даже не надо указывать название таблицы, она выдаст id,
который последним был добавлен в базу. потом, на другой странице вы делаете UPDATE
строки с этим id, который передаете в скрытом поле (вообще, непонятно, как у вас данные
между страницами передаются).

   
 
 автор: oceania   (21.02.2006 в 12:54)   письмо автору
 
   для: elenaki   (21.02.2006 в 12:15)
 

Дело в том, что у меня есть Флэш фильм, в нём есть форма и кнопка (что-то вроде регистрации), которая отсылает данные через ПХП в базу (первая страница), это данные FIO,Birthday,Speciality мы их записываем в базу.... затем загружается следующай часть Флэш фильма на котором рассположен тест. После прохождения всей логики в самом Флэше, и приведя к одной переменной, я данные отправляю опять таки через ПХП (вторая страница) в базу, только в этот раз я записываю в таблицу базы (ID,Fio,Birthday,Speciality,Result) только данные в столбец Result. Но есть же вероятность, что он предыдущие поля оставит пустыми и уже второй строкой введёт только Result?
После этого мне необходимо вывести данные из таблицы (Fio,Speciality,Result) в некоторую страницу HTML.

вот и стал вопрос как сделать так чтобы было граммотно, или создать вторую таблицу в базе, куда будут вводиться непосредственно значение Result и тем самым ограничится повторным запросом

$query="INSERT INTO students VALUES ('$Result')" ;
$result=mssql_query($query);

$query="select * from student,result order by id DESC limit 0,1" ;
$result=mssql_query($query);

   
 
 автор: elenaki   (21.02.2006 в 13:02)   письмо автору
 
   для: oceania   (21.02.2006 в 12:54)
 

если делать на второй странице INSERT INTO students VALUES ('$Result'), то запрос действительно вставит новую строку
(что вы у него и просите, собственно), оставив пустыми все поля, кроме result.
но! если делать UPDATE такого не произойдет. вы выбираете из базы нужную строку (по id) и уже именно ее обновляете, записывая в поле result переменную. если вы сделаете вторую таблицу, где будут только результаты, как вы их привяжете потом к конкретному студенту?

   
 
 автор: oceania   (21.02.2006 в 13:33)   письмо автору
 
   для: elenaki   (21.02.2006 в 13:02)
 

$Result=$GET['r'];

msql_connect("localhost", "root", "");
msql_select_db("test");

$query="UPDATE students SET ('$Result')" ;
$result=mssql_query($query);

$query="select * from student order by id DESC limit 0,1" ;
$result=mssql_query($query);

Верно ли это?

   
 
 автор: elenaki   (21.02.2006 в 13:47)   письмо автору
 
   для: oceania   (21.02.2006 в 13:33)
 

Result=$GET['r'];

mysql_connect("localhost", "root", "");
mysql_select_db("test");

$query="UPDATE students SET (result = '$Result') WHERE id = MAX('id')" ;
$result=mysql_query($query);

$query="select * from student order by id DESC limit 0,1" ;
$result=mysql_query($query);

   
 
 автор: oceania   (21.02.2006 в 14:14)   письмо автору
 
   для: elenaki   (21.02.2006 в 13:47)
 

и теперь дальше я смогу воспользоваться массивом? для вывода данных?

while ($row=mysql_fetch_array()){
echo $row ["FIO"].","$row [$"Speciality"]. "<br/>";
echo $row ["Result"];
}

   
 
 автор: elenaki   (21.02.2006 в 14:20)   письмо автору
 
   для: oceania   (21.02.2006 в 14:14)
 

while ($row=mysql_fetch_array($result))
{
echo $row ["FIO"].",".$row ["Speciality"]."<br/>";
echo $row ["Result"];
}
вроде бы так. проверяйте на своей базе...

   
 
 автор: oceania   (21.02.2006 в 14:27)   письмо автору
 
   для: elenaki   (21.02.2006 в 14:20)
 

Result=$GET['r'];

mysql_connect("localhost", "root", "");
mysql_select_db("test");

$query="UPDATE students SET (result = '$Result') WHERE id = MAX('id')" ;
$result=mysql_query($query);

$query="select * from student order by id DESC limit 0,1" ;
$result=mysql_query($query);

while ($row=mysql_fetch_array()){
echo $row ["FIO"].","$row [$"Speciality"]. "<br/>";
echo $row ["Result"];
}
Последний вопрос....... не возникнит ли путаници с обращением к $result который я получаю при первом и втором запросе....
или массив будет использовать только результаты последнего запроса????

   
 
 автор: elenaki   (21.02.2006 в 14:35)   письмо автору
 
   для: oceania   (21.02.2006 в 14:27)
 

не возникнет. с каждым новым объявлением переменная принимает то значение, которое
вы ей присваиваете.

   
 
 автор: oceania   (21.02.2006 в 14:42)   письмо автору
 
   для: elenaki   (21.02.2006 в 14:35)
 

Большое спасибо, за потраченное на меня время!!!!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования