Как выбрать данные из базы с такими условиями

Тема в разделе "Базы данных", создана пользователем virtualbrest, 30 окт 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. virtualbrest

    virtualbrest

    Регистр.:
    6 май 2007
    Сообщения:
    210
    Симпатии:
    18
    Надеюсь меня не побьют, просто уже устал бороться, никак не получается:

    - есть таблица banner (r примеру), в ней поле id, url, в котором хранится ссылка, начинающаяся с http:// или с https://
    - есть строка

    Воропс - как получить id строки (строка это ссылка), используя только запрос к базе?
    Я пока делаю перебором в цикле, это понятно, после выборки всех ID, но как то неправильно. Реально ли выбрать сразу одним запросом нужный id?
     
  2. megadude

    megadude

    Регистр.:
    6 сен 2006
    Сообщения:
    184
    Симпатии:
    66
    А так?
    SELECT id FROM banner WHERE url='http://...' LIMIT 1
     
  3. virtualbrest

    virtualbrest

    Регистр.:
    6 май 2007
    Сообщения:
    210
    Симпатии:
    18
    Ну так ведь найдет все, что с http:// а задача стоит - откинуть это http:// и проверить на соответствие все, что после http:// с указанной строкой.
     
  4. megadude

    megadude

    Регистр.:
    6 сен 2006
    Сообщения:
    184
    Симпатии:
    66
    Ты не совсем понял :)
    Код:
    WHERE url='http://...' 
    Тут вместо троеточия вписываешь свою строку, которую проверить надо.

    Если же строка без http://, то:
    Код:
    SELECT id FROM banner WHERE url LIKE '%your_url_string' LIMIT 1
     
  5. virtualbrest

    virtualbrest

    Регистр.:
    6 май 2007
    Сообщения:
    210
    Симпатии:
    18
    Ну это было бы просто, если бы не тот факт, что в поле могут быть адреса и без http:// и с https:// . Как вариант есть решение пройти по этой табл, вырезать все http:// и больше их туда не добавлять при внесении, и тогда делать так вот как указано. но что делать с https:// ?
     
  6. megadude

    megadude

    Регистр.:
    6 сен 2006
    Сообщения:
    184
    Симпатии:
    66
    Так для кого написано это ???
    Код:
    SELECT id FROM banner WHERE url LIKE '%your_url_string' LIMIT 1
    И пофиг на все http и https.
     
  7. RolCom

    RolCom

    Регистр.:
    12 мар 2008
    Сообщения:
    351
    Симпатии:
    108
    Код:
    SELECT id FROM `banner` WHERE url REGEXP "^(https?://)?(www\.)?ya.ru$" LIMIT 1
    
    Вот так. Учтет http, https, и www.
     
    virtualbrest нравится это.
  8. virtualbrest

    virtualbrest

    Регистр.:
    6 май 2007
    Сообщения:
    210
    Симпатии:
    18
    Вот именно это я и имел в виду, спасибо. Ну слаб я в регулярных :) А вот тут не ошибка? https? точно ? должен идти после S или же вместо нее?
     
  9. RolCom

    RolCom

    Регистр.:
    12 мар 2008
    Сообщения:
    351
    Симпатии:
    108
    '?' означает что символ, стоящий перед ним может здесь быть, а может и не быть. Когда '?' стоит перед скобками, соответственно не один символ, а все что в скобках.
     
  10. fredis69

    fredis69 Постоялец

    Регистр.:
    25 окт 2008
    Сообщения:
    84
    Симпатии:
    2
    Подскажите пожалуйсто.
    Вот код вывода строк из БД по убыванию:
    ("SELECT id,img,description,date FROM test ORDER BY date DESC, id DESC LIMIT 3",$db);

    Как сделать чтобы при обнавлении страницы из БД выводилась одна строка и при каждом обнавлении страницы выводились разные строки?

    Я хочу использовать эту функцию для показа рекламы на страницах сайта, поэтому мне надо что бы когда пользователь обновит или перейдёт на другую страницу, реклама поменялась.
     
Статус темы:
Закрыта.