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

Форум MySQL

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

 

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

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

тема: Запрос к таблицам базы данных, для вывода данных?
 
 автор: xpom   (09.09.2006 в 21:01)   письмо автору
 
 

Подскажите пожалуйста, как правилно построить запрос к таблицам данных, чтобы вывести данные из таблицы в html посетителя, если у меня 3 таблицы данных, первая Punkt, вторая Podrazdel, третья Dannie?

$db = mysql_connect($dbhost, $dbuser, $dbpass); 
    mysql_selectdb($dbname, $db); 

    $res = mysql_query("SELECT * FROM Dannie 
    WHERE Dannie=$n"// Вот сдесь что-то я не пойму как построить условие выбора, если есть n и d? 
,$db); 

    $num=0; 

    while ($myrow = mysql_fetch_row($res)) { 
      $num++; 
    } 
    if ($num > 0) { 

      $res = mysql_query("SELECT URL, Name, About FROM Dannie 
      WHERE ?????,$db); 
 

   
 
 автор: cheops   (10.09.2006 в 12:08)   письмо автору
 
   для: xpom   (09.09.2006 в 21:01)
 

Что хранят переменные $n и $d и каким полям в таблице Dannie соответствуют?

   
 
 автор: xpom   (10.09.2006 в 14:25)   письмо автору
 
   для: cheops   (10.09.2006 в 12:08)
 

переменные $n и $d у меня передаются методом get и они появляются в адресной строке, вот по такому принцепу:

<form method=get>            
<?php 
  $res 
mysql_query("SELECT * FROM Punkt",$db); 
  if(!
$res) exit("Ошибка в синтаксисе запроса"); 
  if(
mysql_num_rows($res)) 
  { 
     echo 
"<select type=text name='d'> "
     while(
$punkt mysql_fetch_array($res)) 
     { 
        if(
$_GET['d'] == $punkt[id]) $selected "selected"
        else 
$selected ""
        echo 
"<option  value=$punkt[id] $selected>$punkt[name]</option>"
     } 
     echo 
"</select> "
  } 
?> 
<input class=button type=submit value="Перейти">  
</form>  
<?php  
  
if($_GET['d'] == 1)  
  {  
    
// Ссылки раздела 1  
    
echo "<a href=?d=".htmlspecialchars($_GET['d'])."&n=1>Раздел 1.1</a><br>";  
    echo 
"<a href=?d=".htmlspecialchars($_GET['d'])."&n=2>Раздел 1.2</a><br>";  
    echo 
"<a href=?d=".htmlspecialchars($_GET['d'])."&n=3>Раздел 1.3</a><br>";  
  }  
  if(
$_GET['d'] == 2)  
  {  
    
// Ссылки раздела 2  
    
echo "<a href=?d=".htmlspecialchars($_GET['d'])."&n=1>Раздел 2.1</a><br>";  
    echo 
"<a href=?d=".htmlspecialchars($_GET['d'])."&n=2>Раздел 2.2</a><br>";  
    echo 
"<a href=?d=".htmlspecialchars($_GET['d'])."&n=3>Раздел 2.3</a><br>";  
  }  
?> 

Такблицы связаны между собо по порядку, а таблица Dannie получается самая последняя и переменной $d в ней нет, эта переменная соотвествует первой таблице, а переменная $n второй. Вот как создавалась таблица Dannie:

CREATE TABLE Dannie (
      DID                  INTEGER NOT NULL AUTO_INCREMENT,
      Podrazdel          INTEGER NOT NULL,
      URL                  VARCHAR(150),
      Name                 VARCHAR(150),
      About                 VARCHAR(255),
      Email               VARCHAR(150),
      Primary Key (DID),
       FOREIGN KEY (Podrazdel) REFERENCES Cat(PID)

Вот как сделать что бы можно было выбирать Разделы1 или 2 а потом работать с подразделами, в смысле вывода информации в tml ползователя?

   
 
 автор: cheops   (10.09.2006 в 21:50)   письмо автору
 
   для: xpom   (10.09.2006 в 14:25)
 

1) А какова структура первых двух таблиц?
2) Каким полям в них соответствуют переменные $n и $d?
3) Через какие поля связаны друг с другом все три таблицы?

   
 
 автор: xpom   (11.09.2006 в 19:55)   письмо автору
 
   для: cheops   (10.09.2006 в 21:50)
 

Структура первой таблицы: вот как я её создавал:

 CREATE TABLE Punkt (
      PID         INTEGER NOT NULL AUTO_INCREMENT,
      PunktName        VARCHAR(30),
      Primary Key (PID);

вторую вот так:

CREATE TABLE Podrazdel (
      PODID          INTEGER NOT NULL AUTO_INCREMENT,
      Punkt          INTEGER NOT NULL,
      Podrazdel Name        VARCHAR(30),
      Primary Key (PODID),
      FOREIGN KEY (Punkt) REFERENCES Punkt(PID)

>2) Каким полям в них соответствуют переменные $n и $d?
Вот это у меня и остается проблемой, я пытаюсь присвоить эти переменные полям вот таким образом:

$res = mysql_query("SELECT * FROM Dannie
    WHERE Podrazdel=$n",$db);

а вот переменную $d с помощью WHERE не получается, т.к в таблице Dannie нет связки с первой таблицой Punkt, как это можно сделать может другим способом?
>3) Через какие поля связаны друг с другом все три таблицы?
Я думаю вы поймете как они связаны между собой, т.к. я описал код которым я их создавал, сдесь первые две таблицы и выше третью таблицу.

   
 
 автор: cheops   (12.09.2006 в 00:36)   письмо автору
 
   для: xpom   (11.09.2006 в 19:55)
 

Хм... а зачем вам тогда использвать $d в запросе, если переменная $n однозначно определяет подраздел и возвращает все нужные вам записи?

   
 
 автор: xpom   (12.09.2006 в 21:06)   письмо автору
 
   для: cheops   (12.09.2006 в 00:36)
 

И правда, что-то я немного запутался. Спасибо за помощь!

   
Rambler's Top100
вверх

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