Links uit database (met plaatje) in tabel

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jeroen

Jeroen

23/08/2005 19:02:00
Quote Anchor link
Hallo,

Ik ben bezig met een script waarmee ik links (de logos) uit een database kan halen. Ik wil deze dan weergeven in een tabel. Aantal rijen maakt niets uit, maar 4 kolommen moeten gebruikt worden.

Als ik nu het resultaat bekijk zie ik dat hij alle links (plaatjes) naast elkaar neerzet, terwijl hij ze eigenlijk in rijen van 4 neer moet zetten.

Dit is de code:

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
include("connect.inc.php");

mysql_connect($server, $gebruiker, $ww) or die("Het is niet gelukt verbinding te maken met de database");
mysql_select_db($database);

$overzicht = "SELECT * FROM Links WHERE locatie = 'Linkspagina' ORDER BY Linksid";
$result = mysql_query($overzicht);

mysql_connect($server, $gebruiker, $ww) or die("Het is niet gelukt verbinding te maken met de database");
mysql_select_db($database);

$kolom=5;
//$rij=(mysql_num_rows($result) / 4) + 1;
$rij=5;
$aantal = mysql_num_rows($result);
print("Klik op het plaatje / logo om naar de site van uw keuze te gaan. Er zijn $aantal links weer te geven.");
?>

<table align="center" border="0" width="100%" cellspacing="10" cellpadding="0">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
  for($s=1;$s<$rij;$s++)
      {

       ?>

<tr>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
         for($i=1;$i<$kolom;$i++)
           {

            while($row=mysql_fetch_array($result))
                   {

            ?>

<td width="25%">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
               if ($nummer==mysql_num_rows($result))
                {

                 print("&nbsp;");
                }

              else
                {
                
                    ?>

<div align="center">
<a href="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php print("$row[website]"); ?>
" title="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php print("$row[naam]"); ?>
" target="_blank"><img src="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php print("admin/logos/$row[plaatje]"); ?>
" border="0" height="100" width="150"></a>
</div>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
                    $nummer
=$nummer+1;
                  }

               ?>

</td>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
           }
       ?>

</tr>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
      }
  ?>

 
PHP hulp

PHP hulp

17/11/2024 01:19:00
 
Han eev

Han eev

23/08/2005 19:05:00
Quote Anchor link
Kijk eens hier ->
Klik
 
Jan Koehoorn

Jan Koehoorn

23/08/2005 20:28:00
Quote Anchor link
Begrijp ik goed dat je na elk vierde plaatje een nieuwe rij wilt laten beginnen?

Stel je weet het totale aantal plaatjes. Als je het printen van deze plaatjes in een for-loop zet en je zou een teller laten meelopen, dan kun je een nieuwe regel laten beginnen, elke keer als de teller een viervoud is.

Bijv:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?
  // stel: totaal aantal plaatjes = $n
  for ($i = 0; $i < $n; $i++) {
    // code om de HTML te printen hier schrijven

    if (!($i % 4)) {
        // code om een nieuwe rij te beginnen hier schrijven
    }
  }

?>


Is dit wat je bedoelt?
Gewijzigd op 24/08/2005 00:39:00 door Jan Koehoorn
 
Jeroen

Jeroen

23/08/2005 20:32:00
Quote Anchor link
Han:
Kijk eens hier ->
Klik


Ik weet wel hoe een tabel in elkaar zit!
 
Jeroen

Jeroen

23/08/2005 20:33:00
Quote Anchor link
Jan:
Begrijp ik goed dat je na elk vierde plaatje een nieuwe rij wilt laten beginnen?

Stel je weet het totale aantal plaatjes. Als je het printen van deze plaatjes in een while-loop zet en je zou een teller laten meelopen, dan kun je een nieuwe regel laten beginnen, elke keer als de teller een viervoud is.

Bijv:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?
  // stel: totaal aantal plaatjes = $n
  for ($i = 0; $i < $n; $i++) {
    // code om de HTML te printen hier schrijven

    if (!($i % 4)) {
        // code om een nieuwe rij te beginnen hier schrijven
    }
  }

?>


Is dit wat je bedoelt?


Ik wil inderdaad na elke vierde plaatje een nieuwe rij beginnen.

Ik zal het voorstel van jou is uitproberen
 
Jeroen

Jeroen

24/08/2005 12:12:00
Quote Anchor link
Jan:
Begrijp ik goed dat je na elk vierde plaatje een nieuwe rij wilt laten beginnen?

Stel je weet het totale aantal plaatjes. Als je het printen van deze plaatjes in een for-loop zet en je zou een teller laten meelopen, dan kun je een nieuwe regel laten beginnen, elke keer als de teller een viervoud is.

Bijv:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?
  // stel: totaal aantal plaatjes = $n
  for ($i = 0; $i < $n; $i++) {
    // code om de HTML te printen hier schrijven

    if (!($i % 4)) {
        // code om een nieuwe rij te beginnen hier schrijven
    }
  }

?>


Is dit wat je bedoelt?


Ik heb deze manier geprobeerd, maar krijg het niet voor elkaar.

Ik wil dus: dat hij vier plaatjes op een rij weergeeft, dan naar de volgende rij gaat, daar weer vier plaatjes weergeeft enz.

Maar waar moet ik dan

while($row=mysql_fetch_array($result)

neerzetten,

zodat ik de resultaten uit de database kan halen
 
Jan Koehoorn

Jan Koehoorn

24/08/2005 12:58:00
Quote Anchor link
Okee, ik zal het wat vollediger neerzetten:

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
<?
$teller
= 0;
$sql = "select * from tabel";
$res = mysql_query ($sql) or die ('query mislukt');

echo '<table>';

while ($row = mysql_fetch_array ($res)) {
  if ($teller % 4) echo '<tr>';
  echo "<td><img src = \"$row[plaatje]\"></td>";
  $teller++;
  if ($teller % 4) echo '</tr>';
}


echo '</table>';
?>


Het is alleen een beetje rottig aan het einde van de tabel, als bijvoorbeeld je onderste rij niet helemaal vol is. Dan klopt de HTML code voor je tabel niet.

Kun je de plaatjes niet beter tussen <p> tags zetten? Dan heb je geen fouten in de HTML.
Gewijzigd op 24/08/2005 13:26:00 door Jan Koehoorn
 
- SanThe -

- SanThe -

24/08/2005 14:10:00
Quote Anchor link
Jan:
Okee, ik zal het wat vollediger neerzetten:

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
<?
$teller
= 0;
$sql = "select * from tabel";
$res = mysql_query ($sql) or die ('query mislukt');

echo '<table>';

while ($row = mysql_fetch_array ($res)) {
  if ($teller % 4) echo '<tr>';
  echo "<td><img src = \"$row[plaatje]\"></td>";
  $teller++;
  if ($teller % 4) echo '</tr>';
}

if (($teller % 4) != 0) echo '</tr>';
echo '</table>';
?>


Zo zou de html wel moeten kloppen.
 
Jeroen

Jeroen

24/08/2005 14:31:00
Quote Anchor link
SanThe:
Jan:
Okee, ik zal het wat vollediger neerzetten:

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
<?
$teller
= 0;
$sql = "select * from tabel";
$res = mysql_query ($sql) or die ('query mislukt');

echo '<table>';

while ($row = mysql_fetch_array ($res)) {
  if ($teller % 4) echo '<tr>';
  echo "<td><img src = \"$row[plaatje]\"></td>";
  $teller++;
  if ($teller % 4) echo '</tr>';
}

if (($teller % 4) != 0) echo '</tr>';
echo '</table>';
?>


Zo zou de html wel moeten kloppen.


Bedankt voor het scriptje, maar het werkt nog niet helemaal

Kijk maar eens:

http://www.van-veldhuizen.com/links5.php

Hier staan wat testlinks in.

Dit is mijn code:

$overzicht = "SELECT * FROM Links WHERE locatie = 'Linkspagina' ORDER BY Linksid";
$result = mysql_query($overzicht);

$aantal = mysql_num_rows($result);
$teller = 0;
?>

<h1 align="center">Links.</h1><p>
Klik op het logo om naar de site van uw keuze te gaan:<p>

<table>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
while ($row = mysql_fetch_array ($result))
  {

   if ($teller % 4)
     echo '<tr>';
   echo "<td><img src = \"logos/$row[plaatje]\" height=\"50\"></td>";
   $teller++;
   if ($teller % 4)
     echo '</tr>';
  }

if (($teller % 4) != 0)
  echo '</tr>';
  ?>

</table>
 
- SanThe -

- SanThe -

24/08/2005 14:45:00
Quote Anchor link
En dit, dit moet werken.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
while ($row = mysql_fetch_array ($result))
  {

   if (($teller % 4) == 0) echo '<tr>';
   echo "<td><img src = \"logos/$row[plaatje]\" height=\"50\"></td>";
   $teller++;
   if (($teller % 4) == 0) echo '</tr>';
  }

if (($teller % 4) != 0)
  echo '</tr>';
  ?>
 
Steff   an

Steff an

24/08/2005 14:57:00
Quote Anchor link
Misschien kan je dit scriptje even in de database zetten, er zijn meer mensen die zoiets zoeken. Maar dat moet het even zo doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$ipr
= 4;//afbeeldingen per rij
while ($row = mysql_fetch_array ($result))
  {

   if (($teller % $ipr) == 0) echo '<tr>';
   echo "<td><img src = \"logos/$row[plaatje]\" height=\"50\"></td>";
   $teller++;
   if (($teller % $ipr) == 0) echo '</tr>';
  }

if (($teller % $ipr) != 0)
  echo '</tr>';
  ?>
 
Jeroen

Jeroen

24/08/2005 16:19:00
Quote Anchor link
SanThe:
En dit, dit moet werken.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
while ($row = mysql_fetch_array ($result))
  {

   if (($teller % 4) == 0) echo '<tr>';
   echo "<td><img src = \"logos/$row[plaatje]\" height=\"50\"></td>";
   $teller++;
   if (($teller % 4) == 0) echo '</tr>';
  }

if (($teller % 4) != 0)
  echo '</tr>';
  ?>



Iedereen hartelijk bedankt.

Het werkt op DEZE manier.
 



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.