За последние 24 часа нас посетили 17654 программиста и 1722 робота. Сейчас ищут 862 программиста ...

составление кода для запроса

Тема в разделе "PHP и базы данных", создана пользователем V-ampire, 10 фев 2012.

  1. V-ampire

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

    С нами с:
    10 фев 2012
    Сообщения:
    24
    Симпатии:
    0
    помогите пожалуйста с составлением кода,
    есть две таблицы(первая t1 вторая t2) :
    idRus word idEng
    1 плюс 1
    2 минус 2

    и idEng word idRus
    1 plus 1
    2 minus 2
    допустим нужно найти перевод слова plus, я представляю это так: нужно сначала из t2 определить idEng соотв слову plus, а потом из t1 получить значение поля word у которого idEng равно полученному из t2.
     
  2. Denis.Y

    Denis.Y Активный пользователь

    С нами с:
    8 авг 2011
    Сообщения:
    145
    Симпатии:
    0
    Адрес:
    Россия, Самарская область
    Код (Text):
    1. SELECT a.word
    2. FROM t1 a
    3. LEFT JOIN t2 b ON b.idEng = a.idEng
    4. WHERE b.word = 'plus'
     
  3. V-ampire

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

    С нами с:
    10 фев 2012
    Сообщения:
    24
    Симпатии:
    0
    А a и b это что?
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    на старый манер, но проще для восприятия

    Код (Text):
    1. SELECT `idRus`, `idEng`, `t1`.`word` AS `rusword`, `t2`.`word` AS `engword` WHERE `t1`.`word` = 'плюс' AND `t1`.`idEng` = `t2`.`idEng`
    но лучше вкурить джоины.

    Добавлено спустя 3 минуты 2 секунды:
    это ему t1 и t2 лениво писать, он их на a и b заменяет. Для краткости. Вроде как краткость, она сестра.
     
  5. V-ampire

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

    С нами с:
    10 фев 2012
    Сообщения:
    24
    Симпатии:
    0
    Выдал ошибку Warning: mysql_query() [http://www.mysql.com/doc]: Unknown column 'plus' in 'where clause'
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    покажи свой запрос =)
     
  7. V-ampire

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

    С нами с:
    10 фев 2012
    Сообщения:
    24
    Симпатии:
    0
    $sql = "
    SELECT $table_1.word
    FROM $table_1
    LEFT JOIN $table_2 ON $table_2.$id_lang = $table_1.$id_lang_1
    WHERE $table_2.word = $search_word"
    $result_2 = mysql_query($sql,$conn);
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    кавычки, братиш
     
  9. V-ampire

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

    С нами с:
    10 фев 2012
    Сообщения:
    24
    Симпатии:
    0
    где кавычки?
     
  10. yuri

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

    С нами с:
    16 янв 2012
    Сообщения:
    288
    Симпатии:
    2
    не кавычки а опострофы :)
    их нет.. а должны быть
     
  11. V-ampire

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

    С нами с:
    10 фев 2012
    Сообщения:
    24
    Симпатии:
    0
    можно написать?))
     
  12. AndreJM

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

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    Чё вы голову морочите опострофами и кавычками? :)
    у него после WHERE нет точки с запятой =)

    Добавлено спустя 1 минуты 0 секунд:
    И, да.. '$search_word'
     
  13. V-ampire

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

    С нами с:
    10 фев 2012
    Сообщения:
    24
    Симпатии:
    0
    Не выводит результат, мож ошибка где?
    $sql = "
    SELECT $table_2.word
    FROM $table_2, $table_1
    WHERE $table_1.$id_lang = $table_2.$id_lang_1 AND $table_1.word = '$search_word'";
    $result_2 = mysql_query($sql,$conn);
    while ($result_word = mysql_fetch_array($result_2)) {
    print"В математике: {$result_word['word']}<br>";
    }
     
  14. AndreJM

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

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    сделай перед своим $result_2:

    Код (Text):
    1.  
    2. print_r($sql);
    и покажи
     
  15. V-ampire

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

    С нами с:
    10 фев 2012
    Сообщения:
    24
    Симпатии:
    0
    plus SELECT rus_math.word FROM rus_math, eng_math_m WHERE eng_math_m.id_eng = rus_math.id_eng_1 AND eng_math_m.word = 'plus'
     
  16. AndreJM

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

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    что за plus впереди? :)

    Добавлено спустя 1 секунд:
    SELECT rus_math.word as word FROM ...
     
  17. V-ampire

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

    С нами с:
    10 фев 2012
    Сообщения:
    24
    Симпатии:
    0
    ну это искомое слово
     
  18. AndreJM

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

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    почему искомое слово попадает в SQL запрос перед SELECT ?
     
  19. V-ampire

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

    С нами с:
    10 фев 2012
    Сообщения:
    24
    Симпатии:
    0
    по идее должен вывести: plus в математике: плюс

    Добавлено спустя 1 минуту 19 секунд:
    да не попадает, оно в самом начале печатается,еще перед запросом
     
  20. AndreJM

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

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    Код (Text):
    1.  
    2. SELECT $table_2.word as word
    мде, экранируй весь свой SQL ``
     
  21. V-ampire

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

    С нами с:
    10 фев 2012
    Сообщения:
    24
    Симпатии:
    0
    хм...щас сделал так чтоб он не русский перевод выводил, а англ(ну т.е. наоборот) все сработало, а с англ на русский не переводит...как так вообще? тот же запрос, просто значения у переменных другие
     
  22. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну че, как дела? родил запрос-то? =)
     
  23. V-ampire

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

    С нами с:
    10 фев 2012
    Сообщения:
    24
    Симпатии:
    0
    отчасти(получается что когда надо перевести с русского на англ переводит, а наоборот нет..хотя принципиальной разницы то нету, можно сказать просто табл местами поменять..я думаю мож изза винды ченить...надо на хосте посмотреть
     
  24. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ошибка-то какая?
     
  25. V-ampire

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

    С нами с:
    10 фев 2012
    Сообщения:
    24
    Симпатии:
    0
    не пишет просто не выводит, прога стопорится на
    while ($result_word = mysql_fetch_array($result)) {
    print"{$result_word['word']}, ";
    }