[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Набросал меню, такое приемлемо?
artarx
Здравствуйте, написал Меню, которое берет данные из базы MySQL и выстраивает их. Хотелось бы узнать приемлем ли такой код, и как его можно сделать более правильным, красивым и компактным, в php новичок и не знаю разных тонкостей. Спасибо.


<ul id="menu">

<?php
$result = mysql_query ("SELECT category FROM categories",$db);

$myrow = mysql_fetch_array ($result);

do {
$category = $myrow["category"] ;
printf ("<li><a href='#'> %s </a>", $category);
?>
<ul>
<?php

$result2 = mysql_query("SELECT COUNT(*) FROM goods WHERE category='$category'",$db);
$myrow2 = mysql_fetch_array($result2);
$total=$myrow2[0];
for($i = 1; $i<=$total; $i++){
$companys[$i] = 'Ноль';
}

$result3 = mysql_query ("SELECT company FROM goods WHERE category='$category'",$db);
$myrow3 = mysql_fetch_array ($result3);
$number = 1;
$repeat = 0;
do{
for($i = 1; $i<=$number; $i++){
$company = $myrow3['company'];
if($company == $companys[$i]) {$repeat++;
}
}

if($repeat ==0){
$result2 = mysql_query("SELECT COUNT(*) FROM goods WHERE company='$company' and category='$category'",$db);
$myrow2 = mysql_fetch_array($result2);
$total=$myrow2[0];
printf ("<li><a href='view_goods.php?company=%s&category=%s'>%s(%s)</a></li>",$company,$category, $company,$total);
$companys[$i] = $myrow3['company'];
}


$number++;
$repeat = 0;
}
while ($myrow3 = mysql_fetch_array ($result3));
?>

</ul>
</li>
<?

}

while ($myrow = mysql_fetch_array ($result));
?>
</ul>





Спустя 1 час, 16 минут, 49 секунд (20.05.2011 - 03:15) Basili4 написал(а):
Нет 1. Попов Детекд
Цитата
$myrow = mysql_fetch_array ($result);

do {

http://phpforum.su/index.php?showtopic=32799&hl= Там рассказано Как правильно выводить информацию из базы.

2. скуль запросы должны быть отдельно

3. Представление должно быть отдельно

Спустя 2 часа, 50 минут, 1 секунда (20.05.2011 - 06:05) inpost написал(а):
artarx
Добро пожаловать в мою подпись smile.gif

Спустя 6 часов, 21 минута, 27 секунд (20.05.2011 - 12:26) artarx написал(а):
biggrin.gif Ну "молодцом" я себя не считаю)) да и толком его курсы не проходил, а так спасибо за советы)

Спустя 4 минуты, 43 секунды (20.05.2011 - 12:31) linker написал(а):
Это хорошо, что толком на его курсы не ходил, у тебя больше шансов побыстрее переучиться в правильном русле.

Спустя 3 дня, 8 часов, 20 минут, 14 секунд (23.05.2011 - 20:51) artarx написал(а):
На сколько опасно так передавать переменные ???

print '<li><a href="view_goods.php?company='.htmlspecialchars($company).'&category='.htmlspecialchars($category).'"title="'.htmlspecialchars($company).'">'.htmlspecialchars($company).'('.htmlspecialchars($total).')</a></li>';




Файл который их принимает выглядит так.
<?PHP
$db = mysql_connect ("localhost","root","");
mysql_select_db("menu",$db);
if($db) {echo "Соединение с базой установлено<br>";}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<
html>
<
head>
<
link href="style.css" rel="stylesheet" type="text/css">
</
head>
<
body>



<?php

$result = mysql_query ("SELECT model,img,price
FROM goods
WHERE company='
$company' and category='$category'",$db);


while ($myrow = mysql_fetch_assoc ($result))
{
$model = $myrow['model'];
$imgsrc = $myrow['img'];
$price = $myrow['price'];
?>

<div id="tovar">
<
div id="img"> <img src="<?php echo $imgsrc ?>" width="70" height="100"></div>
<
div id="company"><?php echo $company ?> <?php echo $model ?></div>
<
div id="model">Цена <?php echo $price ?> руб.</div>

</
div>


<?php
}
?>


</body>
</
html>

Спустя 2 часа, 7 минут, 49 секунд (23.05.2011 - 22:59) sebastjan написал(а):
Я не профи но посуди сам, ты формируешь линк ,преобразуешь в нём переменные, это не обезопасит отиньекции , потому что на стороне сервера в запросе к БД ты не предохраняешься.
---------------------------------------------
 mysql_real_escape_string 


И ещё, какой смысл так формировать линк, если его любой всё одно может в гет запрсе подменить.
Смотри на данные входящие.

Спустя 5 минут, 51 секунда (23.05.2011 - 23:05) sebastjan написал(а):
Цитата (linker @ 20.05.2011 - 09:31)
Это хорошо, что толком на его курсы не ходил, у тебя больше шансов побыстрее переучиться в правильном русле.

Лучше курсы чем этот форум я себе и представить не могу.
Быстрый ответ:

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