[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запросы в mysql (можно ли сделать меньше ?)
okapo
Имеется вот такие запросы
$id1 = mysql_fetch_assoc(mysql_query("SELECT * FROM `tb_config` WHERE id='1'"));
$id2 = mysql_fetch_assoc(mysql_query("SELECT * FROM `tb_config` WHERE id='2'"));
$id3 = mysql_fetch_assoc(mysql_query("SELECT * FROM `tb_config` WHERE id='3'"));
$id4 = mysql_fetch_assoc(mysql_query("SELECT * FROM `tb_config` WHERE id='4'"));



вот тут все данные в одной таблице, как можно тут сделать всё это в один запрос только при этом еще было возможно читать указанную строку( указанный ID ) по указанной ичейке



Спустя 25 минут, 4 секунды (10.05.2011 - 09:39) silius написал(а):

// если нужны только эти id
$sqlquery = mysql_query("SELECT * FROM tb_config WHERE id IN(1,2,3,4)");

// если все данные из таблицы, то:
// $sqlquery = mysql_query("SELECT * FROM tb_config");


$config_id = array();
while($result = mysql_fetch_assoc($sqlquery))
{
// тут перебираешь и записываешь данные в массив
// к примеру:


$config_id[] = $result['id_config'];
//...
}

// а тут можно вызвать к примеру третий id
echo $config_id[2];

Спустя 11 минут, 21 секунда (10.05.2011 - 09:50) okapo написал(а):
вот мне тут еще это написали только вот не знаю
$ids = mysql_fetch_assoc(mysql_query("SELECT * FROM `tb_config` WHERE id IN (1, 2, 3) ORDER BY id;"));
echo $ids[1]->some_colum;


только тоже не понимаю как выводить

вот структура таблицы

id
item
price
howmany
discount
visible

так вот как сделать вопрос

вывод информации из item по id строки номер 6

вот никак не понимаю как сделать выручайте пожалуста а то на странице так получается более 20 запросов только из данной таблицы

Спустя 16 минут, 40 секунд (10.05.2011 - 10:07) silius написал(а):
Смотри, если тебе нужно вытащить все данные из таблицы, тебе не нужно писать WHERE в запросе, если наоборот, то:

// к примеру нужно вытянуть строку из таблицы по id = 6
$sqlquery = mysql_query("SELECT item FROM tb_config WHERE id = 6");

// если вытаскиваешь одну строку из таблицы, то цикл не нужен
$result = mysql_fetch_assoc($sqlquery);

// и здесь уже можно вывести item - мы её вытаскивали - "SELECT item FROM ..."
echo $result['item'];

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

Спустя 8 минут, 4 секунды (10.05.2011 - 10:15) okapo написал(а):
так в первой теме там так и сделанно

echo $ads1['item'];
echo $ads2['item'];
echo $ads3['item'];
echo $ads4['item'];

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


надо мне все как есть вот так выводить как в посте только как то сложить в один если канешн возможно


Спустя 19 минут, 10 секунд (10.05.2011 - 10:34) silius написал(а):
не совсем тебя понял, если надо вывести подряд данные, то в цикле ставь

while(...)
{
echo $result['item'].'<br>';
}

так они у тебя выведутся столбиком, но лучше echo в цикле не использовать, а делать так:

$var = '';
while(...)
{
$var .= $result['item'].'<br>';
}

// а после цикла вывести переменную
echo $var;

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

Спустя 7 минут, 57 секунд (10.05.2011 - 10:42) okapo написал(а):
попробую через часик, отпишусь

Спустя 2 часа, 4 минуты, 28 секунд (10.05.2011 - 12:47) okapo написал(а):
$sqlquery = mysql_query("SELECT * FROM ads_config");

$var = '';
while($result = mysql_fetch_assoc($sqlquery))
{
$var .= $result['item'].'<br>';
}

// а после цикла вывести переменную
echo $var;


а как тут выбрать строку ? а то выводит все из масива

Спустя 8 минут, 13 секунд (10.05.2011 - 12:55) silius написал(а):
если тебе надо определённую строку, то можно поставить условие:

// ...
while($result = mysql_fetch_assoc($sqlquery))
{
if($result['id'] == 2)
$var1 = $result['item'];
else
$var .= $result['item'].'<br>';
}

// а после цикла вывести переменную
echo $var;
echo $var1;


но я бы записывал всё в массив, а потом уже выводил где нужно, НО это как тебе удобней, а также зависит от поставленной задачи

Спустя 7 минут (10.05.2011 - 13:02) okapo написал(а):
Цитата (silius @ 10.05.2011 - 09:55)
если тебе надо определённую строку, то можно поставить условие:

// ...
while($result = mysql_fetch_assoc($sqlquery))
{
if($result['id'] == 2)
$var1 = $result['item'];
else
$var .= $result['item'].'<br>';
}

// а после цикла вывести переменную
echo $var;
echo $var1;


но я бы записывал всё в массив, а потом уже выводил где нужно, НО это как тебе удобней, а также зависит от поставленной задачи

а как после сделать ?

Спустя 5 минут, 20 секунд (10.05.2011 - 13:07) silius написал(а):
я же тебе написал почти все варианты. посмотри, разбери и сделай что тебе нужно, эксперементируй smile.gif потому что я так и не понял что тебе конкретно нужно

Спустя 6 минут, 59 секунд (10.05.2011 - 13:14) okapo написал(а):
$serf=mysql_fetch_assoc(mysql_query_sum("SELECT * FROM `config` WHERE id='6'"));

$aserf=mysql_fetch_array(mysql_query_sum("SELECT item,price,price2,price3,discount,visible FROM config WHERE id='7'"));

$advert=mysql_fetch_array(mysql_query_sum("SELECT item,price,discount,visible FROM config WHERE id='2'"));

$context=mysql_fetch_assoc(mysql_query_sum("SELECT * FROM `config` WHERE `id`='1'"));


вот мой примерные запросы

теперь вот вывод

            <table width="100%" border="0" cellspacing="0" cellpadding="0">
<
tr>
<
th><?=$lang['ADS_CHOSE']?></th>
<
th><?=$lang['ADS_PRICE']?></th>
<
th><?=$lang['ADS_DISCOUNT']?></th>
<
th width="110" class="ac"><?=$lang['ADS_AVIABLE']?></th>
</
tr>
<
tr>
<
td><h3><a href="?s=ads&ord=serf"><?=$lang['DYN_TITLE']?></a></h3></td>
<
td align="center"><?=$price[t_5]?> - <?=$price[t_60]?> <?=$vn?> за переход</td>
<
td align="center"><?php if($serf["discount"]=="yes") { echo "<font color='green'><b>".$lang['YES']."</b></font>"; } else { echo "<font color='red'><b>".$lang['NO']."</b></font>"; } ?></td>
<
td align="center"><?php if($serf["visible"]=="on") { echo "<font color='green'><b>".$lang['YES']."</b></font>"; } else { echo "<font color='red'><b>".$lang['NO']."</b></font>"; } ?></td>
</
tr>
<
tr>
<
td><h3><a href="?s=ads&ord=serf"><?=$lang['SERF_TITLE']?></a></h3></td>
<
td align="center"><?=$sprice[t_5]?> - <?=$sprice[t_60]?> <?=$vn?> за переход</td>
<
td align="center"><?PHP if($serf["discount"]=="yes") { echo "<font color='green'><b>".$lang['YES']."</b></font>"; } else { echo "<font color='red'><b>".$lang['NO']."</b></font>"; } ?></td>
<
td align="center"><?PHP if($aserf["visible"]=="on") { echo "<font color='green'><b>".$lang['YES']."</b></font>"; } else { echo "<font color='red'><b>".$lang['NO']."</b></font>"; } ?></td>
</
tr>
</
table>



вот примерно так у меня работает, только мне не надо ставить все это в масиве

это только кусок

и то что я хочу html не трогать а sql запросы делать в 1

Спустя 30 минут, 21 секунда (10.05.2011 - 13:45) okapo написал(а):
идти мне по этой скеме ?

$sqlquery = mysql_query("SELECT * FROM ads_config");

while($result = mysql_fetch_assoc($sqlquery))
{
if($result['id'] == 1) {
$serf_disc .= $result['discount'];
$serf_visible .= $result['visible'];
}
if($result['id'] == 2) {
$serfa_disc .= $result['discount'];
$serfa_visible .= $result['visible'];
}
if($result['id'] == 3) {
$adv_price .= $result['price'];
$adv_disc .= $result['discount'];
$adv_visible .= $result['visible'];
}

}


Быстрый ответ:

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