Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] HTML-Tabelle aus MySQL: Spalte/Zeile vertauschen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] HTML-Tabelle aus MySQL: Spalte/Zeile vertauschen

    Hallo,

    wahrscheinlich kleines Problem, was mich aber schon wieder zum Kopfzerbrechen bringt.

    Ich habe eine Datenbank mit Informationen zu Grafikchips. Jetzt möchte ich bestimmte Datensätze in einer HTML-Tabelle anzeigen lassen, damit man bestimmte Grafikchips übersichtlich miteinander vergelichen kann. Das Problem ist, dass ich die Infos eines Datensatz untereinander (also in einer Spalte) und nicht nebeneinander (in einer Zeile) anzeigen lassen möchte.

    Das ist mein jetziger Code:

    PHP-Code:
    // Dies sind die ID's, die ausgelesen werden sollen
    $vgaChips = array(1020304036);

    echo 
    '<table class="tabelle">';

    for (
    $i=0$i<5$i++) { 

    $sql "    SELECT gpu_hrst.hersteller, gpu_serie.*, gpu_chip.chip, gpu.Chip_id, gpu.*
                       FROM usr_web3_2.gpu
                       LEFT JOIN (usr_web3_2.gpu_chip, usr_web3_2.gpu_serie, usr_web3_2.gpu_hrst)
                       ON (gpu.Chip_id=gpu_chip.id AND gpu_chip.serie_id=gpu_serie.id AND gpu_serie.hrst_id=gpu_hrst.id)
                    WHERE gpu.id = "
    .($vgaChips[$i])."
    "
    ;

    $result mysql_query($sql) OR die(mysql_error()); 
    while(
    $row mysql_fetch_assoc($result)) {
        
        echo 
    '<tr>';
        echo 
    '<td>'.$row['hersteller'].'</td>';
        echo 
    '<td>'.$row['chip'].'</td>';
        
    // usw.
        
    echo '</tr>';
    }

    }
    echo 
    '</table>'
    Hat jemand einen Denkansatz, wie ich das Lösen kann?

    Ich stelle es mir momentan ziemlich verschachtelt vor:

    1.) Hole Hersteller von Datensatz 1, 2, 3, 4, 5 => Ende SQL-Query
    2.) Hole Chip von Datensatz 1, 2, 3, 4, 5 => Ende SQL-Query
    3.) Hole Taktrate von Datensatz 1, 2, 3, 4, 5 => Ende SQL-Query
    4.) Hole Speichertakt von Datensatz 1, 2, 3, 4, 5 => Ende SQL-Query
    ... usw

    Dann habe ich für eine einfache Tabelle 15 SQL-Anfragen, was doch nicht wirklich in Ordnung ist, oder?

  • #2
    Ich hätte die Daten aus der Datenbank alle geholt und in einen Multidimensionalen Array gespeichert. Diesen dann durchgehen und dementsprechend anzeigen.
    [I]"Weaseling out of things is important to learn. It's what separates us from the animals ... except the weasel." (Homer J. Simpson)[/I]

    Kommentar


    • #3
      Vielen Dank für den Hinweis mit den Arrays. Ich habe es nun folgendermaßen gelöst:

      PHP-Code:
      $vgaChips = array(102030403688);
      $anzahl 6;

      echo 
      '<table class="tabelle">';

      for (
      $i=0$i<$anzahl$i++) { 

      $sql "    SELECT gpu_hrst.hersteller, gpu_serie.*, gpu_chip.chip, gpu.Chip_id, gpu.*
                         FROM usr_web3_2.gpu
                         LEFT JOIN (usr_web3_2.gpu_chip, usr_web3_2.gpu_serie, usr_web3_2.gpu_hrst)
                         ON (gpu.Chip_id=gpu_chip.id AND gpu_chip.serie_id=gpu_serie.id AND gpu_serie.hrst_id=gpu_hrst.id)
                      WHERE gpu.id = "
      .($vgaChips[$i])."
      "
      ;

      $result mysql_query($sql) OR die(mysql_error()); 
      while(
      $row mysql_fetch_assoc($result)) {

          
      $a_vga[$i] = array (
                                              
      'Hersteller' => $row['hersteller'], 
                                              
      'Chip' => $row['chip'],
                                              
      'Varianten' => $row['Variante'],
                                              
      'Codename' => $row['Codename'],
                                              
      'Transistoren' => $row['Transistoren'],
                                              
      'Technologie' => $row['Technologie'],                                        
                                              
      'Chiptakt' => $row['Chiptakt'],
                                              
      'shadertakt' => $row['shadertakt'],
                                              
      'Speichertakt' => $row['Speichertakt'],
                                              
      'Pixelshader' => $row['Pixelshader'],
                                              
      'Vertexshader' => $row['Vertexshader'],
                                              
      'unifiedshader' => $row['unifiedshader'],                                        
                                              
      'Speicher' => $row['Speicher'],
                                              
      'Speichertyp' => $row['Speichertyp'],
                                              
      'Speicherbus' => $row['Speicherbus'],                                        
                                              
      'Schnittstelle' => $row['Schnittstelle'],
                                              
      'DirectX' => $row['DirectX'],
                                              
      'OpenGL' => $row['OpenGL'],
                                              
      'published' => $row['published']                                    
                                          );

          }

      }

      echo 
      '<tr><td class="zelleBlau">Hersteller</td>';
      for (
      $i=0$i<$anzahl$i++) { echo '<td class="zelleBlau">'.$a_vga[$i]['Hersteller'].'</td>'; }

      echo 
      '</tr><tr><td class="zelleBlau">Grafikchip</td>';
      for (
      $i=0$i<$anzahl$i++) { echo '<td class="zelleBlau">'.$a_vga[$i]['Chip'].'</td>'; }

      echo 
      '</tr><tr><td class="zelleBlau">Codename</td>';
      for (
      $i=0$i<$anzahl$i++) { echo '<td>'.$a_vga[$i]['Codename'].'</td>';}

      echo 
      '</tr><tr><td class="zelleBlau">Transistoren</td>';
      for (
      $i=0$i<$anzahl$i++) { echo '<td>'.$a_vga[$i]['Transistoren'].' Mio.</td>';}
      echo 
      '</tr><tr>';


      echo 
      '</table>'

      Kommentar


      • #4
        Rueck mal deinen Code ganz normal ein, 4 Spaces und verwend eine Template Engine, und benenn Variablen sinnvoll ($a_vga?), dein Code ist total unuebersichtlich, da hat man ueberhaupt keine Lust reinzuschauen.
        "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

        Kommentar

        Lädt...
        X