[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с массивами [2]
feniks_iopok
В моей предыдущей теме было сказано, что обращаться к базе из цикла не есть хорошо, я все осознал, но переделать не получается, опыта маловато в работе с массивами в пхп. Может кто помочь оптимизировать вот такой код..?

	<?php if($menu_item) {

echo "<div style=\"width: 1000px; margin: 0 auto; padding: 0; \">";
$k=1;
for($i=1;$i<=$id_max;$i++) {
$temp = mysql_query("SELECT `type_3` FROM `main_bd` WHERE `id`='".$i."'");
$temp = mysql_result($temp,0);
if( $temp == $menu_item) {
$temp = mysql_result(mysql_query("SELECT `title` FROM `main_bd` WHERE `id`='".$i."'"),0);
$price = mysql_result(mysql_query("SELECT `price` FROM `main_bd` WHERE `id`='".$i."'"),0);
if ( $k%5 == 1 ) {
echo "<div class=\"box_left\" title=\"".$temp."\">";
}
if ( $k%5 == 0 ) {
echo "<div class=\"box_right\" title=\"".$temp."\">";
}
if ( ($k%5 > 1) && ($k%5 < 5) ) {
echo "<div class=\"box\" title=\"".$temp."\">";
}
$k++;
echo "<p class=\"box_title\">".$temp."</p><span class=\"box_img\" style=\"background-image: url('http://animeshopping.org/images/sale/".$i.".jpg'); background-size: cover;\"></span><p class=\"p_price\">Цена с доставкой: ".$price." рублей</p></div>";
}
}


echo "</div>";
} ?>

буду очень признателен...



Спустя 8 минут, 35 секунд (22.03.2012 - 22:40) Игорь_Vasinsky написал(а):
$sql = "SELECT * FROM `main_bd`";
$query = mysql_query($sql);

if(mysql_num_rows($query))
while($row = mysql_fetch_assoc($query))
$myArr[] = $row;


echo '<pre>' . print_r($myArr, 1) . '</pre>';

Спустя 6 минут, 11 секунд (22.03.2012 - 22:46) feniks_iopok написал(а):
Игорь_Vasinsky
спасибо! стало понятнее)

Спустя 1 минута, 38 секунд (22.03.2012 - 22:48) feniks_iopok написал(а):
а как оформить условие?
так ведь не правильно?
			if( myArr[id=>$i] == $menu_item) 

Спустя 2 минуты, 47 секунд (22.03.2012 - 22:51) Игорь_Vasinsky написал(а):
с массивами работают уже в цикле

т.е. был 2умерный, разберём его на множество одномерных

foreach($myArr as $key=>$value)
{
echo '<pre>' . print_r($value, 1) . '</pre>';
}


и тут уже и условия и сравнения и всё что хошь.

Спустя 15 минут, 22 секунды (22.03.2012 - 23:06) feniks_iopok написал(а):
все равно не догоняю как условие оформить(

пока что так сделал..
<?php if($menu_item) {




$sql = "SELECT * FROM `main_bd`";
$query = mysql_query($sql);

if(mysql_num_rows($query))
while($row = mysql_fetch_assoc($query))
$myArr = $row;


echo "<div style=\"width: 1000px; margin: 0 auto; padding: 0; \">";
$k=1;
for($i=1;$i<=$id_max;$i++) {
if("значение в поле type_3" == $menu_item) {

if ( $k%5 == 1 ) {
echo "<div class=\"box_left\" title=\"".print_r($myArr[title],1)."\">";
}
if ( $k%5 == 0 ) {
echo "<div class=\"box_right\" title=\"".print_r($myArr[title],1)."\">";
}
if ( ($k%5 > 1) && ($k%5 < 5) ) {
echo "<div class=\"box\" title=\"".print_r($myArr[title],1)."\">";
}
$k++;
echo "<p class=\"box_title\">".print_r($myArr[title],1)."</p><span class=\"box_img\" style=\"background-image: url('http://animeshopping.org/images/sale/".$i.".jpg'); background-size: cover;\"></span><p class=\"p_price\">Цена с доставкой: ".print_r($myArr[price],1)." рублей</p></div>";
}
}


echo "</div>";
} ?>

Спустя 50 секунд (22.03.2012 - 23:07) feniks_iopok написал(а):
if("значение в поле type_3" == $menu_item) {

не понимаю как сделать

Спустя 6 минут, 41 секунда (22.03.2012 - 23:14) Игорь_Vasinsky написал(а):
Цитата
print_r($myArr[title],1)


полная ахинея... я тебе вывод массива так показывал

Достаточно
$myArr['title']


у тя что $myArr содержит - покажи

Спустя 4 минуты, 42 секунды (22.03.2012 - 23:18) feniks_iopok написал(а):
такой код
$sql = "SELECT * FROM `main_bd`";
$query = mysql_query($sql);

if(mysql_num_rows($query))
while($row = mysql_fetch_assoc($query))
$myArr = $row;
echo '<pre>' . print_r($myArr, 1) . '</pre>';

выводит

Array
(
[id] => 72
[title] => Брелок Kingdom Hearts
[type_1] => 2
[type_2] =>
[type_3] => 4
[view_count] => 0
[link] => http://www.ebay.com/itm/Kingdom-Hearts-Key-Ring-Chain-Cosplay-Brand-New-/220940159947?pt=LH_DefaultDomain_0&hash=item33710f4bcb#ht_4381wt_1163
[price] => 300
)

72 - последняя запись в базе

Спустя 1 минута, 18 секунд (22.03.2012 - 23:20) Игорь_Vasinsky написал(а):
я же выше исправил
$myArr = $row;


на

$myArr[] = $row;


у тя ве строчки запишуться в этот массив

Спустя 47 секунд (22.03.2012 - 23:21) m4a1fox написал(а):
feniks_iopok
Цитата
72 - последняя запись в базе

И таки он правильно выводит!

Спустя 18 секунд (22.03.2012 - 23:21) feniks_iopok написал(а):
теперь все записи из базы выводит

Спустя 4 минуты, 53 секунды (22.03.2012 - 23:26) Игорь_Vasinsky написал(а):
я тебе показал как с foreach работать, там у тя и $value['id'] и $value['что те надо']

в чё проблема?

Спустя 6 минут, 15 секунд (22.03.2012 - 23:32) feniks_iopok написал(а):
все, сделал. Спасибо!
долго доходило, что форэйч надо вместо цикла использовать, еще раз спасибо!

Спустя 4 минуты, 14 секунд (22.03.2012 - 23:36) Игорь_Vasinsky написал(а):
wink.gif


_____________
есть сайт, 3-4к уников в сутки. зарабатываю 100 рублей в день, почему так мало?
Быстрый ответ:

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