foto album - klein probleem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Steve

Steve

18/10/2004 16:59:00
Quote Anchor link
hallo,

Ik heb onderstaande script zodat mijn foto's mooi per acht in een rij staan. Maar nu zit ik met het probleem dat indien er bvb 15 foto's zijn hij twee rijen toont met in de eerste rij perfect 8 kleine thumbnails en in de tweede rij 7 thumbnails + 1 thumbnail met rood kruis omdat ik geen 16 maar 15 foto's heb. Wie kan me helpen!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?
    //-- maak eerst de connectie met de database!
    $user = "***";
    $pass = "***";
    $host = "***";
    $dbdb = "***";
    
    if (!mysql_select_db($dbdb, mysql_connect($host, $user, $pass)))
    {

        echo "Kan geen verbinding maken met de database.";
        exit();
    }

    
    unset($user);
    unset($pass);
    unset($host);
    unset($dbdb);
    
$resultaten = mysql_query("SELECT * FROM `album` WHERE `soort` = 'project'");
$aantalFotos = mysql_num_rows($resultaten);

echo "<table width=\"475\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
for($i=0;$i<$aantalFotos;$i+=8){
   echo "<tr>";
   $bKolomWisselaar = true;
   for($j=0;$j<8;$j++){
              $fotoNaam=mysql_result($resultaten,$i+$j,"foto");
    $id=mysql_result($resultaten,$i+$j,"id");
              echo "<td><a href=\"foto.php?id=$id\"><img src='".$fotoNaam."' border=0></a></td>";
    if($j<(8-1)){
        if($bKolomWisselaar){
            echo "<td width='10'>&nbsp;</td>";
            $bKolomWisselaar = false;
        }

        else{
            echo "<td width='45'>&nbsp;</td>";
            $bKolomWisselaar = true;
        }
    }
   }

   echo "</tr>";
   echo "<tr><td colspan='15' height='10'></td></tr>";
}

echo "</table>";
?>
 
PHP hulp

PHP hulp

26/12/2024 08:43:43
 

18/10/2004 18:32:00
Quote Anchor link
Als je nu een standaard pic van 1x1 pix. maakt die leeg is, en die dan gewoon op de plaats van die rode kruisjes laat invoegen. Maar dan moet je wel eerst weten hoe je dit kunt doen... hmmm
 
Vincent elschot

vincent elschot

18/10/2004 18:49:00
Quote Anchor link
" en in de tweede rij 7 thumbnails + 1 thumbnail met rood kruis omdat ik geen 16 maar 15 foto's heb."

Tsja dat krijg je er van als je er altijd vannuit gaat dat je 8 fotos per rij zult hebben. Zoals je ziet heb je dat niet en dat weet je ook van tevoren.

Het idee is dus om niet altijd maar gewoon 8 fotos te printen, maar om na elke 8 fotos naar de volgende regel te gaan.

Dus: haal al die FOR lussen weg en begin met een while lus dis per iteratie via mysql_fetch_assoc() het hele record ophaalt. (mysql_result() is trager, onoverzichtelijker en je hebt uiteindelijk toch altijd alles nodig wat je voor een foto selecteert)

Begin gewoon de fotos te printen en tel hoeveel je er al hebt geprint. Komt je teller bij 8, dan ga je naar de volgende regel en begin je opnieuw te tellen

Als de fotos op zijn houdt je aan het eind vanzelf je kolommenteller over en die staat dan op het aantal fotos dat hij wel heeft kunnen printen. Als dat niet precies 8 is kun je met een klein for lusje de rest van de hokjes printen zonder foto er in.
 
SerpenT

SerpenT

18/10/2004 19:10:00
Quote Anchor link
verander dit
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
echo "<td><a href=\"foto.php?id=$id\"><img src='".$fotoNaam."' border=0></a></td>";
?>

met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?
echo "<td>";
if (isset($fotoNaam) && isset($id)){
echo "<a href=\"foto.php?id=$id\"><img src='".$fotoNaam."' border=0></a>";
}
else{}
echo "</td>";
?>

hij kijkt hier dan of de variabele een waarde hebben en als dat zo is, laat hij het plaatje zien anders niet
 
Steve

Steve

19/10/2004 09:27:00
Quote Anchor link
Serpen, heb je raad opgevolgd maar het werkt niet?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?
    //-- maak eerst de connectie met de database!
    $user = "***";
    $pass = "***";
    $host = "***";
    $dbdb = "***";
    
    if (!mysql_select_db($dbdb, mysql_connect($host, $user, $pass)))
    {

        echo "Kan geen verbinding maken met de database.";
        exit();
    }

    
    unset($user);
    unset($pass);
    unset($host);
    unset($dbdb);
    
$resultaten = mysql_query("SELECT * FROM `album` WHERE `soort` = 'interieur2' ORDER BY `id` ASC");
$aantalFotos = mysql_num_rows($resultaten);

echo "<table width=\"225\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
for($i=0;$i<$aantalFotos;$i+=4){
   echo "<tr>";
   $bKolomWisselaar = true;
   for($j=0;$j<4;$j++){
              $fotoNaam=mysql_result($resultaten,$i+$j,"foto");
    $id=mysql_result($resultaten,$i+$j,"id");
              echo "<td>";
if (isset($fotoNaam) && isset($id)){
echo "<a href=\"foto.php?id=$id\"><img src='".$fotoNaam."' border=0></a>";
}
else{}
echo "</td>";
    if($j<(8-1)){
        if($bKolomWisselaar){
            echo "<td width='10'>&nbsp;</td>";
            $bKolomWisselaar = false;
        }

        else{
            echo "<td width='45'>&nbsp;</td>";
            $bKolomWisselaar = true;
        }
    }
   }

   echo "</tr>";
   echo "<tr><td colspan='15' height='10'></td></tr>";
}

echo "</table>";
?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.