Hoe krijg ik altijd 5 records uit de tabel op mijn scherm

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Arie Kant

Arie Kant

19/12/2012 16:01:46
Quote Anchor link
Hallo,

Ik zit even met een uitdaginkje ............ ;-)

Ik heb de volgende query:

$query = "SELECT * FROM tabel WHERE x=x LIMIT 0, 5";
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)) {
<< hier staat de tabel waarin het getoond moet worden >>
}

Tot zover weinig abracadabra ..... ;-)

Ik krijg dus vanwege de LIMIT 0,5 altijd 5 records uit de tabel.

Alleen nu wil het wel eens voorkomen dat door de WHERE clausule er maar 2, 3 of 4 records gevonden worden.

Maar ik wil in deze gevallen wel dat de tabel altijd uit 5 rijen bestaat, dus als er minder dan 5 records gevonden worden moeten er dus lege rijen gemaakt worden i de tabel zodat er dus altijd 5 rijen te zien zijn, ongeacht het aantal records uit de query.

Iemand enig idee hoe ik dat kan aanpakken?

Met vriendelijke groeten,

Arie
Gewijzigd op 19/12/2012 16:06:49 door Arie Kant
 
PHP hulp

PHP hulp

22/12/2024 15:19:34
 
Aad B

Aad B

19/12/2012 16:04:45
Quote Anchor link
Binnen de while een echo plaatsen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$result
= mysql_query("SELECT FirstName,LastName FROM Persons");

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

  echo $row['FirstName'] . ' ' . $row['LastName'];
  echo "<br />";
  }

?>
Gewijzigd op 19/12/2012 16:07:19 door Aad B
 
Arie Kant

Arie Kant

19/12/2012 16:08:19
Quote Anchor link
hahaha, dat is snel ;-)

Ik drukte per ongeluk op de TAB waardoor ik het bericht al plaatste voordat deze gereed was ............ ;-)

Misschien kan je er nog eens naar kijken, maar dan naar het volledige bericht?

Alvast bedankt,

Arie
 
Erwin H

Erwin H

19/12/2012 16:15:09
Quote Anchor link
Dat lijkt me typisch iets dat je niet in de database op moet lossen. Laat de database gewoon zijn werk doen, maar als er maar 3 records terugkomen, kan je in php 'lege' rijen printen. Niet moeilijk door gewoon een tellertje te laten meelopen.
 
Arie Kant

Arie Kant

19/12/2012 16:21:01
Quote Anchor link
Erwin H op 19/12/2012 16:15:09:
Dat lijkt me typisch iets dat je niet in de database op moet lossen. Laat de database gewoon zijn werk doen, maar als er maar 3 records terugkomen, kan je in php 'lege' rijen printen. Niet moeilijk door gewoon een tellertje te laten meelopen.


Niet om het even maar ik los dit toch ook niet op in de database, ik haal alleen maar de gegevens eruit.

Kan je misschien een voorzetje geven van zo'n teller?

Ik kan wel het volgende verzinnen qua teller maar daar heb ik volgens mij niets aan, of jij moet wat anders bedoelen?

for($i=0;$i<5;$i++){
echo "Hier komt de tabel";
}

Met vriendelijke groeten,

Arie
 
Kris Peeters

Kris Peeters

19/12/2012 16:22:17
Quote Anchor link
Erwin H op 19/12/2012 16:15:09:
Dat lijkt me typisch iets ...


Dat lijkt me ook.
Praktisch gezien: daarvoor hebben ze de for() uitgevonden


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
...
$res = mysql_query($sql);
for($i=0; $i<5 ; $i++) {
  $row = mysql_fetch_assoc($res);
  if ($row) {
    //rij met gegevens printen
  }
  else {
    // lege rij printen
  }
}

?>
Gewijzigd op 19/12/2012 16:26:34 door Kris Peeters
 
Aad B

Aad B

19/12/2012 16:25:26
Quote Anchor link
Ik zou eerder de eerder genoemde while blijven gebruiken en checken hoeveel records je hebt en dan vervolgens de nodige lege rijen toevoegen.
 
Eddy E

Eddy E

19/12/2012 16:25:32
Quote Anchor link
Google even op een for lus php.
Maak 5 rijen.
En pak je array met resultaten daar pas bij.
 
Erwin H

Erwin H

19/12/2012 16:27:03
Quote Anchor link
Arie Kant op 19/12/2012 16:21:01:
Erwin H op 19/12/2012 16:15:09:
Dat lijkt me typisch iets dat je niet in de database op moet lossen. Laat de database gewoon zijn werk doen, maar als er maar 3 records terugkomen, kan je in php 'lege' rijen printen. Niet moeilijk door gewoon een tellertje te laten meelopen.


Niet om het even maar ik los dit toch ook niet op in de database, ik haal alleen maar de gegevens eruit.

Niet om het even, maar dat doe je wel op het moment dat je 'lege rijen' uit je database wilt halen.

Voorbeeld teller:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$i
= 0;
while(...){
  ++
$i;
}

?>

Als $i als i dan nog geen 5 is na de loop echo je nog wat lege rijen. Niet zo moeilijk toch?
 
Kris Peeters

Kris Peeters

19/12/2012 16:27:21
Quote Anchor link
Ondertussen wat aangepast. Er zat een fout in mijn redenering.
 
Aad B

Aad B

19/12/2012 16:28:24
Quote Anchor link
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
$result
= mysql_query("SELECT FirstName,LastName FROM Persons");
$aantal_rijen = mysql_num_rows($result);
while($row = mysql_fetch_array($result))
  {

  echo $row['FirstName'] . ' ' . $row['LastName'];
  echo "<br />";
  }

if ($aantal_rijen < 5)(
   lege regels maken
}

?>


mysql_num_rows($variabele);
 
Arie Kant

Arie Kant

19/12/2012 16:32:13
Quote Anchor link
Aad B op 19/12/2012 16:25:26:
Ik zou eerder de eerder genoemde while blijven gebruiken en checken hoeveel records je hebt en dan vervolgens de nodige lege rijen toevoegen.


Dat leek mij ook een strak plan !

Ik weet hoeveel records ik uiteindelijk in de query hebt zitten door

mysql_num_rows($result)

Maar hoe kan ik dan in die WHILE lus gebruiken door als het er minder dan 5 zijn lege rijen toe te voegen?

Als je daar even een klein voorbeeldje van weet, dan hou ik mij aanbevolen want ik weet niet hoe ik dat moet aanpakken :-(

Met vriendelijke groeten,

Arie
 
Frank Nietbelangrijk

Frank Nietbelangrijk

19/12/2012 16:32:42
Quote Anchor link
Heren,

Volgens mij heeft arie nog geen bevredigend antwoord gekregen.

Arie,

Zoals gezegd los je dat in PHP op. Als je query bijvoorbeeld maar drie in plaats van vijf rijen teruggeeft, dan zul je dus iets moeten maken als
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
<?php

$result
= mysql_query("SELECT FirstName,LastName FROM Persons");

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

  echo $row['FirstName'] . ' ' . $row['LastName'];
  echo "<br />";
}


$rowcount = mysql_num_rows($result);

for($i = 0 ; $i < 5 - $rowcount ; $i++) {
   echo 'lege rij<br/>';
}
Gewijzigd op 19/12/2012 16:35:20 door Frank Nietbelangrijk
 
Arie Kant

Arie Kant

19/12/2012 16:35:59
Quote Anchor link
Wat zijn jullie snel zeg, tijdens het reageren waren er al weer 3 reacties binnen ............ ;-)

Ik ga even met die van Aad aan de slag (bedankt he!), mocht ik ergens tegenaan lopen dan gooi ik dat wel weer in de groep ;-)

Met vriendelijke groeten,

Arie
 
Kris Peeters

Kris Peeters

19/12/2012 16:44:18
Quote Anchor link
Frank Nietbelangrijk op 19/12/2012 16:32:42:
Volgens mij heeft arie nog geen bevredigend antwoord gekregen.


Okay, ik heb nog aanpassingen gedaan en ondertussen zijn er twee posts bijgekomen
Maar kijk nog eens naar mijn post
 
Frank Nietbelangrijk

Frank Nietbelangrijk

19/12/2012 17:00:32
Quote Anchor link
:-) sorry Kris
 
Arie Kant

Arie Kant

19/12/2012 17:03:11
Quote Anchor link
Iedereen bedankt!

Het is gelukt m.b.v. het script van Aad maar zo te zien had het van Kris ook zo maar tot het juiste resultaat kunnen leveren ........ ;-)

Met vriendelijk groeten,

Arie
 



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.