Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вопрос по запросам к базе mysql
 
 автор: tvv123456   (26.09.2009 в 23:59)   письмо автору
 
 

Для осуществления цели мне приходиться 4 раза обращаться к базе данных, причем к одной и той же таблице, но с разными критериями выборки(категории разные). Мне не очень хочеться так часто обращаться к базе. Подскажите можно ли выбрать все строки таблицы, а потом уже не обращаясь к базе делать конкретную выборку?

Кусок кода:

<?php 
<p><font size="+1">Тема 1</font><br />
// дальше идут подтемы(это только кусок кода)
$result=mysql_query("select * from cena where cat='1'",$db);
$row=mysql_fetch_array($result);
do
{
?>
<font style="margin-left:40px;"><input name="diza" type="radio" value="<?php echo $row['cena']; ?>" /> <?php echo $row[name]; ?></font><br />
<?php 
}
while(
$row=mysql_fetch_array($result));
?>
</p>


<p><font size="+1">Тема 2</font><br />
// отличие от первой в запросе cat=2
<?php 
$result
=mysql_query("select * from cena where cat='2'",$db);
$row=mysql_fetch_array($result);
do
{
?>
<font style="margin-left:40px;"><input name="diza" type="radio" value="<?php echo $row['cena']; ?>" /> <?php echo $row[name]; ?></font><br />
<?php 
}
while(
$row=mysql_fetch_array($result));
?>
</p>

<p><font size="+1">Тема 3</font><br />

<?php 
$result
=mysql_query("select * from cena where cat='3",$db);
$row=mysql_fetch_array($result);
do
{
?>
<font style="margin-left:40px;"><input name="diza" type="radio" value="<?php echo $row['cena']; ?>" /> <?php echo $row[name]; ?></font><br />
<?php 
}
while(
$row=mysql_fetch_array($result));
?>
</p>


А вместо этих 3-х запросов к базе сделать нечто такое:

$result=mysql_query("select * from cena",$db); // выбираем все строки нужной таблицы
$row=// и сюда загнать уже нужные строки из переменной $result но так чтобы можно было выполнить цикл


Заранее спасибо и приношу извинения за корявость изложения мыслей

  Ответить  
 
 автор: ride   (27.09.2009 в 00:12)   письмо автору
 
   для: tvv123456   (26.09.2009 в 23:59)
 


<p>
<?php 
// дальше идут подтемы(это только кусок кода)
$result=mysql_query("select * from cena where cat in (1,2,3) order by cat",$db);
$cat=0;
while(
$row=mysql_fetch_assoc($result)){
      if(
$cat!=$row['cat']){
           if(
$cat!=0) echo '</p><p>';
           
$cat=$row['cat'];
           echo
'<font size="+1">Тема '.$cat.'</font><br />';
      }
      echo
'<font style="margin-left:40px;"><input name="diza" type="radio" value="'.$row['cena'].'" />'$row['name'].'</font><br />';
}
?>
</p> 

  Ответить  
 
 автор: tvv123456   (27.09.2009 в 00:24)   письмо автору
 
   для: ride   (27.09.2009 в 00:12)
 

Спасибо большое получилось даже лучше чем я хотел, можно значительно упростить код :)))))

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования