[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Игнорировать кавычки в массиве
Страницы: 1, 2
hausedark
Здравствуйте, есть код:

<?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 (КОМКУЮЩИЙСЯ), как такое можно сделать?
Миша
str_replace

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

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

_____________
Принимаю заказы, писать в ЛС
hausedark
Спасибо, работает
<?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";
}
?>
AllesKlar
Цитата (Медведь @ 21.05.2016 - 13:30)
str_replace

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

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


_____________
[продано копирайтерам]
hausedark
))) Главное что получилось то чего хотел)
AllesKlar
Цитата (hausedark @ 21.05.2016 - 14:17)
))) Главное что получилось то чего хотел)

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

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

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

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

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

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

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

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

_____________
Принимаю заказы, писать в ЛС
hausedark
Цитата (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
Миша
Кстати, вот это точно плохо.
while ($arr = mysql_fetch_array($q)) {
$search = array('"');
$replace = array('')


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

_____________
Принимаю заказы, писать в ЛС
hausedark
Цитата (Медведь @ 21.05.2016 - 17:40)
Кстати, вот это точно плохо.
while ($arr = mysql_fetch_array($q)) {
$search = array('"');
$replace = array('')


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

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

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

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


_____________
Принимаю заказы, писать в ЛС
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.