Avatar billede den-evil Nybegynder
17. januar 2006 - 08:57 Der er 10 kommentarer og
1 løsning

vil ikke loope igennem ?

Jeg har dette:
if ($felt[0] == "billede") {
           
        $SQL = "SELECT * FROM artikel_images WHERE idartikel = '$idartikel'";
        $mq = mysql_query($SQL) or die(mysql_error());
        while($img = mysql_fetch_assoc($mq)){
        #echo $SQL;
   
        $input = "<img src='http://www.ngo-traef.dk/admin/includes/show-image.php?image_id=".$img['image_id']."&idartikel=".$idartikel."  style='border:1px solid #26405f; margin:1px;'";
       
       
        } // End while
           
        $template = str_replace($out[0][$i],$input,$template);    #if (file_exists("$image_dir/artikler/$idartikel-" . $felt[1] . ".jpg")) {
               
           
        }
-----------------------
Men den looper ikke igennem og tager alle billederne, den spytter kun 1 ud ?

Hvordan kan dette være?
Avatar billede michael_stim Ekspert
17. januar 2006 - 09:02 #1
$img['image_id']... Er der flere med image_id?
$idartikel... Hvor får du den fra?
Avatar billede den-evil Nybegynder
17. januar 2006 - 09:05 #2
der ligger fx du billeder i databasen med hhv. image_id på 1 og 2.
De har begge idartikel "77" - men den skriver kun 1 ud...

Får idartikel fra URL'en...
Avatar billede polle007 Nybegynder
17. januar 2006 - 09:08 #3
Jeg synes ikke du afslutter <img
Avatar billede den-evil Nybegynder
17. januar 2006 - 09:10 #4
nej, ikke lige deroppe, men det er gjort..
Avatar billede cpfrande Nybegynder
17. januar 2006 - 09:10 #5
Har du behandlet $idartikel siden du kun skriver $idartikel ?

Hvis register_globals er slået fra (=off), så vil du skulle skrive $_GET['idartikel'] i stedet for (hvis du vel og mærket IKKE har arbejdet med variablen før). Ellers vil $idartikel være null.

Umiddelbart kan jeg ikke se nogen fejl i din kode ellers, så den må ligge enten i databasen eller være ovenstående problem.

--
Kristian
Avatar billede den-evil Nybegynder
17. januar 2006 - 09:13 #6
skal forresten lige siges hvis jeg skriver echo $input inde i while'en udskriver den begge billeder...

Har prøvet at smide $template derind, men hjælper intet...
Avatar billede jackass- Nybegynder
17. januar 2006 - 09:13 #7
if ($felt[0] == "billede") {         
        $SQL = "SELECT * FROM artikel_images WHERE idartikel = '$idartikel'";
        $mq = mysql_query($SQL) or die(mysql_error());

        while($img = mysql_fetch_assoc($mq)) {
            $input = "<img src=\"http://www.ngo-traef.dk/admin/includes/show-image.php?image_id=".$img['image_id']."&idartikel=".$idartikel." style=\"border:1px solid #26405f; margin:1px;\">";
        }           

        $template = str_replace($out[0][$i],$input,$template);    #if (file_exists("$image_dir/artikler/$idartikel-" . $felt[1] . ".jpg")) {
}

..burde fungere fint
Avatar billede cpfrande Nybegynder
17. januar 2006 - 09:15 #8
Ahh, jeg ved godt hvad er galt nu.

Du overskrider din tidligere $input-variabel, som du har lavet. Derfor udskriver den kun det sidste billede, som den henter ud.

prøv med:
if ($felt[0] == "billede") {         
        $SQL = "SELECT * FROM artikel_images WHERE idartikel = '$idartikel'";
        $mq = mysql_query($SQL) or die(mysql_error());

        while($img = mysql_fetch_assoc($mq)) {
            $input .= "<img src=\"http://www.ngo-traef.dk/admin/includes/show-image.php?image_id=".$img['image_id']."&idartikel=".$idartikel." style=\"border:1px solid #26405f; margin:1px;\">";
        }           

        $template = str_replace($out[0][$i],$input,$template);    #if (file_exists("$image_dir/artikler/$idartikel-" . $felt[1] . ".jpg")) {
}
Avatar billede den-evil Nybegynder
17. januar 2006 - 09:16 #9
Skal lige siges det kommer fra en funktion dette:

Hele funktionen ser sådanne ud:
<?php
function visArtikel($idartikel,$template_dir, $image_dir, $filer_dir, $useDB) {
    $mq_artikel = mysql_query("SELECT * FROM artikel WHERE idartikel = " . $idartikel);
    $artikel = mysql_fetch_assoc($mq_artikel);
   
    $fil = $template_dir . "/" . $artikel['template'];
    $fp = fopen($fil,r);
    $template = fread($fp,filesize($fil));
   
   
preg_match_all("|<BrugerFelt>(.*)</BrugerFelt>|U",$template,$out,PREG_PATTERN_ORDER);
    for ($i=0;$i<sizeof($out[1]);$i++) {
   

        $felt = split("\|",$out[1][$i]);       
       
        if ($useDB == true) {
                $SQL = "SELECT felt_data FROM template_felt WHERE idartikel = " . $idartikel . " AND felt_id = '" . $felt[1]. "';";
                $mq_felt = mysql_query($SQL) or die (mysql_error());
                            $arrfeltdata = mysql_fetch_assoc($mq_felt);
            $feltdata = $arrfeltdata['felt_data'];
           
        }
        else {
            $feltdata = $_REQUEST[$felt[1]];
            $feltdata = str_replace("\\\"","\"",$feltdata);
            $feltdata = str_replace("\\'","'",$feltdata);
        }       

        if ($felt[0] == "linje") {
            if ($feltdata != "") {
                $vis = $felt[2] . $feltdata . $felt[3];
                $template = str_replace($out[0][$i],$vis,$template);
            }
            else {
                    $template = str_replace($out[0][$i],"",$template);
               
            }
        }
        if ($felt[0] == "tekst") {
            if ($feltdata != "") {
                #$vis = $felt[2] . nl2br($feltdata) . $felt[3];
                $vis = $felt[2] . $feltdata . $felt[3];
               
                $template = str_replace($out[0][$i],$vis,$template);
            }
            else {
                    $template = str_replace($out[0][$i],"",$template);
               
            }
           
        }
                if ($felt[0] == "link") {
            if ($feltdata != "") {
               
                $feltArr = split("\|\|",$feltdata);
                $vis = $felt[2] . "<a href='" . $feltArr[0] . "' target=_blank>" . $feltArr[1] . "</a>" . $felt[3];
                $template = str_replace($out[0][$i],$vis,$template);
            }
            else {
                    $template = str_replace($out[0][$i],"",$template);
                   
               
            }
           
        }
        if ($felt[0] == "billede") {
           
        $SQL = "SELECT * FROM artikel_images WHERE idartikel = '$idartikel'";
        $mq = mysql_query($SQL) or die(mysql_error());
        #$tael = mysql_num_rows($mq);
        #echo $tael;
        while($img = mysql_fetch_assoc($mq)){
        #echo $SQL;
       
        $input = "<img src='http://www.ngo-traef.dk/admin/includes/show-image.php?image_id=".$img['image_id']."&idartikel=".$idartikel."  style='border:1px solid #26405f; margin:1px;'>";
        $template = str_replace($out[0][$i],$input,$template);   
   
        } // End while
           
           
            #if (file_exists("$image_dir/artikler/$idartikel-" . $felt[1] . ".jpg")) {
            #        $input = $felt[2] . "<img style='page-break-inside: auto; margin: 5px' src='" . "$image_dir/resizer.php?imgtype=artikler&imgname=$idartikel-" . $felt[1] . ".jpg&maxWidth=" . $felt[5] . "&maxHeight=" . $felt[4] . "&time=" . time() . "' ";
            #        $input .= "class='" . $felt[7] . "' align='" . $felt[6] . "'>" . $felt[3];
                   
                   
            #}
            #else {
                #    $template = str_replace($out[0][$i],"",$template);           
            #}
               
           
        }
        if ($felt[0] == "fil") {
            $SQL = "SELECT * FROM filer WHERE idartikel = " . $idartikel . ";";
            $mq_filer = mysql_query($SQL) or die (mysql_error());
           
            if (mysql_num_rows($mq_filer) > 0) {
                $vis = $felt[2] . "<ul>";
                while ($fil = mysql_fetch_assoc($mq_filer)) {
                    $vis .= "<li><a target='_blank' href='" . $filer_dir . "/" . $fil['idfiler'] . "/" . $fil['filnavn'] . "'>" . $fil['beskrivelse'] . "</a>";
                }
                $vis .= "</ul>" . $felt[3];
               
                $template = str_replace($out[0][$i],$vis,$template);
            }
            else {
                    $template = str_replace($out[0][$i],"",$template);
                   
               
            }
           
        }
           
    }
   
   
    #$datoArr = split("-",$artikel['dato']);
    #$datoArr = array_reverse($datoArr);
    #$template .=  "<div align=right>/" . join(".",$datoArr) . "</div>";
   
    return $template;
   

}

?>
----------------------------------------------
Og kalder den her:

<?
                    require("../admin/includes/config.inc.php");
                    require("../admin/lib/vis_artikel.php");
                    $idartikel = $_REQUEST['idartikel'];
                    echo visArtikel($idartikel,"../admin/artikel-templates", "../filer", true);
                ?>
Avatar billede den-evil Nybegynder
17. januar 2006 - 09:17 #10
cpfrande -> det virkede sq :-) - takker... Ligger du et svar?
Avatar billede cpfrande Nybegynder
17. januar 2006 - 09:18 #11
Det gør jeg da! :-)

God arbejdslyst.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester