Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.
Toon posts:

Query resultaten om en om style meegeven.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een query gemaakt, en de resultaten wil ik om en om een andere style/class meegeven. Puur voor de opmaak.
Ik gebruik een while lus om de resultaten op te halen uit de database, en een for loop om ze op het scherm weer te geven. Wat nu gebeurt is dat de resultaten wel om en om een style meekrijgen, maar dat voor 1 enkel resultaat het resultaat het aantal keer te zien is dat er mysql rijen zijn.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$sql = mysql_query("SELECT * from links where actief = '1' AND clID = '3'");
while($rij = mysql_fetch_array($sql))
{
  $tel = mysql_num_rows($sql);
   for($i=0;$i<=$tel;$i++)
   {
   if($i % 2 == 0)
   {
     echo "<a href='".$rij['href']."' target='_blank'>".$rij['naam']."</a><br>";
   }
   else
   {
     echo "<span id='linkDonker'><a href='".$rij['href']."' target='_blank'>".$rij['naam']."</a></span>"; 
   }
 }


Al een hele tijd liggen stoeien, maar ik krijg niet wat ik wil. Ook al eens geprobeerd om in de for lus de while loop op te nemen. Maar dat geeft ook niet het gewenste resultaat.

Wie heeft raad?

Gr. Ferry

  • rrrandy
  • Registratie: Juli 2005
  • Laatst online: 27-06 13:00
Verwijderd schreef op dinsdag 12 augustus 2008 @ 10:31:
Ik heb een query gemaakt, en de resultaten wil ik om en om een andere style/class meegeven. Puur voor de opmaak.
Ik gebruik een while lus om de resultaten op te halen uit de database, en een for loop om ze op het scherm weer te geven. Wat nu gebeurt is dat de resultaten wel om en om een style meekrijgen, maar dat voor 1 enkel resultaat het resultaat het aantal keer te zien is dat er mysql rijen zijn.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$sql = mysql_query("SELECT * from links where actief = '1' AND clID = '3'");
while($rij = mysql_fetch_array($sql))
{
  $tel = mysql_num_rows($sql);
   for($i=0;$i<=$tel;$i++)
   {
   if($i % 2 == 0)
   {
     echo "<a href='".$rij['href']."' target='_blank'>".$rij['naam']."</a><br>";
   }
   else
   {
     echo "<span id='linkDonker'><a href='".$rij['href']."' target='_blank'>".$rij['naam']."</a></span>"; 
   }
 }


Al een hele tijd liggen stoeien, maar ik krijg niet wat ik wil. Ook al eens geprobeerd om in de for lus de while loop op te nemen. Maar dat geeft ook niet het gewenste resultaat.

Wie heeft raad?

Gr. Ferry
En als je nou die for-loop eens helemaal vergeet?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$sql = mysql_query("SELECT * from links where actief = '1' AND clID = '3'");
$i = 0;
while($rij = mysql_fetch_array($sql))
{
   if($i % 2 == 0)
   {
     echo "<a href='".$rij['href']."' target='_blank'>".$rij['naam']."</a><br>";
   }
   else
   {
     echo "<span id='linkDonker'><a href='".$rij['href']."' target='_blank'>".$rij['naam']."</a></span>"; 
   }
   $i++;
 }

  • Koppensneller
  • Registratie: April 2002
  • Laatst online: 11:36

Koppensneller

winterrrrrr

Als je nou eens die hele for achterwege laat:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$sql = mysql_query("SELECT * from links where actief = '1' AND clID = '3'");
int $i = 0;
while($rij = mysql_fetch_array($sql))
{
  if($i == 0)
  {
     echo "<a href='".$rij['href']."' target='_blank'>".$rij['naam']."</a><br>";
  }
  else
  {
     echo "<span id='linkDonker'><a href='".$rij['href']."' target='_blank'>".$rij['naam']."</a></span>"; 
  }
  
  $i = 1 - $i;
?>

[ Voor 3% gewijzigd door Koppensneller op 12-08-2008 10:34 ]


Verwijderd

Topicstarter
Thanx, zonder de for krijg ik inderdaad het gewenste resultaat. Toppie!

  • Koppensneller
  • Registratie: April 2002
  • Laatst online: 11:36

Koppensneller

winterrrrrr

Maar begrijp je nu ook waarom het nu wél werkt?

  • iH8
  • Registratie: December 2001
  • Laatst online: 17-06-2024

iH8

misschien een beetje offtopic en 't is hier geen WEB maar je hangt een id aan een element wat vaker dan één keer voorkomen kan. dat zul je met een class op moeten lossen.
Het CLASS attribuut wordt toegepast, wanneer een element niet elke keer in dezelfde stijl moet worden uitgevoerd (en dus geen stijl voor het element gedefinieerd kan worden), of als dezelfde stijl voor verschillende elementen gebruikt moet kunnen worden. Het ID attribuut kan alleen toegepast worden indien de waarde ervan slechts één keer in een document wordt gebruikt.
als je je styling (mits mogelijk) aan je anchor element hangt dan zou je zo iets kunnen doen:


PHP:
1
2
3
4
5
6
7
8
9
10
11
<?php

$result = mysql_query( "SELECT * from links where actief = '1' AND clID = '3'" );
int $resultCount = 0;

while( $row = mysql_fetch_array( $result ) )
{
    $anchorStyle = ( $resultCount % 2 ) ? 'linkDonker' : 'linkLicht' ;
    echo "<a class='" . $anchorStyle . "' href='" . $row['href'] . "' target='_blank'>" . $row['naam'] . "</a><br>";
    $resultCount++;
}


zelfde effect en scheelt weer code :)

@koppensneller: waarom van $i % 2 en $i++ naar $i == 0 en $i = 1 - $i

ik volg dat niet :?

Aunt bunny is coming to get me!


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

iH8 schreef op dinsdag 12 augustus 2008 @ 12:21:
@koppensneller: waarom van $i % 2 en $i++ naar $i == 0 en $i = 1 - $i

ik volg dat niet :?
kijk even naar het tijdstip dat gepost is ;)

Overigens vind ik de oplossing van KoppenSneller een stuk onduidelijker, had dan een boolean gebruikt ofzo.

  • Koppensneller
  • Registratie: April 2002
  • Laatst online: 11:36

Koppensneller

winterrrrrr

Klopt, een boolean was veel duidelijker geweest :)

Verwijderd

Topicstarter
KoppenSneller schreef op dinsdag 12 augustus 2008 @ 10:52:
Maar begrijp je nu ook waarom het nu wél werkt?
Yep, ik begrijp nu hoe het werkt. Ik zocht eerst niet in de goede richting, maar deze begrijp ik volledig ;)
Pagina: 1