Likes Likes:  0
Resultaten 1 tot 2 van de 2
Geen
  1. #1
    Martien van Wanrooij
    Probleem met array die gevuld wordt vanuit mysql
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Probleem met array die gevuld wordt vanuit mysql

    Ik maak al geruime tijd tot tevredenheid gebruik van een scriptje voor het
    genereren van server-side foto-albums. In het kort komt er op neer dat er
    een array gevuld wordt met bestandsnamen, in eerste instantie wordt er een
    verzameling thumbnails getoond (bestandjes die altijd met een bepaald
    voorvoegsel beginnen), en elke thumbnail is een link naar de eigenlijke
    foto. Op die pagina staan verwijzingen naar de voorgaande foto (indien van
    toepassing) het totaaloverzicht en de volgende foto (indien van toepassing).
    Beide pagina's zijn een en hetzelfde php-bestand, als er een get-variabele
    "plaatje" aanwezig is en de bestandsnaam "plaatje" bestaat dan wordt die
    foto getoond, anders verschijnt het hele overzicht.

    Sinds kort ben ik bezig de foto's in een database onder te brengen en dan
    gaat het mis. In beide gevallen verschijnt nog keurig de lijst met
    thumbnails maar de database-variant kan niet "onthouden" de hoeveelste foto
    getoond wordt.

    De functie met de array vind je onder meer op
    http://www.parochiebeekendonk.nl/fconinck.php en daar gaat het goed, de
    functie is als volgt.
    function addThumbnails($tn)
    {
    if (is_array($tn))
    {
    foreach($tn as $t)
    {
    $this->foto_array[]= $t;
    }
    }
    else
    {
    $this->foto_array[] = $tn;
    }
    }


    De functie met de database staat op
    http://www.parochiebeekendonk.nl/ceci2k6.php en deze is als volgt:
    function getFromMySql($bestandspatroon)
    {
    $db = mysql_connect("server", "inlognaam","wachtwoord");
    mysql_select_db("database",$db) or die ("FOUT: OPENEN
    DATABASE MISLUKT");
    $query = mysql_query("SELECT bestandsnaam from fotos where
    bestandsnaam LIKE '{$bestandspatroon}%' order by bestandsnaam ASC",
    $db);
    while (list($bestandsnaam) = mysql_fetch_row($query))
    {
    $this->foto_array[] = $bestandsnaam;
    }
    mysql_close($db);
    }


    Om de vraag te beantwoorden "de hoeveelste positie neemt deze foto in binnen
    de array" maak ik gebruik van het volgende(ik heb in php geen
    standaardfunctie kunnen vinden en via een aantal forums kreeg ik deze
    oplossing aangereikt):
    function arrayposition($haystack, $needle)
    {
    $getal = 0;
    $lengte = count($haystack);
    for ($i = 0; $i < $lengte; $i++)
    {
    if ($needle == $haystack[$i])
    {
    return $i;
    }
    }
    return -1;
    }


    Op het moment dat er één foto wordt getoond is de code onder meer
    $hoeveelste = $this->arrayposition($this->foto_array, $foto) + 1;
    if ($hoeveelste < $totaalFotos)
    {
    $volgendeFoto = $this->foto_array[$hoeveelste];
    $verwijzing = "<a href = \"$this->dezePagina";
    $verwijzing .= "?plaatje=$volgendeFoto\"";
    $verwijzing .= "> >> Volgende >> </a>";
    echo $verwijzing;
    }

    //en soortgelijke code voor de vorige foto.



    Zoals gezegd, het gaat alleen mis als ik de array vanuit mysql probeer te
    vullen en dan nog alleen het bepalen van "de zoveelste positie" van de foto.
    Het verbaast me dat het totaal aantal foto's ook in dit laatste geval wel
    herkend wordt maar er op de voorbeeldpagina alleen maar "foto 0 van 10"
    staat.

    Heeft iemand wat ideeën?
    Voor de duidelijkheid, ik zat een beetje te dubben hoe ik mijn vraag moet
    formuleren zonder een ál te grote "lap" code te schrijven, ik kan het
    uiteraard altijd nog wat verder aanvullen.


    Bedankt,

    Martien.


  2. #2
    Martien van Wanrooij
    Probleem met array die gevuld wordt vanuit mysql
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Opgelost: Probleem met array die gevuld wordt vanuit mysql

    Het probleem bleek heel ergens anders te liggen. Beide functies in mijn
    eerste script waren wel correct maar het zat hem in de manier waarop ik de
    database gevuld had met bestandsnamen. Daar bleken wat spaties achter te
    staan.

    Martien.




Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2021 Webhostingtalk.nl.
Web Statistics