[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ну нифига не пойму как надо !!!!!
nooby
Не знаю РНР вообще, но как и все хочу знать. Осваивать начал с подачи товарища - ему нужна помощь в поддержке сайта, вот и сижу с ним копаюсь, прозреваю. Споткнулся на такой штуке: есть index.php в который выглядит так:

<?
session_start();
include "../header.php";
db_connect();
?>
<table border="0" cellspacing="0" cellpadding="0" width=100%>
<tr>
<td >
<?
if($_GET['cat']){
$res=mysql_query("select name from oem_models where id='".addslashes($_GET['model'])."'");
$mod=mysql_fetch_array($res);
$res=mysql_query("select val from oem_years where id='".addslashes($_GET['year'])."'");
$yea=mysql_fetch_array($res);
$res=mysql_query("select name, filename from oem_cats where id='".addslashes($_GET['cat'])."'");
$cc=mysql_fetch_array($res);
?>
<table width="100%" cellpadding="0">
<tr>
<td valign="top" class=mal>
<b><?=$cc['name']?> (ìîäåëü <?=$mod['name']?> <?=$yea['val']?> ãîäà)</b><br>
<img src="../oem/images/<?=$cc['filename']?>" border=0><br>
<br><br>
<table cellpadding="3" cellspacing="2" width=100%>
<tr>
<td bgcolor=#f2f2f2 align=center><b>Íîìåð</b></td><td bgcolor=#f2f2f2 align=center><b>Íàçâàíèå</b></td><td bgcolor=#f2f2f2 align=center><b>Ñåðèéíûé íîìåð</b></td><td bgcolor=#f2f2f2 align=center><b>Ñòàðàÿ öåíà</b></td><td bgcolor=#f2f2f2 align=center><b>Öåíà</b></td><td bgcolor=#f2f2f2 align=center><b>Íàëè÷èå</b></td><td></td>
</tr>
<?
$res=mysql_query("select * from oem_goods where cat='".addslashes($_GET['cat'])."'");
while($row=mysql_fetch_array($res)){
?>

<tr>
<td bgcolor=#f2f2f2 align=center><?=$row['number']?></td><td bgcolor=#f2f2f2 align=center><?=viv2($row['name'])?></td><td bgcolor=#f2f2f2 align=center><?=viv2($row['serial'])?></td><td bgcolor=#f2f2f2 align=center><?=round($row['oldprice']/$_SESSION['val_kurs'],2)?> <?=viv2($_SESSION['val_name'])?></td><td bgcolor=#f2f2f2 align=center><?=round($row['price']/$_SESSION['val_kurs'],2)?> <?=viv2($_SESSION['val_name'])?></td><td bgcolor=#f2f2f2 align=center><?if($row['nal']) echo "Åñòü"; else echo "Íåò";?></td><td bgcolor=#f2f2f2 align=center><a href="../addtochart.php?id=<?=$row['id']?>&type=3"><b>Äîáàâèòü â êîðçèíó</b></a></td>
</tr>
<?
}
?>

</table>
</td>
</tr>
</table>
<?
}
?>
<?
include "../mainfooter.php"
?>


Как уже поняли профи, этот скрипт показывает страничку с таблицей, представляющей выборку SQL запроса из БД. Но вся соль, что выборка не упорядочена. Я так понял, что табличка рисуется следующей строкой:

$res=mysql_query("select * from oem_goods where cat=' order by number".addslashes($_GET['cat'])."'");
while($row=mysql_fetch_array($res))

логично (по моему дилетантскому мнению) для решения проблемы сортировки строк было бы написать так:

$res=mysql_query("select * from oem_goods where cat=' order by number".addslashes($_GET['cat'])."'");
while($row=mysql_fetch_array($res))

где number - необходимое поле таблицы. Однако увы и ах, такой скрипт не работает и ничего не возвращает.
Отцы, подскажите как поступить. Я на перепутье unsure.gif



Спустя 18 минут, 24 секунды (21.01.2009 - 02:19) jetistyum написал(а):
1. По теме:
а) Выноси запрос в отдельную переменную, так будет проще работать
PHP
query "select.....";
mysq_query($query);

....
б) Сам запрос составлен не верно:
PHP
$cat addslashes($_GET['cat']);


SQL
"SELECT * FROM `oem_goods` WHERE `cat`= '".$cat."' ORDER BY `number`";


Сначала WHERE cat = $cat , а потом уже ORDER BY

советую почитать справочники или учебники по SQL

а еще дабы не заниматься быдлокоддингом ( смешивание HTML и PHP ) почитай о шаблонах .... я лично использую во всех проектах Smarty (http://Smarty.net)

Спустя 1 час, 48 минут, 48 секунд (21.01.2009 - 04:08) nooby написал(а):
Приогромнейшее спасибо!!!!
Буду постигать эту архиполезную тему!
А по поводу систематизации, тут Вы бесспорно правы. Надо с самого начала всё делать правильно, чтоб потом не сушить мозги. smile.gif

Спустя 3 часа, 38 минут, 32 секунды (21.01.2009 - 07:46) Sylex написал(а):
вместо addslashes лучше использовать mysql_real_escape_string
Быстрый ответ:

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