Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Игнорировать кавычки в массиве
hausedark  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 16
Пользователь №: 41735
На форуме: 1 год, 10 месяцев, 28 дней
Карма:




Здравствуйте, есть код:

<?php
$g = intval($_GET["g"]);
$r = intval($_GET["r"]);
if ($g > 0) {
$q = mysql_query("select name from bd where ind = $g;");
while ($arr = mysql_fetch_array($q)) {
print ($arr["name"]);
}
}
elseif ($title != "") {
print $title;
} else {
print "$pagetitle";
}
?>


Он вытаскивает из БД массив name как он есть, как записан в базе, как можно сделать чтобы он вытаскивал эти данные игнорируя кавычки.

К примеру в ячейки записано: НАПОЛНИТЕЛЬ ДЛЯ КОШАЧЬИХ ТУАЛЕТОВ "PUSSY-CAT" (КОМКУЮЩИЙСЯ) а нужно чтобы в массив попадало это же только без кавычек НАПОЛНИТЕЛЬ ДЛЯ КОШАЧЬИХ ТУАЛЕТОВ PUSSY-CAT (КОМКУЮЩИЙСЯ), как такое можно сделать?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Миша  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2641
Пользователь №: 37963
На форуме: 3 года, 11 месяцев, 12 дней
Карма: 29






--------------------
Принимаю заказы, писать в ЛС
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
hausedark  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 16
Пользователь №: 41735
На форуме: 1 год, 10 месяцев, 28 дней
Карма:




извиняюсь, как это применить в данном коде?)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Миша  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2641
Пользователь №: 37963
На форуме: 3 года, 11 месяцев, 12 дней
Карма: 29




Цитата (hausedark @ 21.05.2016 - 15:35)
извиняюсь, как это применить в данном коде?)

Перейдите по ссылке, там в примерах чётко указано как применять.


--------------------
Принимаю заказы, писать в ЛС
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
hausedark  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 16
Пользователь №: 41735
На форуме: 1 год, 10 месяцев, 28 дней
Карма:




Спасибо, работает
<?php
$g = intval($_GET["g"]);
$r = intval($_GET["r"]);
if ($g > 0) {
$q = mysql_query("select name from bd where ind = $g;");
while ($arr = mysql_fetch_array($q)) {
$search = array('"');
$replace = array('');
print str_replace($search, $replace, $arr["name"]);
}
}
elseif ($title != "") {
print $title;
} else {
print "$pagetitle";
}
?>
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3706
Пользователь №: 38635
На форуме: 3 года, 6 месяцев, 26 дней
Карма: 198




Цитата (Медведь @ 21.05.2016 - 13:30)
str_replace

Молодо... зелено... Сейчас придет Valik (или кто у нас тут ревнивый адепт SQL ) и исполнит с тобой ритуальный свадебный танец :D

hausedark
SELECT REPLACE(name, '"', '') AS name FROM bd WHERE ind = ....


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
hausedark  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 16
Пользователь №: 41735
На форуме: 1 год, 10 месяцев, 28 дней
Карма:




))) Главное что получилось то чего хотел)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3706
Пользователь №: 38635
На форуме: 3 года, 6 месяцев, 26 дней
Карма: 198




Цитата (hausedark @ 21.05.2016 - 14:17)
))) Главное что получилось то чего хотел)

Это первая ступень в посвящение великому говнокоду.

Ты читаешь данные, затем их обрабатываешь в php
Для чего их обрабатывать, если ты их можешь получить уже готовые из базы?

Это у тебя маленький пример, наверняка с парой десятков строк.
А было бы полей штук 20, да записей под миллион, итого, тебе бы нужно было выполнить
20 * 1 000 000 * 3 = ШЕСТЬДЕСЯТ МИЛЛИОНОВ ненужных операций в php


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
hausedark  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 16
Пользователь №: 41735
На форуме: 1 год, 10 месяцев, 28 дней
Карма:




ну там полей 12, записей больше 1кк, обновление базы происходит раз в сутки, кавычки нужны но не везде, т.е. в одном месте правильно с кавычками тянет а в другое место без кавычек
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3706
Пользователь №: 38635
На форуме: 3 года, 6 месяцев, 26 дней
Карма: 198




Цитата (hausedark @ 21.05.2016 - 14:33)
ну там полей 12, записей больше 1кк, обновление базы происходит раз в сутки, кавычки нужны но не везде, т.е. в одном месте правильно с кавычками тянет а в другое место без кавычек

ну вот, следовательно вот этот код
$search  = array('"');
$replace = array('');
str_replace($search, $replace, $arr["name"]);
выполнится 12 000 раз.
Т.е. 36 000 ненужных операций, 24 000 новых переменных, созданных в памяти. (грубо говоря, чтобы наглядность страшнее была)
И все это будет влиять на производительность системы.

Вопрос: нафига?


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Миша  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2641
Пользователь №: 37963
На форуме: 3 года, 11 месяцев, 12 дней
Карма: 29




Цитата (AllesKlar @ 21.05.2016 - 16:06)
Молодо... зелено... Сейчас придет Valik (или кто у нас тут ревнивый адепт SQL ) и исполнит с тобой ритуальный свадебный танец :D
SELECT REPLACE(name, '"', '') AS name FROM bd WHERE ind = ....

Не знал, надобности такой не было. wink.gif


--------------------
Принимаю заказы, писать в ЛС
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
hausedark  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 16
Пользователь №: 41735
На форуме: 1 год, 10 месяцев, 28 дней
Карма:




Цитата (AllesKlar @ 21.05.2016 - 16:42)
ну вот, следовательно вот этот код
$search  = array('"');
$replace = array('');
str_replace($search, $replace, $arr["name"]);
выполнится 12 000 раз.
Т.е. 36 000 ненужных операций, 24 000 новых переменных, созданных в памяти. (грубо говоря, чтобы наглядность страшнее была)
И все это будет влиять на производительность системы.

Вопрос: нафига?

Почему сразу при обновлении базы нельзя все кавычки убрать, то что это и будет название товара, которое должно выводиться в кавычках, а это часть кода для генерации мета тегов, а в них кавычки эти не допустимы, как реализовать это с еще меньшей нагрузкой на vps не знаю, вот к примеру этот сайт на гиговом 2х ядерном Intel Xeon E5 25гб хард, за 500р, с ассортиментом более 1кк товаров sezamshop.ru
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Миша  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2641
Пользователь №: 37963
На форуме: 3 года, 11 месяцев, 12 дней
Карма: 29




Кстати, вот это точно плохо.
while ($arr = mysql_fetch_array($q)) {
$search = array('"');
$replace = array('')


А замена по указанному полю выполнится чуть более 1000 раз


--------------------
Принимаю заказы, писать в ЛС
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
hausedark  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 16
Пользователь №: 41735
На форуме: 1 год, 10 месяцев, 28 дней
Карма:




Цитата (Медведь @ 21.05.2016 - 17:40)
Кстати, вот это точно плохо.
while ($arr = mysql_fetch_array($q)) {
$search = array('"');
$replace = array('')


А замена по указанному полю выполнится чуть более 1000 раз

Вижу что не красиво, много лишних операций, как правильно сделать не имею пока даже представления smile.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Миша  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2641
Пользователь №: 37963
На форуме: 3 года, 11 месяцев, 12 дней
Карма: 29




Цитата (hausedark @ 21.05.2016 - 17:47)
Вижу что не красиво, много лишних операций, как правильно сделать не имею пока даже представления :)

Для начала замени переменные значениями, кавычку можно экранировать символом \

str_replace($search, $replace, $arr["name"]);


--------------------
Принимаю заказы, писать в ЛС
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Ответ в темуСоздание новой темыСоздание опроса