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

Форум MySQL

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

 

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

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

тема: Двойное считывание из одной таблицы базы данных
 
 автор: newcold   (06.12.2008 в 14:53)   письмо автору
 
 

Здравствуйте, уважаемые!
Мой вопрос:
Есть таблица в базе данных, делаю страницу с кратким содержанием, используя только 3 столбца из 8 типа:
Маша Иванова Москва 18 лет подробнее
Саша Пертов Израиль 3 года подробнее
нажимаю подробнее и должно из этой же таблицы открыться и все данные именно по данному человеку.
Если не понятно объяснил:
проблема в том что не могу понять какс данной страницы передать id_catalog на внутреннюю и извлечь данные повторно из этой же таблыцы, только уже полностью и только по данному id..

  Ответить  
 
 автор: aleksej_sumarok   (06.12.2008 в 15:16)   письмо автору
 
   для: newcold   (06.12.2008 в 14:53)
 

Через метод _GET, например anketa.php?id=1


<?
mysql_query
("SELECT id, first_name, last_name FROM clients WHERE id='$_GET[id]'"); 
?>

  Ответить  
 
 автор: Valick   (06.12.2008 в 15:29)   письмо автору
 
   для: newcold   (06.12.2008 в 14:53)
 

Немного непонятно обьяснили..
Если вы хотите вторую таблицу сформировать без повторного обращения к базе... то никак.
Можно конечно извлечь все данные из базы и сохранить в сессии, а при "подробнее" выдёргивать их оттуда... но не делайте так!!!
у вас должно быть две разные страницы, два разных обращения к базе и следовательно два различных запроса. Примерно так как вам и посоветовали в предыдущем посте.

<? 
mysql_query
("SELECT * FROM `clients` WHERE id=`$id`");  
?>

Естественно принять переменную методом GET и предварительно обработав её уже передать в запрос.

  Ответить  
 
 автор: dimm_kz   (07.12.2008 в 19:50)   письмо автору
 
   для: Valick   (06.12.2008 в 15:29)
 

попрбуй считать не 3 столбца, а 4 (id тоже), и в ссылку на подробнее передай значение этого самого id получится так:
<a href="имя_файла?id=$id">подробнее</a>

ну и в обработчике уже получается как у Valick
<?  
mysql_query
("SELECT * FROM `clients` WHERE id=`$id`");   
?>

  Ответить  
 
 автор: newcold   (08.12.2008 в 13:24)   письмо автору
 
   для: dimm_kz   (07.12.2008 в 19:50)
 

Спасибо всем! я так и думал, только сформулировать не мог, ща буду пробовать..

  Ответить  
 
 автор: newcold   (13.01.2009 в 20:33)   письмо автору
 
   для: newcold   (08.12.2008 в 13:24)
 

id не передается на следующую страницу..

  Ответить  
 
 автор: newcold   (13.01.2009 в 20:45)   письмо автору
 
   для: newcold   (13.01.2009 в 20:33)
 

Первая страница:
<?
{
  
// Установка соединения с базой данных
  
require_once("config/config.php");

  
// Формируем SELECT-запрос
  
$query "SELECT * FROM cars";
  
$cat mysql_query($query);
  if(!
$cat) exit("Ошибка");
    while(
$catalog mysql_fetch_array($cat))
    {
      echo 
"<a href=klient.php?id_cars=".$catalog['id_cars'].">".$catalog['fio']."</a><br>";
    }
  }
?>

Обработчик (klient.php):
<?
{
  
// Установка соединения с базой данных
  
require_once("config/config.php");
  
 
// Формируем SELECT-запрос
  
$query "SELECT * FROM cars
  WHERE id_cars="
.$catalog['id_cars']."";
  
$cat mysql_query($query);
  if(!
$cat) exit("Ошибка");
    while(
$catalog mysql_fetch_array($cat))
    {
      echo 
$catalog['made_in'];
    }
    }
?>

  Ответить  
 
 автор: newcold   (13.01.2009 в 20:53)   письмо автору
 
   для: newcold   (13.01.2009 в 20:45)
 

На первой странице всё работает. выдает список, я нажимаю, переходит на обработчик (в адресной строке пишет правильный id) и пишет "Ошибка!"
Подскажите как мне передать правильно id_cars...

  Ответить  
 
 автор: sim5   (13.01.2009 в 20:59)   письмо автору
 
   для: newcold   (13.01.2009 в 20:53)
 

Первый раз вы получили все скопом (без всяких условий) - это одно, второй раз вы уже должны проверять поступление GET-запроса, и если он пришел, то делать к базе запрос только по интересующему прользователю WHERE id =". intval(GET['id_cars'])

  Ответить  
 
 автор: newcold   (13.01.2009 в 21:08)   письмо автору
 
   для: sim5   (13.01.2009 в 20:59)
 

<? 

  
// Установка соединения с базой данных 
  
require_once("config/config.php"); 

  
// Формируем SELECT-запрос 
  
$query "SELECT * FROM cars"
  
$cat mysql_query($query); 
  if(!
$cat) exit("Ошибка"); 
    while(
$catalog mysql_fetch_array($cat)) 
    { 
      echo 
"<a href=klient.php?id_cars=".$catalog['id_cars'].">".$catalog['fio']."</a><br>"
    } 
  } 
$catalog['id_cars']=$_GET['id_cars'];
?>
так? не катит..

  Ответить  
 
 автор: Trianon   (13.01.2009 в 21:00)   письмо автору
 
   для: newcold   (13.01.2009 в 20:45)
 

в файле klient.php переменная $catalog не определена.
ответ aleksej_sumarok (06.12.2008 в 15:16) Вы не читали. Почему?

  Ответить  
 
 автор: newcold   (13.01.2009 в 21:06)   письмо автору
 
   для: Trianon   (13.01.2009 в 21:00)
 

Я его понял, но не понял как передать get запрос..

  Ответить  
 
 автор: newcold   (13.01.2009 в 21:11)   письмо автору
 
   для: newcold   (13.01.2009 в 21:06)
 

А обработчик делаю так:
<? 

  
// Установка соединения с базой данных 
  
require_once("config/config.php"); 
   
 
// Формируем SELECT-запрос 
  
$query "SELECT * FROM cars 
  WHERE id_cars="
.$_GET['id_cars'].""
  
$cat mysql_query($query); 
  if(!
$cat) exit("Ошибка"); 
    while(
$catalog mysql_fetch_array($cat)) 
    { 
      echo 
$catalog['made_in']; 
    } 
    } 
?>

  Ответить  
 
 автор: newcold   (13.01.2009 в 21:15)   письмо автору
 
   для: newcold   (13.01.2009 в 21:11)
 

Спасибо всем!
Я Алень!

  Ответить  
 
 автор: Николай2357   (13.01.2009 в 21:26)   письмо автору
 
   для: newcold   (13.01.2009 в 21:11)
 

<?
"...WHERE id_cars='".intval($_GET['id_cars'])."'";

  Ответить  
Rambler's Top100
вверх

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