За последние 24 часа нас посетили 18244 программиста и 1577 роботов. Сейчас ищут 1055 программистов ...

Вопрос по tecdoc

Тема в разделе "PHP для новичков", создана пользователем -Eclipse-, 28 ноя 2011.

  1. -Eclipse-

    -Eclipse- Активный пользователь

    С нами с:
    28 ноя 2011
    Сообщения:
    1
    Симпатии:
    0
    Доброго времени суток, уважаемые форумчане.

    В общем задача заключается в следующем:

    Имеется:

    - база данных со множеством таблиц
    - sql запросы к этой БД следующего вида:


    [sql]SELECT
    MFA_ID,
    MFA_BRAND
    FROM
    MANUFACTURERS
    ORDER BY
    MFA_BRAND
    LIMIT
    100
    ;[/sql]

    Но если я еще смог загнать эти запросы в PHP:

    PHP:
    1. <?php
    2.     /* Соединяемся, выбираем базу данных */
    3.     $link = mysql_connect("localhost", "root", "192837")
    4.         or die("Could not connect : " . mysql_error());
    5.     print "Connected successfully";
    6.     mysql_select_db("tecdoc") or die("Could not select database");
    7.  
    8.     /* Выполняем SQL-запрос */
    9.     $ath2 = mysql_query("SET @LNG_ID = 16;");
    10.     $query = "SELECT
    11.    MFA_ID,
    12.    MFA_BRAND
    13. FROM
    14.    MANUFACTURERS
    15. ORDER BY
    16.    MFA_BRAND
    17. LIMIT
    18.    100
    19.  
    20. ;";
    21.     $result = mysql_query($query) or die("Query failed : " . mysql_error());
    22.     /* Выводим результаты в html */
    23.     print "<table>\n";
    24.     while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
    25.      
    26.         print "\t<tr>\n";
    27.         foreach ($line as $MFA_ID) {
    28.             print "\t\t<td>$MFA_ID</td>\n";
    29.         }
    30.         print "\t</tr>\n";
    31.     }
    32.     print "</table>\n";
    33.  
    34.     /* Освобождаем память от результата */
    35.     mysql_free_result($result);
    36.  
    37.     /* Закрываем соединение */
    38.     mysql_close($link);
    39. ?>
    То дальше уже смутно предстваляю что делать

    Вкратце - этот запрос цепляет с БД все брэнды авто и выводит их на главную страницу.

    Есть так же следующий шаг. После того, как выбран брэнд должен открываться список марок авто выбранного брэнда (производителя короче говоря)


    [sql]SET @MFA_ID = 502; /* ALFA ROMEO */
    SET @LNG_ID = 16; /* 1 - Немецкий язык; 16 - Русский язык */

    SELECT
    MOD_ID,
    TEX_TEXT AS MOD_CDS_TEXT,
    MOD_PCON_START,
    MOD_PCON_END
    FROM
    MODELS
    INNER JOIN COUNTRY_DESIGNATIONS ON CDS_ID = MOD_CDS_ID
    INNER JOIN DES_TEXTS ON TEX_ID = CDS_TEX_ID
    WHERE
    MOD_MFA_ID = @MFA_ID AND
    CDS_LNG_ID = @LNG_ID
    ORDER BY
    MOD_CDS_TEXT
    LIMIT
    100
    ;[/sql]


    SQL запрос для этого я знаю, но как сделать так, чтобы марки выдавались по выбранному в предыдущем шаге производителю? Т.е. переменная MFA_ID заимствовалась из предыдущего шага, и уже относительно ее выполнялся запрос в БД?

    Строго говоря, должна получиться некая цепочка, но как бы это по-грамотней обтяпать я что - то уже весь мозг вынес)

    Помогите пожалуйста. Заранее благодарен.
     
  2. Koka

    Koka Активный пользователь

    С нами с:
    27 ноя 2011
    Сообщения:
    28
    Симпатии:
    0
    Адрес:
    localhost
    Если я правильно понял твоя проблему: она заключается в том, что ты не знаешь как организовать структуру БД.
    В таком случае одним из правильных решений я считаю создание двух таблиц в БД.
    Первая таблица должна содержать следующие поля:

    ID производитея автомобиля(INT, A_I)
    Название производителя автомобиля(VARCHAR)


    И вторая таблица, которая содержит в себе такие поля:

    ID марки автомобиля(теже int и a_i)
    ID производителя автомобиля(заимствуем из прошлой таблицы)
    Название марки автомобиля(VARCHAR)

    Есть вопросы?
     
  3. igorhh

    igorhh Новичок

    С нами с:
    16 янв 2024
    Сообщения:
    14
    Симпатии:
    0
    Получилось вывести?