[PHP & HTML] Tabel opmaak

Pagina: 1
Acties:
  • 122 views sinds 30-01-2008

  • Cerntje
  • Registratie: September 2003
  • Laatst online: 22-02 13:27
Ik heb op dit moment een probleem met het weergeven van informatie in een mooie tabel. Ik wil namelijk alle informatie uit 1 rij halen en deze geordent weergeven. De tabel ziet er zo uit:

Afbeeldingslocatie: http://members.home.nl/maryekw/ScreenShot179.jpg

Als ik nu de gegevens uit de database haal met de code zoals ik die nu heb ziet het er zo uit:

Afbeeldingslocatie: http://members.home.nl/maryekw/ScreenShot180.jpg

Dit is niet overzichtelijk en al helemaal niet leesbaar. Ik wil de informatie graag zo geordent hebben:

Afbeeldingslocatie: http://members.home.nl/maryekw/ScreenShot181.jpg

Het probleem is dat bij het voorbeeld hierboven de tabelinformatie anders is en automatisch al zo gerangschikt wordt. Hieronder de code waarmee ik het middelste voorbeeld heb gemaakt:

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
$queryData = "SELECT * FROM EQUIPMENTSPEC WHERE BARCODE = '$barcode'";
$result = mysql_query ($queryData);
    
echo "<TABLE CLASS=C ><CAPTION> Specifications $barcode </CAPTION>";
    
// Find out how much columns there are returned and display the header of the columns
    
GetColumnHeaders($result);

for ($i = 0; $i < mysql_num_rows($result); $i++){
    echo "<TR>";
    $row_array = mysql_fetch_row($result);
    for ($j = 0; $j < mysql_num_fields($result); $j++){
        echo "<TD>" . $row_array[$j] . "</TD>";
    }
    echo "</TR>";
}
echo "<TR><TD COLSPAN=3>&nbsp</TD></TR>";
echo "<TR><TD COLSPAN=3>&nbsp</TD></TR>";
echo "<TR><TD COLSPAN=3 ALIGN=RIGHT><A HREF='' onclick='SluitVenster(); return false;'><B>Sluiten</B></A></TD></TR>";
echo "</TABLE>";

// Function Get column header
    
function GetColumnHeaders($result){
    $column_count = mysql_num_fields($result); 
    $i=0; 
    echo "<TABLE>";
    echo "<TR>";
    for ($column_num = 0; $column_num < $column_count; $column_num++) {
        $field_name = mysql_field_name($result, $column_num); 
        echo ( "<TH>$field_name</TH>"); 
    }
    echo "</TR>";
}


De functie GetColumnHeaders gebruik ik om alle kolomnamen ook te printen omdat deze niet automatisch meegenomen worden. Deze wil ik ook geprint hebben zodat je gelijk ziet wat voor informatie je voor je hebt. Probleem is dat deze rij ook in 1x getoond wordt en niet in de juiste kolommen waar de juiste informatie hoort te staan.

Ik ben hier zelf al mee bezig geweest, vooral met het veranderen van de <TR>'s en <TD>'s. Het probleem is dat alle informatie uit de database in 1 array gepompt wordt die ook weer in 1 keer weergegeven wordt.

Hoe krijg ik dit wel correct voor elkaar ?

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:44

Creepy

Tactical Espionage Splatterer

Het aanpassen van je code zodat deze een andere tabel structuur produceert lijkt me toch geen probleem. Of je nu per veld uit de query een colum neerzet of een complete rij maakt toch nauwelijks verschil?

Dus wat is nu nog precies je probleem en wat heb je zelf al geprobeerd om het op te lossen?

[ Voor 22% gewijzigd door Creepy op 09-12-2004 16:02 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Cerntje
  • Registratie: September 2003
  • Laatst online: 22-02 13:27
Creepy schreef op donderdag 09 december 2004 @ 16:01:
Het aanpassen van je code zodat deze een andere tabel structuur produceert lijkt me toch geen probleem. Of je nu per veld uit de query een colum neerzet of een complete rij maakt toch nauwelijks verschil?

Dus wat is nu nog precies je probleem en wat heb je zelf al geprobeerd om het op te lossen?
Het probleem is dat met de functie GetColumnHeaders alle gevonden resultaten in 1 keer getoond worden. In dit geval in 1 lange rij. Ik kan dit wel wijzigen zodat alles in 1 kolom komt te staan, maar dan heb ik alleen de kolom met de columnheaders zonder de juiste informatie ernaast.

Ik heb nu dus zeg maar 2 aparte tabellen en kan deze niet combineren. Hoe ik de functie ook in de for-lus zet, deze wordt steeds verkeerd getoond.

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:44

Creepy

Tactical Espionage Splatterer

En waarom geeft die functie dan niet een array terug met veldnamen zodat je ze in de aanroepende code kan gebruiken voor het generen van je tabel?
Lijkt me nou toch niet zo moeilijk om bij het loopen van je resultset die array met veldnamen mee te nemen?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Je moet je logica anders indelen.
Wat je nu doet is:
code:
1
2
3
Haal resultaten op uit db
Haal kolomheaders uit resultaten
Voor elk resultaat print de kolomwaarden


Wat je wilt is (pseudocode):
code:
1
2
3
4
5
6
7
Haal resultaten op uit database
Voor elk resultaat:
   Voor elk veld (behalve veld barcode) in resultaat:
       indien de waarde anders dan leeg of null is dan:
          druk waarde veld barcode af
          druk naam huidig veld af
          druk de waarde van het veld af


Dit is gewoon een kwestie van logisch nadenken en proberen te bedenken hoe je de resultaten wilt weergeven en hoe je dit in html doet.
Ik denk overigens dat je voor elk resultaat een nieuwe html tabel moet maken. Maar voor overige tips in die hoek verwijs ik je graag door naar onze vrienden in Webdesign en Graphics

  • Cerntje
  • Registratie: September 2003
  • Laatst online: 22-02 13:27
bigbeng schreef op donderdag 09 december 2004 @ 16:38:
Je moet je logica anders indelen.
Wat je nu doet is:
code:
1
2
3
Haal resultaten op uit db
Haal kolomheaders uit resultaten
Voor elk resultaat print de kolomwaarden


Wat je wilt is (pseudocode):
code:
1
2
3
4
5
6
7
Haal resultaten op uit database
Voor elk resultaat:
   Voor elk veld (behalve veld barcode) in resultaat:
       indien de waarde anders dan leeg of null is dan:
          druk waarde veld barcode af
          druk naam huidig veld af
          druk de waarde van het veld af


Dit is gewoon een kwestie van logisch nadenken en proberen te bedenken hoe je de resultaten wilt weergeven en hoe je dit in html doet.
Ik denk overigens dat je voor elk resultaat een nieuwe html tabel moet maken. Maar voor overige tips in die hoek verwijs ik je graag door naar onze vrienden in Webdesign en Graphics
Thank you voor het helder maken van het probleem. Ik ga morgen verder stoeien met deze logica :)

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:44

Creepy

Tactical Espionage Splatterer

* Creepy sluit zich aan bij bigbeng

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.