LINUX.ORG.RU

SQLite, PHP - надо поправить быдлокод


0

1
$a = sqlite_single_query($db, "SELECT i FROM i2g WHERE g=".$_GET['g'].";");
if (is_array($a)){
		foreach ($a as $j){
				$i2g .= '<a href="?i='.$j.'">'.sqlite_single_query($db, "SELECT isp FROM isp WHERE id=".$j.";")."</a> | ";
}}
elseif ($a) {
		$i2g .= '<a href="?i='.$a.'">'.sqlite_single_query($db, "SELECT isp FROM isp WHERE id=".$a.";")."</a>\n";
}
else {$i2g .= "		<em>Не добавлены</em>\n";}

Получается тьма запросов, что, как говорит мне кэп, не есть хорошо. Многа букаф читать как-то ну совсем лень, простите, лучше кратко/конкретно подскажите.

тебе бы не мешало научиться правилам хорошего форматирования для начала

anonymous
()

>WHERE g=".$_GET['g'].";"

OMG. Bobby Tables will be there.

anonymous
()

Код чего-то ищет, а потом по найденному выводит список ссылок, поделённых между собой символом «|».
А какую задачу ты решал?

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

Terrens
()
Ответ на: комментарий от Terrens

Не совсем представляю как.
Есть два списка - две таблицы (тут только одна из них - isp). Они содержат id, название и еще некоторую информацию.
Объекты одного списка могут связанны с любым количеством объектов из другого, связь регулирует таблица i2g, содержащая id соответствующих объектов.
Собственно данный код выводит ссылки на страницы объектов соответствующих текущему ($_GET['g'] - его id), но текст ссылки должен соответствовать названию каждого объекта - его мы выбираем каждый раз в цикле.
Записать список соответствующих объектов в одну ячейку нельзя т.к. выводить ссылки на страницы объектов надо также и на страницах объектов из другого списка.

Сомневаюсь, но тем не менее надеюсь, что изъяснился понятно.

moscwich
() автор топика
Ответ на: комментарий от anonymous

Сказал же - многа букаф, да и Инглиш - не знаю.

moscwich
() автор топика

NOOOOES!

ты реально пишешь это, или сие есть синтетический пример?

если это настоящая копипаста, то... выпьем валидольчику...
Весь HTML - в шаблоны! Все обращения к БД - в отдельный класс, или хотя бы отдельный файл! Никаких em'ов, рисуюшихся по желанию тут же рядом расположеного if'а!

прости, не смог написать без восклицательных знаков, увиденное ранило меня в глаз ((

stevejobs ★★★★☆
()

этот кусок кода - явный пример случая, когда преимущества языка php превращаются в недостатки

heisenberg ★★
()
Ответ на: комментарий от heisenberg

Этот пример кода - просто нагляднейший пример, что не только в случаях с джангами и рельсами, но и в случае простой разработки «пишу не останавливаясь, лишь бы быстрее, некогда с чем-то сложным разбираться» php ощутимо проигрывает конкурентам.

kid_lester
()
Ответ на: комментарий от stevejobs

Ну, да, это копипаста, однако я согласен с твоими замечаниями, но просто тут не те объемы. Можно же заметить, что вместо echo, например, «$i2g .=», что как бы говорит нам о наличии шаблона.
А тут как ты себе шаблон представляешь? Типа
<a href=<?=$a ?>><?=$b ?></a>
А то у меня даже фантазии не хватает на что-то иное по сабжу. Там правда больше ничего нет.

По сабжу топика можешь подсказать?

moscwich
() автор топика
Ответ на: комментарий от moscwich

в sqlite нельзя писать нечто вроде «where id in {x,y,z}»?

а так посоветовать ничего не могу: во-первых жуткий sqlite, во-вторых я пользуюсь ОРМами, а на то, что генерит Hibernate лучше не глядеть (он иногда пишет портянки запросов на over9000 экранов текста).

stevejobs ★★★★☆
()
Ответ на: комментарий от moscwich

smarty - сойдетошный шаблонизатор

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.