DHTML tabel maken met PHP en MYSQL

Status
Niet open voor verdere reacties.

karstlei1979

Gebruiker
Lid geworden
29 jan 2002
Berichten
18
Ik ben een stuk aan het programmeren waar ik een tabel maak waar de gegevens in komen te staan die uit een sql-statement komen.
Deze geeft een x-aantal resultaten. Ik wil de resultaten in een tabel plaatsen met 4 kolommen en dat hij dan zelf het aantal rijen maakt.

Ik heb al heel wat geprobeerd maar kom er niet uit.

kan iemand mij op de goede weg helpen.
het moet er zo ongeveer uit komen te zien

1 2 3 4
5 6 7 8
9 10 11 12
enz. enz. enz.

alvast bedankt
 
Wil je gewoon met mysql een select opdracht doen en die in een tabel zetten?
Dat doe je zo:

Code:
<?php
mysql_connect("localhost", "gebruikersnaam", "wachtwoord");
mysql_select_db("naam van database");
?>
<table border="1">
<?php
$res = mysql_query("SELECT colom1, colom2, colom3, colom4 FROM tabelnaam"); 
while ($obj = mysql_fetch_object($res)) {
echo "<tr>";
echo "<td>".$obj['colom1']."</td>";
echo "<td>".$obj['colom2']."</td>";
echo "<td>".$obj['colom3']."</td>";
echo "<td>".$obj['colom4']."</td>";
echo "</tr>";
}
mysql_free_result($res);
?> 
</table>
 
Dit is niet de bedoeling

Dit is niet de bedoeling.
Ik probeer een reeks in een tabel te zetten.

ik krijg bijvoorbeeld 5 resultaten
dan moet hij automatisch zien dat hij 2 rijen van 4 kolommen maakt.

de resultaten zijn 1 t/m 5

dan moet het worden

1 2 3 4
5

bij 10 resultaten van 1 t/m 10

1 2 3 4
5 6 7 8
9 10


hopelijk is het nu duidelijker.
 
Maar hoe worden je rezultaten opgeslagen, in een array?
 
Bedoel je dat je het aantal rijen wilt bepalen dat gemaakt moet worden?


PHP:
// Eerst het aantal resultaten bepalen
$count = mysql_num_rows($query_result);

// Stel dat je vier kolommen wilt hebben, dan deel je door vier.
$rows = $count / 4;

// Nu maken we er een rond getal van
$numRows = ceil($rows);

// Nu heb je in $numRows het aantal rijen dat je moet maken
// Nu kun je met een eenvoudige for-loop de tabel wel maken neem ik aan?
 
Tabel

He Erikbooy007.
Zover had ik het ook al.
alleen nu met die for-loop kom ik niet uit.
1 wil dus 4 columns en het aantal rijen hangt van het aantal records af die ik vanuit de query krijg.

groeten en alvast bedankt
 
Ik ga er nog maar vanuit dat je ongeveer het volgende hebt gedaan om de resultaten uit de database te halen:
PHP:
// Zomaar een query, weet niet hoe je database eruit ziet.
$sql = 'SELECT id FROM table';

// Vervolgens de query uitvoeren
$result = mysql_query($sql, $connection);

// $output is de variabele die de code van je hele tabel vasthoudt.
$output = '<table>';
$output .= '<tr>';
$count = 0;
while($row = mysql_fetch_assoc($result)){
 $count++
 $output .= '<td>' . $row['id'] . '</td>';
 // We kijken of het aantal geoutputte cellen gedeeld door vier een heel getal
 // oplevert, wat betekent dat er een rij vol is en er een regeleinde geprint 
 // moet worden
 if(is_int($count/4){
 $output .= '</tr><tr>';
}

// We kijken hier weer of er een regel vol is, zo niet printen we nog een cel
// en kijken dan weer of er een rij vol is en zo gaan we door tot de rij daadwerkelijk
// vol is.
while(!is_int($count/4)){
 $count++;
 $output .= '<td>&nbsp;</td>';
}

// Het laatste regeleinde toevoegen
$output .= '</tr>';

// Tsja, dan moet de code nog geprint worden.
echo $output;

De eerdere code die ik geschreven had is op deze manier niet nodig. Ik ga ervan uit dat je doorhebt hoe het script werkt, anders moet je het maar even zeggen, dan leg ik het nog even uit.
 
Laatst bewerkt:
Rijen allemaal onder elkaar

Hoi ErikBooy007,

Ik heb het geprobeerd maar alle rijen staan nog gewoon onder elkaar.
Dus dit gaat nog niet helemaal goed.
En hij heeft ook meer resultaten dan ik hebben moet.omdat hij het in een aparte loop gooit.
Maar ik zoek ook ngo verder. Mocht je suggesties hebben dan hoor ik het graag.

Groeten
 
Dit is de query

Dit is de query.
Deze geeft 5 resultaten.
ik wil deze dus in een tabel met 4 columns en het aantal rijen hangt af van de aantal resultaten

SELECT "foto.id as fotoid, foto.albumid as fotoalbumid, album.id as albumid, album.album as albumalbum FROM foto, album WHERE foto.albumid = album.id GROUP BY album.id";

Ik hoor het wel.

Groeten
 
Dit is de query.
Deze geeft 5 resultaten.
ik wil deze dus in een tabel met 4 columns en het aantal rijen hangt af van de aantal resultaten

SELECT "foto.id as fotoid, foto.albumid as fotoalbumid, album.id as albumid, album.album as albumalbum FROM foto, album WHERE foto.albumid = album.id GROUP BY album.id";

Ik hoor het wel.

Groeten

Allereerst, moeten de " vóór de SELECT. Daarnaast vroeg ik je om even de HTML-bron te plaatsen, zodat ik kan zien wat er misgaat bij de output.
 
Html

<HTML>
<head>


<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects"></script>
<script type="text/javascript" src="js/lightbox.js"></script>

<link rel="stylesheet" href="css/style.css" type="text/css" />
<TITLE>Eurosail | Stadskanaal</TITLE>
</head>

<body>
<div id="content">
<div id="header">
<img src="images/header.jpg" usemap="#Map" />
<map name="Map" id="Map">
<area shape="rect" coords="611,142,731,174" href="index.php" target="_self" alt="Eurosail | Stadskanaal" />
<area shape="rect" coords="611,179,738,212" href="gallerij.php" target="_self" alt="Eurosail | Stadskanaal" />
<area shape="rect" coords="611,219,786,251" href="aktueel.php" target="_self" alt="Eurosail | Stadskanaal" />
<area shape="rect" coords="611,290,731,324" href="links.php" target="_self" alt="Eurosail | Stadskanaal">
<area shape="rect" coords="611,256,854,285" href="historie.php" target="_self" alt="Eurosail | Stadskanaal" />
</map>
</div>
<div id="main">
<div id="left">
<h2>Fotogallerij Eurosail</h2>

<?php

include 'inc/connect.inc.php';

// Zomaar een query, weet niet hoe je database eruit ziet.
$sql = "SELECT foto.id as fotoid, foto.albumid as fotoalbumid, album.id as albumid, album.album as albumalbum FROM foto, album WHERE foto.albumid = album.id GROUP BY album.id";

// Vervolgens de query uitvoeren
$result = mysql_query($sql) or die (mysql_error());

// $output is de variabele die de code van je hele tabel vasthoudt.
$output = '<table>';
$output .= '<tr>';
$count = 0;
while($row = mysql_fetch_assoc($result)){

while($count <= 4)
{
$output .= '<td>' . $row['fotoid'] . '</td>';
$count++;
// We kijken of het aantal geoutputte cellen gedeeld door vier een heel getal
// oplevert, wat betekent dat er een rij vol is en er een regeleinde geprint
// moet worden
}
if(is_int($count/4)){
$output .= '</tr><tr>';
}

// We kijken hier weer of er een regel vol is, zo niet printen we nog een cel
// en kijken dan weer of er een rij vol is en zo gaan we door tot de rij daadwerkelijk
// vol is.
while(!is_int($count/4)){
$count++;
$output .= '<td>&nbsp;</td>';
}

// Het laatste regeleinde toevoegen
$output .= '</tr>';

// Tsja, dan moet de code nog geprint worden.

echo $output;
}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan