[PHP] weergave van resultaten

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi
Ik heb het forum al afgezocht, maar ik kan nergens info vinden over mijn vraag/situatie.

Ik heb voor een overzicht van links met de volgende code:

code:
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
<body bgcolor="#000000" text="#0000FF" link="#0033FF"><?  
$mysql_user = "*****"; 
$mysql_pass = "*****"; 
$mysql_host = "*****";  
$mysql_dbn = "*****"; 

if (!@mysql_select_db($mysql_dbn, @mysql_connect($mysql_host, $mysql_user, $mysql_pass)))   
{   
     echo "database connectie mislukt!";   
     exit();   
}   

$sql = "SELECT id,naamsite,link,soort,datum FROM links ORDER BY soort DESC";  
$res = mysql_query($sql);  

if (mysql_num_rows($res) >= 1)  
{  
   while ($row = mysql_fetch_array($res))  
   {  
       $row[naam] = htmlentities($row[soort]);  
       $row[naam] = nl2br($row[soort]);
       $row[naam] = htmlentities($row[naamsite]);  
       $row[naam] = nl2br($row[naamsite]);  
       $row[bericht] = htmlentities($row[link]);  
       $row[bericht] = nl2br($row[link]);  

       echo "$row[soort]";  
       echo "<a href=\"$row[link]\">$row[naam]</a> $row[datum]<br>"; 
       
   }  
}  
else  
{  
   echo "er zijn geen links";  
}  
?>


Dit werkt perfect. Het resultaat ziet er echter als volgt uit:

VoetbalAjax 05.02.2004 23:36
VoetbalPSV 05.02.2004 23:56

Waar ik echter naar toe wil is het volgende:

Nieuws

Fok
Nu

Voetbal

Ajax
PSV
Feyenoord
etc

Moet ik hiervoor gebruik maken van de fetch array? Ik ben al aan het proberen geweest maar ik kom er nog niet uit.
Uiteindelijk wil ik het in een mooie tabelvorm krijgen maar dat probeer ik later nog wel dus dan krijg je:

Voetbal

Ajax..................................................................05.02.2004 23:36
Feyenoord........................................................05.02.2004 23:54
(zonder puntjes uiteraard :) )

etc

Bedankt alvast

[ Voor 14% gewijzigd door Verwijderd op 06-02-2004 00:34 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Je zou in een tijdelijke variabele kunnen bijhouden welke soort als laatst behandeld is, veranderd deze dan print je een linebreak af en maak je een nieuw kopje. Het is natuurlijk mooier om in de query (databasestructuur) al te sorten. Om een mooie tabel af te drukken kun je gebruik maken van de table tags die gewoon in HTML zitten.

Acties:
  • 0 Henk 'm!

Verwijderd

Je kunt ook met een geneste while-loop brengen
code:
1
2
3
4
5
6
7
while( get categorie )
{
   while( get item )
   {
     doe iets
    }
}

[ Voor 7% gewijzigd door Verwijderd op 06-02-2004 01:08 ]


Acties:
  • 0 Henk 'm!

  • Lentje
  • Registratie: Juni 2001
  • Laatst online: 12-09 17:04
Denk dat je zoiets wil:
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
<?
<body bgcolor="#000000" text="#0000FF" link="#0033FF"><?  
$mysql_user = "*****"; 
$mysql_pass = "*****"; 
$mysql_host = "*****";  
$mysql_dbn = "*****"; 

if (!@mysql_select_db($mysql_dbn, @mysql_connect($mysql_host, $mysql_user, $mysql_pass)))   
{   
     echo "database connectie mislukt!";   
     exit();   
}   

$sql = "SELECT id,naamsite,link,soort,datum FROM links ORDER BY soort DESC";  
$res = mysql_query($sql);  

if (mysql_num_rows($res) >= 1)  
{  
    $lastsoort = false;
    while ($row = mysql_fetch_array($res))  
    {  
        $row[naam] = htmlentities($row[soort]);  
        $row[naam] = nl2br($row[soort]);
        $row[naam] = htmlentities($row[naamsite]);  
        $row[naam] = nl2br($row[naamsite]);  
        $row[bericht] = htmlentities($row[link]);  
        $row[bericht] = nl2br($row[link]);  
        
        if($lastsoort != $row['soort']){
            echo '<b>'.$row[soort].'</b><br>';  
            $lastsoort = $row['soort'];
        }
        echo "<a href=\"$row[link]\">$row[naam]</a> $row[datum]<br>"; 
       
    }  
}  
else  
{  
   echo "er zijn geen links";  
}  
?>

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

PHP:
1
2
3
4
5
6
$row[naam] = htmlentities($row[soort]);   
        $row[naam] = nl2br($row[soort]); 
           $row[naam] = htmlentities($row[naamsite]);   
           $row[naam] = nl2br($row[naamsite]);   
           $row[bericht] = htmlentities($row[link]);   
           $row[bericht] = nl2br($row[link]);


Geen idee wat dit doet, want je overschrijft constant de waarde :? Verder kun je beter quotes gebruiken voor de associatieve indices van de array, dus $row['naam'], ipv $row[naam]. Er is geen waarde naam defined waarschijnlijk in je app dus dat scheelt PHP een zoekactie daarnaar.

Acties:
  • 0 Henk 'm!

Verwijderd

code:
1
2
3
4
5
6
           $row[naam] = htmlentities($row[soort]);   
           $row[naam] = nl2br($row[soort]); 
           $row[naam] = htmlentities($row[naamsite]);   
           $row[naam] = nl2br($row[naamsite]);   
           $row[bericht] = htmlentities($row[link]);   
           $row[bericht] = nl2br($row[link]);


==

code:
1
2
3
           $row['soort'] = nl2br(htmlentities($row['soort']));
           $row['naamsite'] = nl2br(htmlentities($row['naamsite']));
           $row['link'] = nl2br(htmlentities($row['link']));


Note: de rownamen heb ik gewijzigd, leest fijner en zijn (correct?) je overschreef ook 2x $row['naam'] enz enz

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Alvast bedankt!!

De output die ik nu krijg is:

Voetbal
Ajax 05.02.2004 23:36
PSV 05.02.2004 23:56
Feyenoord 06.02.2004 11:24

Nieuws
Fok! 06.02.2004 11:23

Ik wil er alleen nu nog voor zorgen dat de rubrieken op alfabetische volgorde komen en daaronder de links ook op alfabetische volgorde, dus ik ga nog ff probere naar waar ik de DESC kan gebruiken

Alvast bedankt weer _/-\o_

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op 06 februari 2004 @ 11:03:
code:
1
2
3
4
5
6
           $row[naam] = htmlentities($row[soort]);   
           $row[naam] = nl2br($row[soort]); 
           $row[naam] = htmlentities($row[naamsite]);   
           $row[naam] = nl2br($row[naamsite]);   
           $row[bericht] = htmlentities($row[link]);   
           $row[bericht] = nl2br($row[link]);


==

code:
1
2
3
           $row['soort'] = nl2br(htmlentities($row['soort']));
           $row['naamsite'] = nl2br(htmlentities($row['naamsite']));
           $row['link'] = nl2br(htmlentities($row['link']));


Note: de rownamen heb ik gewijzigd, leest fijner en zijn (correct?) je overschreef ook 2x $row['naam'] enz enz
Euh heb ik ook geprobeert maar dan krijg ik deze output

Voetbal
05.02.2004 23:36
05.02.2004 23:56
06.02.2004 11:24
Nieuws
06.02.2004 11:23

Dus zonder namen ;)

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Sja... nadenken is moeilijk af en toe, het naam-veld wordt in die voorbeelden niet meer gedefinieerd, zoals je zelf had kunnen lezen, maar ook niet 3x overschreven door andere velden...

[ Voor 6% gewijzigd door ACM op 06-02-2004 11:36 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Sorry hoor maar ik ben nu een tijdje bezig met php, ben op 0 begonnen, en tgaat al veel beter nu, maar af en toe nog een fout...
Pagina: 1