За последние 24 часа нас посетили 22882 программиста и 1234 робота. Сейчас ищут 769 программистов ...

Нужна помощь (PHP+MySQL)

Тема в разделе "MySQL", создана пользователем <VB>, 24 май 2006.

  1. <VB>

    <VB> Активный пользователь

    С нами с:
    21 май 2006
    Сообщения:
    9
    Симпатии:
    0
    Адрес:
    Москва
    Продолжение экономической задачи...

    Есть 3 таблицы:

    1.Лизинговые компании (l_k):
    id
    company - компания
    city - город - $city
    address - адрес
    phone - телефон
    site - сайт
    min - минимальная сумма сделки - $min
    monthly - ежемесячные платежи - $add_query_p
    quarterly - ежеквартальные платежи - $add_query_p
    lowering - понижающие платежи - $add_query_g
    uniform - равномерные платежи - $add_query_g
    insurance - страховка - $add_query_i

    2. Предмет лизинга (p_l):
    id
    subject - предмет (здесь перечисляются все предметы лизинга, ну, т.е. оборудование, авто грузовое, легковое и т.д.) - $subject
    min - минимальный срок аренды - $max
    max - максимальный срок аренды - $max
    avans - аванс - $avans
    ug - удорожание в год
    sipo - срок изготовления и поставки оборудования

    3. Сводная таблица (s_t):
    Leasing_companies - лизинговые компании
    Subject_of_leasing - предмет лизинга

    В чем состоит связь. Каждая компания имеет несколько предметов лизинга (1-*).

    А также есть форма, в которой следующие поля для заполнения:
    Город - выбирается из раскрывающегося списка
    Сумма - ручками (таблица - l_k, поле - min)
    Аванс - ручками (таблица - p_l, поле - avans)
    Срок аренды - ручками (таблица p_l, поля - min и max)
    Предмет лизинга - выбор из списка (таблица p_l, поле - subject)
    Платежи - выбирается из раскрывающегося списка (таблица l_k, поля - monthly и quarterly (все зависит от того, какой пункт был выбран, потому и ведется поиск))
    График платежей - выбирается из раскрывающегося списка (таблица l_k, поля - uniform и lowering (все зависит от того, какой пункт был выбран, потому и ведется поиск))
    Страховка - выбирается из раскрывающегося списка (таблица l_k, поле insurance).

    Поиск по первой таблице (l_k) я сделал (не без помощи конечно...).

    PHP:
    1.  
    2. $result = mysql_query("SELECT * FROM l_k where city='$city' and min$z'$min' $add_query_p $add_query_g $add_query_i",$db);
    3. if ($myrow = mysql_fetch_array($result))
    4.  
    В результате положительно запроса выводиться название компании.

    PHP:
    1.  
    2. printf("<tr><td align=center><a href=company.php>%s</a></td></tr>\n", $myrow["company"]);
    3.  
    Вопрос.
    1.Как осуществить поиск по 2 таблице (p_l)?
    2.И как осуществить связь между 2 таблицами?

    Мое мнение на решение 2 проблемы
    Нужно создать дополнительную php - страницу, на пример - svaz.php. В которой будет отражена связь между двумя таблицами по средствам сводной таблицы (s_t).

    Когда будет осуществлен запрос, и будут вытащены данные из 1 и 2 таблицы. Вступает в действие svaz.php, в которой будет проведен анализ на связь между полученными данными из 1 и 2 таблицы. И в случаи положительного результата будет выведено название компании.
     
  2. olo

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

    С нами с:
    28 апр 2006
    Сообщения:
    272
    Симпатии:
    0
    Памайму в твоем случае будет достаточно сделать запрос по нескольким таблицам. Смотри синтаксис MySQL JOIN
     
  3. leni's

    leni's Активный пользователь

    С нами с:
    19 май 2006
    Сообщения:
    8
    Симпатии:
    0
    Адрес:
    39
    я думаю надо что-то вроде:
    $query = "SELECT * FROM table1, table2 WHERE table1.id=".условия." AND table1.id=table2.id";
    $result = mysql_query($query);
    $num_results = mysql_num_rows($result);
    for ($i=0; $i < $num_results; $i++)
    {
    echo...-выводим что нам надо
    }

    :)
     
  4. <VB>

    <VB> Активный пользователь

    С нами с:
    21 май 2006
    Сообщения:
    9
    Симпатии:
    0
    Адрес:
    Москва
    :)
    id не совпадают из 1 и 2 таблицы. Если они совпадали, я бы тогда сделал одну таблицу и не парился. Так к сведенью, в 1 таблице id=78 ( и может увеличиваться), а во 2 таблице id=32.
     
  5. olo

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

    С нами с:
    28 апр 2006
    Сообщения:
    272
    Симпатии:
    0
    ну поскоку у тебя связь в третьей таблице, делай запрос из трех по условию l_k.id=s_t.Leasing_companies and l_p.id=s_t.Subject_of_leasing
     
  6. dark991

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

    С нами с:
    23 апр 2006
    Сообщения:
    27
    Симпатии:
    0
    Адрес:
    Москва
    У меня вопрос! Как на php 5 вписать код создания базы данных на mysql 5.0
    Раньше было так (php4 - mysql 3)
    PHP:
    А как сейчас. Мне просто необходимо сделать для своего сайта установочный модуль.
    Это даже движок для сайтов будет.... ВОТ Ъ!
     
  7. simpson

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

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    dark991
    Код (Text):
    1. mysql_query('CREATE DATABASE 123');
    более детальную информацию по sql-синтаксису читать тут