19. marts 2007 - 18:12
Der er
14 kommentarer og 1 løsning
Hjælp til listning af varer
Hejsa eksperter, Jeg er igang med nogle løkker til at vise varerne i en shop. Indtil videre har jeg fået lavet sådan at den tjekker hvormange varer der er ialt og derefter deler rækkerne op så der kan være 3 varer på hver række. Dog mangler jeg hjælp til at den automatisk på eks. række 1 visere vare 1, 2 og 3 og på næste række 4, 5 og 6 selvfølgelig. Håber i kan hjælpe.. min kode: for($i=0;$i<$fitems;$i++) { print_r ("<tr>"); for($j=0;$j<count($items);$j++) { print_r ("<td><table width='116' border='0'> <tr> <td width='110' height='84'><img src='test.jpg' width='80' height='80'></td> </tr> <tr> <td height='13'><font color='#FFFFFF' size='1' face='Arial, Helvetica, sans-serif'><strong>Name of thing</strong></font></td> </tr> </table></td>"); } print_r ("</tr>"); } } - Lige nu skriver den alle varerne ud på alle rækkerne.
Annonceindlæg fra Cognizant
19. marts 2007 - 18:33
#1
Du skal tælle i dit array i den yderste løkke. og sætte betingelse (skriv 3 varer ud i hver række i den inderste løkke. Prøv med for($i=0;<count($items);$i++) { print_r ("<tr>"); for($j=0;$j<3;$j++) { print_r ("<td><table width='116' border='0'> <tr> <td width='110' height='84'><img src='test.jpg' width='80' height='80'></td> </tr> <tr> <td height='13'><font color='#FFFFFF' size='1' face='Arial, Helvetica, sans-serif'><strong>Name of thing</strong></font></td> </tr> </table></td>"); } print_r ("</tr>"); } }
19. marts 2007 - 18:35
#2
Ups manglede lige $i Prøv med for($i=0;$i<count($items);$i++) { print_r ("<tr>"); for($j=0;$j<3;$j++) { print_r ("<td><table width='116' border='0'> <tr> <td width='110' height='84'><img src='test.jpg' width='80' height='80'></td> </tr> <tr> <td height='13'><font color='#FFFFFF' size='1' face='Arial, Helvetica, sans-serif'><strong>Name of thing</strong></font></td> </tr> </table></td>"); } print_r ("</tr>"); } }
19. marts 2007 - 18:41
#3
det fungerer ikke.. jeg har 4 varer lige pt i shoppen: test1, test2, test3, test4 og dit eksempel udskriver de 3 samme varer på hver række
19. marts 2007 - 18:52
#4
Kan du give hele din kode, hvor du udskriver dine produkter ???
19. marts 2007 - 18:56
#5
<? session_start(); include("../db_con.php"); $items = $db->SendSQL("SELECT * FROM ym_shop_items where category='".$_GET["catid"]."' order by id desc"); $aitems = count($items); $ritems = $aitems/3; $fitems = ceil($ritems); ?> <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <style> <!-- a:link{color: #FFFFFF;text-decoration: none;} a:visited{color: #FFFFFF;text-decoration: none;} a:active{color: #FFFFFF;text-decoration: none;} a:hover{color: #FFFFFF;text-decoration: underline;} --> </style> </head> <body bgcolor="000000"> <p align="right"><img src="../images/button_shop_big.jpg" width="80" height="31"><br> <font color="#FFFFFF" size="1" face="Arial, Helvetica, sans-serif"><strong>Category: <? echo $_GET["catid"]; ?></strong></font></p> <div align="right"> <table> <? if ($ritems <= 1) { for($i=0;$i<count($items);$i++) print_r ("<td><table width='116' border='0'> <tr> <td width='110' height='84'><img src='test.jpg' width='80' height='80'></td> </tr> <tr> <td height='13'><font color='#FFFFFF' size='1' face='Arial, Helvetica, sans-serif'><strong>".$items[$i][0]."</strong></font></td> </tr> </table></td>"); } else { for($i=0;$i<$fitems;$i++) { print_r ("<tr>"); for($j=0;$j<count($items);$j++) { print_r ("<td><table width='116' border='0'> <tr> <td width='110' height='84'><img src='test.jpg' width='80' height='80'></td> </tr> <tr> <td height='13'><font color='#FFFFFF' size='1' face='Arial, Helvetica, sans-serif'><strong>".$items[$j][0]."</strong></font></td> </tr> </table></td>"); } print_r ("</tr>"); } } ?> </table> </div> </body> </html>
19. marts 2007 - 19:08
#6
Som jeg ser det burde det her være nok: <? session_start(); include("../db_con.php"); $items = $db->SendSQL("SELECT * FROM ym_shop_items where category='".$_GET["catid"]."' order by id desc"); ?> <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <style> <!-- a:link{color: #FFFFFF;text-decoration: none;} a:visited{color: #FFFFFF;text-decoration: none;} a:active{color: #FFFFFF;text-decoration: none;} a:hover{color: #FFFFFF;text-decoration: underline;} --> </style> </head> <body bgcolor="000000"> <p align="right"><img src="../images/button_shop_big.jpg" width="80" height="31"><br> <font color="#FFFFFF" size="1" face="Arial, Helvetica, sans-serif"><strong>Category: <? echo $_GET["catid"]; ?></strong></font></p> <div align="right"> <table> <? for($i=0;$i<$items;$i++) { print_r ("<tr>"); for($j=0;$j<count($items);$j++) { print_r ("<td><table width='116' border='0'> <tr> <td width='110' height='84'><img src='test.jpg' width='80' height='80'></td> </tr> <tr> <td height='13'><font color='#FFFFFF' size='1' face='Arial, Helvetica, sans-serif'><strong>".$items[$i][0]."</strong></font></td> </tr> </table></td>"); } print_r ("</tr>"); } } ?> </table> </div> </body> </html>
19. marts 2007 - 19:11
#7
aihhh den inderste løkke skal selvfølgelige skrives sådan her: for($j=0;$j<3;$j++)
19. marts 2007 - 19:14
#8
Nej glem kan godt se hvad du mener nu... tænker lige..
19. marts 2007 - 19:27
#9
Hvorfor bruger du ikke mysqli classen rigtigt. Tror du skal gøre dette her istedet: <? session_start(); include("../db_con.php"); $db = new mysqli(); $items = $db->SendSQL("SELECT * FROM ym_shop_items where category='".$_GET["catid"]."' order by id desc"); $aitems = $items->num_rows(); $ritems = $aitems/3; $fitems = ceil($ritems); ?> <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <style> <!-- a:link{color: #FFFFFF;text-decoration: none;} a:visited{color: #FFFFFF;text-decoration: none;} a:active{color: #FFFFFF;text-decoration: none;} a:hover{color: #FFFFFF;text-decoration: underline;} --> </style> </head> <body bgcolor="000000"> <p align="right"><img src="../images/button_shop_big.jpg" width="80" height="31"><br> <font color="#FFFFFF" size="1" face="Arial, Helvetica, sans-serif"><strong>Category: <? echo $_GET["catid"]; ?></strong></font></p> <div align="right"> <table> <? if ($ritems <= 1) { for($i=0;$i<$aitems;$i++) $item = $items->fetch_assoc(); print_r ("<tr><td><table width='116' border='0'> <tr> <td width='110' height='84'><img src='test.jpg' width='80' height='80'></td> </tr> <tr> <td height='13'><font color='#FFFFFF' size='1' face='Arial, Helvetica, sans-serif'><strong>".$item[0]."</strong></font></td> </tr> </table></td></tr>"); } else { for($i=0;$i<$fitems;$i++) { print_r ("<tr>"); for($j=0;$j<3;$j++) { $item = $items->fetch_assoc(); print_r ("<td><table width='116' border='0'> <tr> <td width='110' height='84'><img src='test.jpg' width='80' height='80'></td> </tr> <tr> <td height='13'><font color='#FFFFFF' size='1' face='Arial, Helvetica, sans-serif'><strong>".$item[0]."</strong></font></td> </tr> </table></td>"); } print_r ("</tr>"); } } ?> </table> </div> </body> </html>
19. marts 2007 - 19:28
#10
Slet lige $db = new mysqli(); det var kun for min skyld.
19. marts 2007 - 20:24
#11
Fatal error: Call to a member function on a non-object på linje 5: $aitems = $items->num_rows();
20. marts 2007 - 07:21
#12
Testet og virker, lav din kode om efter samme opbygning så skulle den være der;) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled</title> </head> <body> <table> <tr> <?php $items = array(); $items[] = 'item1'; $items[] = 'item2'; $items[] = 'item3'; $items[] = 'item4'; $items[] = 'item5'; $items[] = 'item6'; $items[] = 'item7'; $items[] = 'item8'; $items[] = 'item9'; $items[] = 'item10'; $items[] = 'item11'; $items[] = 'item12'; $j = '1'; for($i=0;$i<=count($items);$i++) { if($counter=='3')//Hvis løkke kørt 3 gange afslut </tr> og start ny <tr> { echo"</tr><tr><td height='13'><font color='#FF0000' size='1' face='Arial, Helvetica, sans-serif'><strong>".$items[$i]."</strong></font></td>"; $j = '1'; } else { echo"<td height='13'><font color='#FF0000' size='1' face='Arial, Helvetica, sans-serif'><strong>".$items[$i]."</strong></font></td>"; } $counter=$j++; //Opretter en tæller der kontrollerer hvor mange gange løkken har kørt } ?> </tr> </table> </body> </html>
20. marts 2007 - 16:58
#13
Ja vi er rigtig tæt på ! Jeg har brugt følgende: <? $j = '1'; for($i=0;$i<=count($items);$i++) { if($counter=='3')//Hvis løkke kørt 3 gange afslut </tr> og start ny <tr> { echo"</tr><tr><td height='13'><table width='116' border='0'> <tr> <td width='110' height='84'><img src='test.jpg' width='80' height='80'></td> </tr> <tr> <td height='13'><font color='#FFFFFF' size='1' face='Arial, Helvetica, sans-serif'><strong>".$items[$i][0]."</strong></font></td> </tr> </table></td>"; $j = '1'; } else { echo"<td height='13'><table width='116' border='0'> <tr> <td width='110' height='84'><img src='test.jpg' width='80' height='80'></td> </tr> <tr> <td height='13'><font color='#FFFFFF' size='1' face='Arial, Helvetica, sans-serif'><strong>".$items[$i][0]."</strong></font></td> </tr> </table></td>"; } $counter=$j++; //Opretter en tæller der kontrollerer hvor mange gange løkken har kørt } ?> Men den lister de 4 varer som jeg har i db, men så lister den et ekstra billede nærmest som en 5. vare, men self. uden navn da den ikke eksisterer.
20. marts 2007 - 16:59
#14
Det samme sker hvis der ikke er nogle varer i shoppen.. Så kommer der lige sådan et enkelt billede
22. marts 2007 - 11:28
#15
Prøv det her <? $j = '1'; for($i=0;$i<count($items);$i++) { if($counter=='3')//Hvis løkke kørt 3 gange afslut </tr> og start ny <tr> { echo"</tr><tr><td height='13'><table width='116' border='0'> <tr> <td width='110' height='84'><img src='test.jpg' width='80' height='80'></td> </tr> <tr> <td height='13'><font color='#FFFFFF' size='1' face='Arial, Helvetica, sans-serif'><strong>".$items[$i][0]."</strong></font></td> </tr> </table></td>"; $j = '1'; } else { echo"<td height='13'><table width='116' border='0'> <tr> <td width='110' height='84'><img src='test.jpg' width='80' height='80'></td> </tr> <tr> <td height='13'><font color='#FFFFFF' size='1' face='Arial, Helvetica, sans-serif'><strong>".$items[$i][0]."</strong></font></td> </tr> </table></td>"; } $counter=$j++; //Opretter en tæller der kontrollerer hvor mange gange løkken har kørt } ?>
Vi tilbyder markedets bedste kurser inden for webudvikling