<?php
include("dbase.php");
if($query = mysql_query("SELECT recordid, title, introtekst FROM artikelen ORDER BY recordid DESC"))
{
while($artikel = mysql_fetch_assoc($query))
{
echo '<h6>'.$artikel["title"].'</h6>';
echo '<p>'.$artikel["introtekst"].'</p>';

}
}
else
{
echo mysql_error();
}
?>
M.b.v. bovenstaande code worden de titel en de introtekst van alle artikelen in aflopende volgorde in een tabel op mijn idex.php geplaatst.
Op die index.php heb ik 9 tabellen gemaakt(3x3) en ik wil graag de "title" en "introtekst" van de 9 hoogste "recordid's" aflopend en afzonderlijk in deze 9 tabellen plaatsen. Ik kom er gewoonweg niet uit, hoop dat iemand mij wil helpen,
Eddie
@ Robert:

Het wordt een echt script zie ik :-)

// totaal cellen berekenen
$totaal_cellen=$cellen_per_rij * $cellen_per_kolom;
$aantal_rec =

Hier ken je geen waarde toe?
Jan Koehoorn schreef op 27.11.2005 12:44
@ Robert:

Het wordt een echt script zie ik :-)

// totaal cellen berekenen
$totaal_cellen=$cellen_per_rij * $cellen_per_kolom;
$aantal_rec =

Hier ken je geen waarde toe?


Sorry was een foutje van mezelf.. je kan mysql_num_rows pas doen nadat je hebt gezegd wat je query is, dus ik heb hem iets verderop staan, en daar wordt die wel gevuld.. Die jij bedoelt doet eigenlijk niet mee.
Als ik de onderstaande code in mijn index.php plaats gaat het niet helemaal goed:

<?php
include("dbase.php");
?>
<?php
$dbh=mysql_connect("$dbhost","$dbuser","$dbpass");
?>
<?php
mysql_select_db("247ff") or die ("Kan de database niet openen");
?>

<?php
include("dbase.php");//hierin wordt er een verbinding gemaakt
if($query = mysql_query("SELECT recordid, title, introtekst FROM artikelen ORDER BY recordid DESC"))
$i = 0;
$cellen_per_rij = 3; // of vul elke andere waarde in
$cellen_per_kolom=3; // of vul elke andere waarde in
$kolombreedte=100/$cellen_per_rij;

// totaal cellen berekenen
$totaal_cellen=$cellen_per_rij * $cellen_per_kolom;
$aantal_rec =
// aantal rijen uit tabel halen
$sql="SELECT * FROM artikelen LIMIT ".$totaal_cellen;
$query=mysql_query($sql);
// aantal records berekenen
$aantal_rec = mysql_num_rows($query);
//tabel maken, zet eventueel een breedte van de tabel neer, of een percentage met de width tag..
echo '<table width="760">';
// gegevens ophalen
while($artikel = mysql_fetch_assoc($query))
{
// nieuwe rij maken
if (($i % $cellen_per_rij) == 0) {
echo '<tr>';
}
// gegevens weergeven
echo '<td width="'.$kolombreedte.'%">';
echo '<h6>'.$artikel["title"].'</h6>';
echo '<p>'.$artikel["introtekst"].'</p>';
echo '</td>';
//rij afsluiten
if (($i % $cellen_per_rij) == ($cellen_per_rij - 1)) {
echo '</tr>';
}

$i++;
}
// berekenen hoeveel lege cellen er zullen zijn:
$rest = $aantal_rec % $cellen_per_rij;
if ($rest != 0){
for ($j=0;$j=$rest;$j++){
echo "<td></td>";
}
echo "</tr>";
}



echo '<table>';
?>

Onderstaande code krijg in mijn browser te zien:

; //rij afsluiten if (($i % $cellen_per_rij) == ($cellen_per_rij - 1)) { echo ''; } $i++; } // berekenen hoeveel lege cellen er zullen zijn: $rest = $aantal_rec % $cellen_per_rij; if ($rest != 0){ for ($j=0;$j=$rest;$j++){ echo "
"; } echo ""; } echo '

Eddie
Hmm.. lijkt erop dat er ergens een ' of " te veel (of te weinig) staat :S
@ Eddie, dat foutje waar ik het net met Robert over had, staat nog in je code
En hierna mist een accolade:

if ($query = mysql_query ('SELECT recordid, title, introtekst FROM artikelen ORDER BY recordid DESC'))
Ik ben nu zelf met die code aan het testen gegaan.. ik snap het niet helemaal, bij mij loopt die vast..
:S
Kan iemand ff naar die code kijken..
Eddie:

ik heb je code even verder onderzocht en kwam zoveel fouten tegen, dat ik hem heb herschreven.

<?php
require_once ('dbase.php'); // hierin wordt er een verbinding gemaakt

$i = 0;
$cellen_per_rij = 3; // of vul elke andere waarde in
$cellen_per_kolom = 3; // of vul elke andere waarde in
$kolombreedte = 100 / $cellen_per_rij;

// totaal cellen berekenen
$totaal_cellen = $cellen_per_rij * $cellen_per_kolom;

// aantal rijen uit tabel halen
$sql = "
SELECT *
FROM artikelen
LIMIT '$totaal_cellen'
";
$query = mysql_query ($sql);

// aantal records berekenen
$aantal_rec = mysql_num_rows ($query);

// tabel maken, zet eventueel een breedte van de tabel neer
// of een percentage met de width tag..
echo '<table width="760">';

// gegevens ophalen
while ($artikel = mysql_fetch_assoc ($query))
{
// nieuwe rij maken
if ( ($i % $cellen_per_rij) = = 0) {
echo '<tr>';
}

// gegevens weergeven
echo '<td width="' . $kolombreedte . '">';
echo '<h6>' . $artikel['title'] . '</h6>';
echo '<p>' . $artikel['introtekst'] . '</p>';
echo '</td>';

// rij afsluiten
if ( ($i % $cellen_per_rij) = = ($cellen_per_rij - 1)) {
echo '</tr>';
}

$i++;
}

// berekenen hoeveel lege cellen er zullen zijn:
$rest = $aantal_rec % $cellen_per_rij;

if ($rest ! = 0) {
for ($j = 0; $j = $rest; $j++){
echo '<td></td>';
}
echo '</tr>';
}

echo '<table>';
?>
Jan, Ook die van jou was niet helemaal goed.. Deze werkt wel:

<?php
$db = mysql_connect("localhost","root") or die ( "Het maken van de verbinding met de database is mislukt");
mysql_select_db("test",$db);

$i = 0;
$cellen_per_rij = 3; // of vul elke andere waarde in
$cellen_per_kolom = 3; // of vul elke andere waarde in
$kolombreedte = 100 / $cellen_per_rij;

// totaal cellen berekenen
$totaal_cellen = $cellen_per_rij * $cellen_per_kolom;

// aantal rijen uit tabel halen
$sql = "SELECT * FROM artikelen LIMIT $totaal_cellen";
$query = mysql_query($sql);

// aantal records berekenen
$aantal_rec = mysql_num_rows($query);

// tabel maken, zet eventueel een breedte van de tabel neer
// of een percentage met de width tag..
echo '<table width="760">';

// gegevens ophalen
while ($artikel = mysql_fetch_assoc($query))
{
// nieuwe rij maken
if ( ($i % $cellen_per_rij) == 0) {
echo '<tr>';
}

// gegevens weergeven
echo '<td width="' . $kolombreedte . '">';
echo '<h4>' . $artikel['title'] . '</h6>';
echo $artikel['introtekst'];
echo '</td>';

// rij afsluiten
if ( ($i % $cellen_per_rij) == ($cellen_per_rij - 1)) {
echo '</tr>';
}

$i++;
}

// berekenen hoeveel lege cellen er zullen zijn:
$rest = $aantal_rec % $cellen_per_rij;

if ($rest != 0) {
for ($j = 0; $j = $rest; $j++){
echo '<td></td>';
}
echo '</tr>';
}

echo '<table>';
?>
Er is wel een probleempje Eddie, hij doet het alleen als er meer records zijn (of uiteraard precies genoeg) dan dat er in de LIMIT staat.

@Jan
Ik snap het niet.. met voldoende records werkt het prima, maar als er te weinig zijn (lager aantal dan de limit aangeeft) dan werkt het niet meer. :S

Reageren