24. januar 2006 - 17:03
Der er
10 kommentarer og 1 løsning
har modificeret et script - nu mangler jeg en løkke?
jeg har en php side som forbereder udskrift af nogle billeder samt siden hvor billederne bliver udskrevet. Siden hvor billederne bliver udskrevet henter data fra 1. side f.eks. via: {product_image}<br /> {more_images} More images var tidligere et link til en anden side med flere billeder, men nu har jeg lavet det om så den istedet viser billderne på siden. Problemet er imidlertidig, at den ikke kører en løkke og dermed kun viser det 1. billede. Hvordan kan jeg ændre på det? på siden der forbereder billederne er der bl.a. denne kode: (udklip fra siden) /* MORE IMAGES ??? */ $more_images = ""; if( !empty($images->images) ) { mm_showMyFileName( __FILE__ ); $flypage = mosGetParam($_REQUEST, "flypage", FLYPAGE); $product_id = intval(mosgetparam($_REQUEST, "product_id")); $page = mosgetparam($_REQUEST, "page", null); $image_id = intval(mosgetparam($_REQUEST, "image_id", "product")); $Itemid = intval(mosgetparam($_REQUEST, "Itemid")); if( !empty($product_id) ) { require_once( CLASSPATH . "ps_product.php" ); $ps_product =& new ps_product(); $dbi = new ps_DB(); $dbi->query( "SELECT * FROM #__{vm}_product_files WHERE file_product_id='$product_id' AND file_is_image='1'" ); $images = $dbi->record; $i = 0; foreach( $images as $image ) { $info = pathinfo( $image->file_name ); $src = dirname($image->file_url) ."/resized/". basename($image->file_name, ".".$info["extension"])."_".PSHOP_IMG_WIDTH."x".PSHOP_IMG_HEIGHT.".".$info["extension"]; $alt = $image->file_title; $height = 100; $width = 100; $href = $_SERVER['PHP_SELF']."?option=com_virtuemart&page=$page&product_id=$product_id&image_id=".$image->file_id."&Itemid=".$Itemid; $more_images = "<a href=\"$mosConfig_live_site/index.php?option=com_virtuemart&page=shop.view_images&flypage=".@$_REQUEST['flypage']."&product_id=$product_id&category_id=$category_id&Itemid=$Itemid\">"; $more_images .= "<div style=\"text-align:center;overflow:auto;\"><img src=\"$src\" alt=\"$alt\" align=\"center\" width=\"$width\" border=\"$border\" /></div></a>"; // echo "<a href=\"$href\" target=\"_self\" title=\"$title\"><img src=\"$src\" alt=\"$alt\" align=\"center\" width=\"$width\" border=\"$border\" /></a>\n "; } } } ----------- $template = str_replace( "{more_images}", $more_images, $template );
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
24. januar 2006 - 17:05
#1
Uden at vide ret meget om php vil jeg tro løkken skal laves om: $template = str_replace( "{more_images}", $more_images, $template ); Men jeg er som sagt ikke særlig php kyndig :/
24. januar 2006 - 17:07
#2
Eller også skal jeg bare holde min kæft og vente på, at der er nogen der siger noget klogt :)
24. januar 2006 - 17:41
#3
Et bud: /* MORE IMAGES ??? */ $more_images = ""; if (!empty($images->images)) { mm_showMyFileName( __FILE__ ); $flypage = mosGetParam($_REQUEST, "flypage", FLYPAGE); $product_id = intval(mosgetparam($_REQUEST, "product_id")); $page = mosgetparam($_REQUEST, "page", null); $image_id = intval(mosgetparam($_REQUEST, "image_id", "product")); $Itemid = intval(mosgetparam($_REQUEST, "Itemid")); if (!empty($product_id)) { require_once(CLASSPATH . "ps_product.php"); $ps_product =& new ps_product(); $dbi = new ps_DB(); $dbi->query("SELECT * FROM #__{vm}_product_files WHERE file_product_id='$product_id' AND file_is_image='1'"); while ($dbi->next_record()) { $images = $dbi->record(); $i = 0; foreach ($images as $image) { $info = pathinfo($image->file_name); $src = dirname($image->file_url) . "/resized/" . basename($image->file_name, "." . $info["extension"]) . "_" . PSHOP_IMG_WIDTH . "x" . PSHOP_IMG_HEIGHT . "." . $info["extension"]; $alt = $image->file_title; $height = 100; $width = 100; $href = $_SERVER['PHP_SELF'] . "?option=com_virtuemart&page=$page&product_id=$product_id&image_id=" . $image->file_id . "&Itemid=" . $Itemid; $more_images = "<a href=\"$mosConfig_live_site/index.php?option=com_virtuemart&page=shop.view_images&flypage=" . @$_REQUEST['flypage'] . "&product_id=$product_id&category_id=$category_id&Itemid=$Itemid\">"; $more_images .= "<div style=\"text-align:center;overflow:auto;\"><img src=\"$src\" alt=\"$alt\" align=\"center\" width=\"$width\" border=\"$border\" /></div></a>"; //echo "<a href=\"$href\" target=\"_self\" title=\"$title\"><img src=\"$src\" alt=\"$alt\" align=\"center\" width=\"$width\" border=\"$border\" /></a>\n "; } } } }
24. januar 2006 - 17:45
#4
så får jeg fejl: Fatal error: Call to undefined function: record() in /var/www/html/administrator/components/com_virtuemart/html/shop.product_details.php on line 276 hvilke svarer til denne linie: $images = $dbi->record();
24. januar 2006 - 18:30
#5
Ret det tilbage til: $images = $dbi->record;
24. januar 2006 - 18:58
#6
Ja, altså der kommer ingen fejl, men stadig kun 1 billede...
24. januar 2006 - 19:13
#7
Lad mig gætte ... det var det sidste billede den viste? Prøv dette i stedet: /* MORE IMAGES ??? */ $more_images = ""; if (!empty($images->images)) { mm_showMyFileName( __FILE__ ); $flypage = mosGetParam($_REQUEST, "flypage", FLYPAGE); $product_id = intval(mosgetparam($_REQUEST, "product_id")); $page = mosgetparam($_REQUEST, "page", null); $image_id = intval(mosgetparam($_REQUEST, "image_id", "product")); $Itemid = intval(mosgetparam($_REQUEST, "Itemid")); if (!empty($product_id)) { require_once(CLASSPATH . "ps_product.php"); $ps_product =& new ps_product(); $dbi = new ps_DB(); $dbi->query("SELECT * FROM #__{vm}_product_files WHERE file_product_id='$product_id' AND file_is_image='1'"); $more_images = ""; while ($dbi->next_record()) { $images = $dbi->record; $i = 0; foreach ($images as $image) { $info = pathinfo($image->file_name); $src = dirname($image->file_url) . "/resized/" . basename($image->file_name, "." . $info["extension"]) . "_" . PSHOP_IMG_WIDTH . "x" . PSHOP_IMG_HEIGHT . "." . $info["extension"]; $alt = $image->file_title; $height = 100; $width = 100; $href = $_SERVER['PHP_SELF'] . "?option=com_virtuemart&page=$page&product_id=$product_id&image_id=" . $image->file_id . "&Itemid=" . $Itemid; $more_images .= "<a href=\"$mosConfig_live_site/index.php?option=com_virtuemart&page=shop.view_images&flypage=" . @$_REQUEST['flypage'] . "&product_id=$product_id&category_id=$category_id&Itemid=$Itemid\">"; $more_images .= "<div style=\"text-align:center;overflow:auto;\"><img src=\"$src\" alt=\"$alt\" align=\"center\" width=\"$width\" border=\"$border\" /></div></a>"; // echo "<a href=\"$href\" target=\"_self\" title=\"$title\"><img src=\"$src\" alt=\"$alt\" align=\"center\" width=\"$width\" border=\"$border\" /></a>\n "; } } } }
24. januar 2006 - 19:18
#8
Det var det sidste billede ja... Jeg prøver lige dit forslag af :)
24. januar 2006 - 19:20
#9
Nu nærmere det sig... den viste alle billderne denne gang. Men den viste dem 2 gange. Der er måske en løkke for meget et sted.
24. januar 2006 - 19:23
#10
Det var: while ($dbi->next_record()) Der bare skulle væk... nu viser den billerne 1 gang som den skal. KANOOOOON!. Jamen jeg siger tak for hjælpen - smider du ikke et svar :)
24. januar 2006 - 19:39
#11
Svar :^)
Vi tilbyder markedets bedste kurser inden for webudvikling