Чем может быть хорош данный вид вывода инфы из базы ( знатоки, пожалуйста оцените )

12
Евгений Иванов
На сайте с 26.07.2006
Offline
272
817

Не суть важно где и как я этот код нашёл, всмысли перерываю сейчас море всего уже и не упомню., и наткнулся впервые на такой вот способ, не понимаю, мне не удобен, но если кто-то сделал то есть шанс что чем то он хорош, подскажите - чем хорош данный способ вывода инфы из базы, и какой способ был бы оптимальный в данной ситуации? Вывод циклом всех записей из базы.


<?
if (isset($_SESSION['user_id'])) {
if ($_SESSION['user_id'] != '') {
mysql_select_db($table) or die(mysql_error());
$query = "SELECT * FROM `user` WHERE id='{$_SESSION['user_id']}'";
$sql = mysql_query($query);
$row = mysql_fetch_assoc($sql);
if ($row['stat'] == "ban") {
exit("Вам доступ закрыт");
}
if ($row['stat'] == "user") {
$login = $row['login'];
echo "$login!

<table id=\"users\" class=\"ui-widget-content\">
<thead>
<tr style=\"width:100%;\" class=\"ui-widget-header\">
<th style=\"width:5%;\"></th>
<th style=\"width:25%;\">URL</th>
<th style=\"width:5%;\">CY</th>
<th style=\"width:5%;\">PR</th>
<th style=\"width:5%;\">Yandex</th>
<th style=\"width:5%;\">Google</th>
<th style=\"width:5%;\">Yahoo</th>
<th style=\"width:15%;\">Обновленёне</th>
<th style=\"width:30%;\">Управление</th>
</tr>
</thead>
<tbody>";
$url = mysql_query("SELECT * FROM `sites` WHERE login_id= {$row['id']} ORDER BY id DESC");
if (!$url) {
echo "Возникла ошибка - ".mysql_error()."<br>";
echo $sql;
exit();
}
$myrow = mysql_fetch_array($url);
$num_com = mysql_num_rows($url);
echo "Сайтов всего: $num_com";
do {
///////////
$info = mysql_query("SELECT * FROM `history` WHERE url_id= {$myrow['id']} ORDER BY id DESC LIMIT 1");
if (!$info) {
echo "<script> alert(\"У вас нет добавленных сайтов!\")</script>";
exit();
}
$myrow_info = mysql_fetch_array($info);
////////////
printf("
<tr class=\"ui-widget-content\">
<td><input type=\"checkbox\"></td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>
<a href=.php?id=%s><b class=\"ui-button ui-state-default \" />1</b>
<a href=.php?url=%s><b class=\"ui-button ui-state-default \" />2</b>
<a href=.php?id=%s><b class=\"ui-button ui-state-default\" />3</b>
</td>
</tr>
", $myrow['url'], $myrow_info['cy'], $myrow_info['PR'], $myrow_info['ya'], $myrow_info['google'], $myrow_info['yahoo'], $myrow_info['date'], $myrow['id'], $myrow['id'], $myrow['id']);
} while ($myrow = mysql_fetch_array($url));
echo "
</tbody>
</table>
";
} else {
echo "Вы не авторизованы!";
}
}
} else {
echo "Ваша сессия уже закончилась. Пожалуйста авторизируйтесь <a href=\"index.php\">ЗДЕСЬ</a>";
}
?>

думаю добавил 18.04.2009 в 23:09

Ах, да, сама соль :) Точней суть вопроса именно в следующей конструкции...

<tr class=\"ui-widget-content\">
<td><input type=\"checkbox\"></td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>
<a href=.php?id=%s><b class=\"ui-button ui-state-default \" />1</b>
<a href=.php?url=%s><b class=\"ui-button ui-state-default \" />2</b>
<a href=.php?id=%s><b class=\"ui-button ui-state-default\" />3</b>
</td>
</tr>
", $myrow['url'], $myrow_info['cy'], $myrow_info['PR'], $myrow_info['ya'], $myrow_info['google'], $myrow_info['yahoo'], $myrow_info['date'], $myrow['id'], $myrow['id'], $myrow['id']);
} while ($myrow = mysql_fetch_array($url));
Wap.Click / Вап.Клик / Я - рядом!
J
На сайте с 02.02.2009
Offline
53
#1
думаю:
Не суть важно где и как я этот код нашёл, всмысли перерываю сейчас море всего уже и не упомню., и наткнулся впервые на такой вот способ, не понимаю, мне не удобен, но если кто-то сделал то есть шанс что чем то он хорош, подскажите - чем хорош данный способ вывода инфы из базы, и какой способ был бы оптимальный в данной ситуации? Вывод циклом всех записей из базы.

думаю добавил 18.04.2009 в 23:09
Ах, да, сама соль :) Точней суть вопроса именно в следующей конструкции...

Ну чего непонятного-то)

Кто-то выводит просто while(...), кто-то делает do-while, кому-то удобнее по привычке с других языков выводить всё printf )

Преимуществ нет никаких имхо)

Skom
На сайте с 02.12.2006
Offline
165
#2

Угу.

Как вариант:


$myrow_info = mysql_fetch_object($info);
////////////
echo("
<tr class=\"ui-widget-content\">
<td><input type=\"checkbox\"></td>
<td>$myrow->url</td>
<td>$myrow->cy</td>
---------------------------- Skipped
");

Просто когда дофига полей можно голову сломать с printf...

Cras amet qui numquam amavit quique amavit cras amet
Евгений Иванов
На сайте с 26.07.2006
Offline
272
#3

Простите, а что это за способов в обще такой, писать сначала

<td>%s</td>

<td>%s</td>

<td>%s</td>

а потом где то внизу ( грубо говоря ) перечеслять поля - $myrow['url'], $myrow_info['cy'], $myrow_info['PR'], $myrow_info['ya'], $myrow_info['google'], $myrow_info['yahoo'], $myrow_info['date'], $myrow['id'], $myrow['id'], $myrow['id']);
} while ($myrow = mysql_fetch_array($url));

embo
На сайте с 05.12.2008
Offline
24
#4

способ как способ, задает форматированный вывод. в данном случае неактуален.

Плавно двигаемся от сапы к статьям (http://miralinks.ru/users/registration/from:4223)
Skom
На сайте с 02.12.2006
Offline
165
#5
думаю:
Простите, а что это за способов в обще такой, писать сначала

Тупо, дело привычки...

Но вообще, при большой нагрузке, любой раскиданный по скрипту stdout не есть гуд.

Посему, лучше всё аггрегировать в переменную, а потом её отдавать. А при этом print/echo не канает ни разу. :D

Евгений Иванов
На сайте с 26.07.2006
Offline
272
#6

Skom,

Skom:
Тупо, дело привычки...
не не не )) со мной как на равных не надо )))

Я не спрашиваю типа ЧТО ЭТО ЗА ФИГНЯ, КАК ТАК МОЖНО :)

Я интересуюсь что это за способ такой, php.net не нашёл, не знаю что спрашивать для того что бы найти вот такой вот вид реализации в документации )))

Я не возмущаюсь или обсираю :) Я интересуюсь :)

Skom
На сайте с 02.12.2006
Offline
165
#7

Ну, это обычный printf http://ru2.php.net/manual/en/function.printf.php

"Где-то внизу" это чисто визуально.

Если сократить, то смысл такой

printf("переменная a=%s, переменная b=%s, переменная c= %s,...", $a,$b,$c,...);

Т.е. %s последовательно присваивается аргументам a,b,c.... и так далее.

Подробнее о формате http://ru2.php.net/manual/en/function.sprintf.php

xant
На сайте с 17.12.2008
Offline
65
#8

Честно говоря, так себе метод. Уж лучше тогда implode использовать.

Эксклюзивные сайты и веб-2.0 приложения под ключ. Дорого.
Евгений Иванов
На сайте с 26.07.2006
Offline
272
#9

xant,ага ) просто интересно стало ))))

Уж чем в этом разбираться лучше сразу на codeigniter перевести =) И проше и быстрей ( для меня как минимум )))

L1f
На сайте с 21.04.2008
Offline
79
L1f
#10
xant:
Честно говоря, так себе метод. Уж лучше тогда implode использовать.

Каким боком implode относится к форматированному выводу?

думаю:
Я интересуюсь что это за способ такой, php.net не нашёл, не знаю что спрашивать для того

Вывод форматированных данных. Пошел еще с С (не С++).

Если задаешь %s - то вставляется строка.

Обычно используется sprintf - формирует строку.

Примеры:


<?php
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money выведет "123.1";
$formatted = sprintf("%01.2f", $money);
// echo $formatted выведет "123.10"
?>

<?php
$number = 362525200;

echo sprintf("%.3e", $number); // выведет 3.63e+8
?>

Подробней тут: http://ru2.php.net/manual/ru/function.sprintf.php

Выбери себе домен по вкусу (http://l1f.ru/domains/)
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий