webForumDet fria alternativet
Logga in / Bli medlem

Loop med kategorier

PHP

6 svar · 457 visningar · startad av mhedda

Medlem sedan feb. 2000385 inlägg
Trådstart#1

Hejsan!
Jag har blivit alldeles snurrig på denna kod.
Jag vill att det skall visas 3 st produkter i rad <td> och det FUNKAR
men sen till varje rad så skall det finnas en tabell omkring som det visas en överskrift med kategorinamn samt längst ned i tabellen skall det finnas en länk till fler av produkter som hör till denna kategori.
Hur göra?
Första loopen så blir det varken överskrift eller länk längst ned på.
den andra loopen blir det överskrift men ingen länk längst ned på.
den tredje loopen blir det överskrift och länk längst ned på

//Show products mainPage
function showProdStart($doId){
		// This function will list all of the tbl_items
		// from the tbl_items table. Each item will have
		// a link to add it to the cart
		global $begin,$end;
		$begin=0;
		$end=3;
		openConn();
		$resultTop = mysql_query("select * from tbl_items inner join tbl_category on tbl_items.itemCatId = tbl_category.catId where tbl_items.itemStat='2' order by tbl_items.itemName AND tbl_items.itemCatId DESC");
		$result = mysql_query("select * from tbl_items inner join tbl_category on tbl_items.itemCatId = tbl_category.catId where tbl_items.itemStat='2' order by tbl_items.itemName AND tbl_items.itemCatId DESC");
		$rowTop = mysql_fetch_row($resultTop);
		$catIdTop=$rowTop[0];
		$itemCatNameTop=$rowTop[10];
		$catIdTest="";

  echo
  "	<table width='385' cellspacing='0' cellpadding='0' border='0'>
		<tr>
			<td valign='top'></td>
		</tr>
		<tr>
			<td>

		";
			while($row = mysql_fetch_array($result))
			{
				
				$itemCatName=$row['categoryName'];
				$catId=$row['catId'];
				
				if(($begin == $end)&&($catIdTest != $row["catId"])) { 
					echo" 
					</tr>
					</table>
					
					<table border='0' cellpadding='0' cellspacing='0' width='385'>
					<tr bgcolor='#A70E0E' height='30'>
						<td background='img/gifs/box_topleft.gif' width='10'></td>
						<td background='img/gifs/box_topmiddle.gif'><span class='headerOrder'>&nbsp; ".$itemCatName."  &nbsp; </span></td>
						<td background='img/gifs/box_topright.gif' width='10'></td>
					</tr>
				</table>
			<table class='orderTableBottom' width='385' cellspacing='0' cellpadding='2' border='0'>
				<tr> 
					"; 
					$begin = 0; 
					}
						echo "
							<form name='adItem' method='post' action='".$_SERVER["PHP_SELF"]."'>
								<td class='bluttBlack' align='center' bgcolor='' colspan='4'  height='10' valign='top'>
								<a class='menu' href='".$_SERVER["PHP_SELF"]."?action=show_prodDesc&id=".$doId."&itemIdShow=".$row['itemId']."'><img src='img/itemImgThumb/".$row['itemImg']."' alt='Mer information' border='0'></a>
								<br>".$row['itemPrice']." kr
								<div valign='bottom'><input class='inputQtyChoise' maxlength='4' type='hidden' name=itemProduct[".$row['itemId']."] value=1></div><br>
								<div valign='bottom'><input type ='image' src='img/gifs/buy.gif' class='butClass' onMouseOver='selOn(this)' onMouseOut='selOff(this)' onMouseDown='selDown(this)' onMouseUp='selUp(this)' border'0'></div><br>
								<input type='hidden' name='action' value='add_item'>
								<input type='hidden' name='id' value='".$doId."'>
								<a class='menu' href='".$_SERVER["PHP_SELF"]."?action=show_prodDesc&id=".$doId."&itemIdShow=".$row['itemId']."'>".$row['itemName']."\n</a><br>
								</td>
							</form>
							";
					if(($begin == $end)&&($catIdTest != $row["catId"])) { 
						echo " 
						</tr>
						</table> 
						<table border='0' cellpadding='0' cellspacing='0' width='385'>
						<tr bgcolor='#A70E0E' height='30'>
						<td background='img/gifs/box_downLeft.gif' width='10'></td>
						<td background='img/gifs/box_downMiddle.gif' width='' align='right'><span class='footerOrderSmall'>&nbsp; <a class='footerMenu' href='".$_SERVER["PHP_SELF"]."?action=showPageById&id=2&catId=".$catId."'>Visa fler ".$itemCatName." &raquo;&nbsp;</a>gffgffgfgf</span></td>
						<td background='img/gifs/box_downRight.gif' width='10'></td>
						</tr>
						</table> 
						"; 
						$begin = 0; 
					} 

   						$begin++; 
						$catIdTest=$row['catId'];
				}		
			 echo "
			 </table>
			 			<table border='0' cellpadding='0' cellspacing='0' width='385'>
						<tr bgcolor='#A70E0E' height='30'>
						<td background='img/gifs/box_downLeft.gif' width='10'></td>
						<td background='img/gifs/box_downMiddle.gif' width='' align='right'><span class='footerOrderSmall'>&nbsp; <a class='footerMenu' href='".$_SERVER["PHP_SELF"]."?action=showPageById&id=2&catId=".$catId."'>Visa fler ".$itemCatName." &raquo;&nbsp;</a></span></td>
						<td background='img/gifs/box_downRight.gif' width='10'></td>
						</tr>
						</table> 
			 
			<table width='385' cellspacing='0' cellpadding='0' border='0'>
			 <tr>
				<td align='left' valign='bottom' width='100%' height='25' colspan='3'>
					<div align='right'><a class='menuConsol' href='".$_SERVER["PHP_SELF"]."?action=show_cart'>Din varukorg <span class=\"blutt\">&raquo;</span>\n</a></div>
				</td>
			</tr>
		</table>
				
				</td>
			</tr>
			</table>";
}

Hoppas ni förstår jag är lite trött så förklaringen kanske är lite diffus. :q

MVH mhedda

Medlem sedan feb. 2000385 inlägg
#2

Är det någon som vet jag har nog rört till loopen lite
är jag på rätt väg eller finns det något enklare/finare sätt?

Det skall alltså loopas ut produkter tre i rad efter kategori sen ny tabell och ny kategori och tre produkter i tabellen har jag gjort en rubrik somdet skall stå kategorinamn i slutet av tabellen en länk till fler produkter i samma kategori.

Är det någon som vet ?
Tack på förhand.

MVH hedda

Medlem sedan sep. 2002366 inlägg
#3

hehe, du kan inte göra en bild på hur du vill ha det? ;)

Medlem sedan feb. 2000385 inlägg
#4

He he det kanske är lite lättare att förstå då ja.
Jag bifogar en jpg här.

web.jpg
Medlem sedan sep. 2002366 inlägg
#5

Jag är inget stort fan av dubbla SQL-satser, men här är väll ett sätt du kan lägga upp det hela på (hugger upp det i lite fler funktioner så man för översikt helt enkelt).

<?php

function window_top($title) {
	$ret  = "<tr>";
	$ret .= "<td id='frame_top_left'></td>";
	$ret .= "<td id='frame_top_body'>{$title}</td>";
	$ret .= "<td id='frame_top_right'></td>";
	$ret .= "</tr>";

	$ret .= "<tr>";
	$ret .= "<td id='frame_left'></td>";
	$ret .= "<td id='frame_body'>";

	$ret .= "<table>";
	$ret .= "<tr>";

	return $ret;
}

function window_product($product) {
	$ret  = "<td valign='top'>";
	
	// SKRIV UT BILDEN, TEXTEN OCH KNAPPEN HÄR

	$ret .= "</td>":

	return $ret;
}

function window_bottom($title) {
	$ret  = "</tr>";
	$ret = "</table>";

	$ret .= "</td>";
	$ret .= "</tr>";

	$ret .= "<tr>";
	$ret .= "<td id='frame_bottom_left'></td>";
	$ret .= "<td id='frame_bottom_body'>Fler {$title}</td>";
	$ret .= "<td id='frame_bottom_right'></td>";
	$ret .= "</tr>";

	return $ret;
}

function showProdStart($doId) {
	$ret = "<table>";

	// ...

	$query_cat = mysql_query("SELECT category, ...");
	while ($row_cat = mysql_fetch_array($query_cat)) {
		$ret .= window_top($row_cat['category']);			
		$query_prod = mysql_query("SELECT prod_id, name, ... WHERE category = '{($row_cat['category']}' LIMIT 0,3");
		while ($row_prod = mysql_fetch_array($query_prod)) {
			$ret .= window_prod($row_prod);
		}
		$ret .= window_top(($row_cat['category']);
	}

	ret .= "</table>"

	return $ret;
}

?>
Medlem sedan feb. 2000385 inlägg
#6

Man tackar och bugar jag skall prova detta.

Medlem sedan feb. 2000385 inlägg
#7

Tack så väldigt mycket Eitraz!
Äntligen slipper jag sitta och tragla med denna kod så här vart det när det var klart.
Det kanske kan hjälpa andra i samma sitts :P

//Show products mainPage 3 in row.

function window_top($itemCatName) { 
    $ret  = "<tr bgcolor='#A70E0E' height='30'>"; 
    $ret .= "<td background='img/gifs/box_topleft.gif' width='10'></td>"; 
    $ret .= "<td background='img/gifs/box_topmiddle.gif'><span class='headerOrder'>&nbsp; ".$itemCatName."  &nbsp; </span></td>"; 
    $ret .= "<td background='img/gifs/box_topright.gif' width='10'></td>"; 
    $ret .= "</tr>"; 

    $ret .= "<tr>"; 
    $ret .= "<td id='frame_left'></td>"; 
    $ret .= "<td id='frame_body'>"; 

    $ret .= "<table class='orderTableBottom' width='385' cellspacing='0' cellpadding='2' border='0'>"; 
    $ret .= "<tr>"; 

    return $ret; 
} 

function window_product($row_prod,$doId) { 
    $ret  = "<td valign='top'>
     
    							<form name='adItem' method='post' action='".$_SERVER["PHP_SELF"]."'>
								<td class='bluttBlack' align='center' bgcolor='' colspan='4'  height='10' valign='top'>
								<a class='menu' href='".$_SERVER["PHP_SELF"]."?action=show_prodDesc&id=".$doId."&itemIdShow=".$row_prod['itemId']."'><img src='img/itemImgThumb/".$row_prod['itemImg']."' alt='Mer information' border='0'></a>
								<br>".$row_prod['itemPrice']." kr
								<div valign='bottom'><input class='inputQtyChoise' maxlength='4' type='hidden' name=itemProduct[".$row_prod['itemId']."] value=1></div><br>
								<div valign='bottom'><input type ='image' src='img/gifs/buy.gif' class='butClass' onMouseOver='selOn(this)' onMouseOut='selOff(this)' onMouseDown='selDown(this)' onMouseUp='selUp(this)' border'0'></div><br>
								<input type='hidden' name='action' value='add_item'>
								<input type='hidden' name='id' value='".$doId."'>
								<a class='menu' href='".$_SERVER["PHP_SELF"]."?action=show_prodDesc&id=".$doId."&itemIdShow=".$row_prod['itemId']."'>".$row_prod['itemName']."\n</a><br>
								</td>
							</form>

   </td>"; 

    return $ret; 
} 

function window_bottom($itemCatName,$catId) { 
    $ret  = "</tr>"; 
    $ret = "</table>"; 

    $ret .= "</td>"; 
    $ret .= "</tr>"; 
	$ret .= "<tr bgcolor='#A70E0E' height='30'>";
	$ret .= "<td background='img/gifs/box_downLeft.gif' width='10'></td>";
	$ret .= "<td background='img/gifs/box_downMiddle.gif' width='' align='right'><span class='footerOrderSmall'>&nbsp; <a class='footerMenu' href='".$_SERVER["PHP_SELF"]."?action=showPageById&id=2&catId=".$catId."'>Visa fler ".$itemCatName." &raquo;&nbsp;</a></span></td>";
	$ret .= "<td background='img/gifs/box_downRight.gif' width='10'></td>";
	$ret .= "</tr>";

    return $ret; 
} 
function showProdStart($doId){
		// This function will list all of the tbl_items
		// from the tbl_items table. Each item will have
		// a link to add it to the cart
    $ret = "<table border='0' cellpadding='0' cellspacing='0' width='385'>"; 

    // ... 
	$query_cat = mysql_query("select DISTINCT catId,categoryName from tbl_items inner join tbl_category on tbl_items.itemCatId = tbl_category.catId where tbl_items.itemStat='2' order by tbl_items.itemName AND tbl_items.itemCatId DESC");
    //$query_cat = mysql_query("SELECT category, ..."); 
    while ($row_cat = mysql_fetch_array($query_cat)) { 
        $ret .= window_top($row_cat['categoryName']);
		//$result = mysql_query("select * from tbl_items inner join tbl_category on tbl_items.itemCatId = tbl_category.catId where tbl_category.catId = '{($row_cat['catId']}' LIMIT 0,3");
       	$query_prod = mysql_query("SELECT *from  tbl_items WHERE itemCatId  = '".$row_cat['catId']."' LIMIT 0,3"); 
        while ($row_prod = mysql_fetch_array($query_prod)) { 
            $ret .= window_product($row_prod,$doId); 
        } 
        $ret .= window_bottom($row_cat['categoryName'],$row_cat['catId']); 
    } 

    $ret .= "</table>"; 

    echo $ret; 

}

Ha det bra.

274 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
134 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
134 ms — ändringar (db)