[PHP/MYSQL] - Weergave results in 2 of 3 cellen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • No_Identity
  • Registratie: Juli 2004
  • Laatst online: 17-09 19:32
Hallo,

Ik ben bezig met een soort overzichtscript van foto's en bijbehorende informatie in een database.

Nu zit ik met het volgende:

Als ik een tabel maak als dit;

-------------------------------
| |
-------------------------------

Dan maakt hij netjes onder elkaar een nieuwe foto aan.

Doe ik echter dit:

----------------------------
| | | |
----------------------------

Dan laat hij op elke rij hetzelfde zien. Dan zie je dus op 1 rij 3x foto 1, op rij 2 zie je 3x foto 2. Dit is dus niet de bedoeling.

Dit wel:
----------------------------
| 1 | 2 | 3 |
----------------------------
----------------------------
| 4 | 5 | 6 |
----------------------------
----------------------------
| 7 | 8 | 9 |
----------------------------


Ben druk bezig geweest en begin het door te krijgen. Nu is het echter zo, dat ik somehow nog alles onder elkaar krijg ipv 2 of 3 naast elkaar. En wat ik ook probeer, het enige verschil wat ik nog eens krijg is dat hij een foto links of rechts laat zien. Het moet dus zo worden als het voorbeeldje hierboven met 3 cellen naast elkaar.

Dit is mijn code:

PHP:
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
<?php 

$fietsen_query = "SELECT * FROM tweedehands"; 

$fietsen_sql = mysql_query($fietsen_query) or die(mysql_error()); 

$aantalrijen=3; 
$teller=0; 

echo '<table width="35%" border="0" cellspacing="0" cellpadding="0">'; 
echo '<tr>'; 

while ($row = mysql_fetch_array($fietsen_sql)) 
{ 
echo '<td height="163" colspan="2"><div align="center"><a href="'.$row['afbeelding_groot'].'" target="_blank"><img src="'.$row['afbeelding_thumb'].'" width="180" height="135" border="0" /></a></div></td>'; 
echo '</tr>'; 
echo '<tr>'; 
echo '<td width="34%"><strong>Prijs:</strong></td>'; 
echo '<td width="66%">€ '.$row['fiets_prijs'].'</td>'; 
echo '</tr>'; 
echo '<tr>'; 
echo '<td><strong>Informatie:</strong></td>'; 
echo '<td>'.nl2br($row['fiets_info']).'</td>'; 
echo '</tr>'; 
echo '<tr>'; 
echo '<td><strong>Status:</strong></td>'; 
echo '<td>'.$row['fiets_status'].'</td>'; 
echo '</tr>'; 
echo '<tr>'; 
echo '<td>&nbsp;</td>'; 
echo '<td>&nbsp;</td>'; 
echo '</tr>'; 
echo '<tr>'; 
echo '<td colspan="2">&nbsp;</td>'; 


       $teller++; 
       if ($teller%$aantalrijen==0) 
       { echo "</tr>/n<tr>"; 
        } 

} 

echo '</tr></table>'; 


?> 


Wie o wie kan en wil me hiermee helpen, ben uren bezig geweest maar krijg het maar niet voor elkaar. Please help!

Acties:
  • 0 Henk 'm!

  • Juup
  • Registratie: Februari 2000
  • Niet online
Wat een gepruts.
Maak je tabel eerst eens 'droog' in html, zonder php. Dan zie je hoe de structuur moet worden. Probeer vervolgens in je php brouwsel dezelfde structuur te maken.

Edit: oh ja. Als je hier op GoT [ code=php] [/code] tags om je brouwsel zet, is het wat beter leesbaar.

[ Voor 23% gewijzigd door Juup op 15-08-2007 23:01 ]

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


Acties:
  • 0 Henk 'm!

  • Pyrus
  • Registratie: November 2001
  • Laatst online: 20-09 21:30

Pyrus

Hardknock life

Als je de twee rijen die onderelkaar moeten komen in een losse var stopt en daarna aanelkaar plakt kom je al een heel eind. Ook het bijhouden van een teller doet wonderen.
Dus iets als dit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$teller=0;
$rij1='<tr>';
$rij2='<tr>';
print $table;
while ($row = mysql_fetch_array($fietsen_sql))
{ 
 $teller++;
 $rij1.='<td>'.$row['foo'].'</td>';
 $rij2.='<td>'.$row['bar'].'</td>';

 if($teller%3==0)
 {
  print $rij1.'</tr>'.$rij2.'</tr>';
  $rij1='<tr>';
  $rij2='<tr>';
 }
}
if($teller%3>0){print $rij1.'</tr>'.$rij2.'</tr>';}
print '</table>';

LinkedIn


Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Probeer eerst je code tussen [code][/code] blokken te zetten, dat maakt het al een stuk leesbaarder. Als je vervolgens ook je probleem verkleint tot een meer overzichtelijker testcase kunnen we je nog sneller helpen.

Sowieso zie ik namelijk dat je van tenvoren een rij aanmaakt (<tr>), die onder je while-lus ook weer afsluit, maar tussendoor ook nog een aantal rijen aanmaakt. Dan ga je vervolgens met een modulo aan de slag om te kijken of een rij nog eens moet worden afgesloten.

Volgens mij is het volgende gewoon heel veel handiger:
PHP:
1
2
3
4
5
6
echo "<table>";
while($row = mysql_fetch_array($result) ){
  echo "<tr><td colspan=2><img src=".$row["thumb"]."></td></tr>
    <tr><td>Prijs</td><td>".$row["prijs"]."</td></tr>";
}
echo "</table>";

  • No_Identity
  • Registratie: Juli 2004
  • Laatst online: 17-09 19:32
@Jaaap: Ik heb netjes eerst de tabel aangemaakt in plain HTML, daarna verwerkt in PHP. Het moet eerst werken voordat ik het netjes kan maken, dan weet ik ook precies hoe ik het aan moet pakken namelijk.

@Pyrus: Ik ga proberen of ik daar wat verder mee kan prutsen. Zoals mijn allereerste opzet was, kreeg ik dus 2 (of 3) dezelfde fietsen naast elkaar, wat niet de bedoeling was. Alle tabellen moesten een andere fiets en bijbehorende informatie bevatten.

@mithras: Ik zal hier ook eens naar gaan kijken en expirimenteren.

En daarna kan ik code gaan opschonen, en netjes maken... als alles eenmaal werkt zoals ik het voor ogen heb. Mijn voorbeeldjes in de openingspost maken het opzich wel duidelijk, maar GoT haalt al mijn nette spaties er tussen uit.

  • imp4ct
  • Registratie: November 2003
  • Laatst online: 06-09 22:19
Misschien ook handig om de CSS cursus ook even open te gooien.
'k Denk zelfs ook dat je i.p.v. tabellen je hier ook met <div> en <ul><li> kan werken, maar dat is maar een kleine opmerking.

Bedrijf : Webtrix

Foto materiaal:
Nikon D7100 | Nikor AF-S DX 18-105mm | Nikor AF-S 50mm | Nikon SB600

Pagina: 1