2017-10-29 1 views
0

Ich habe eine Tabelle in PHP erstellt und möchte nur einige Spaltennamen in dieser Tabelle anzeigen. Ich habe SHOW Anweisung verwendet, aber es zeigt alle Spalten. Das ist mein Code:Wie kann ich nur bestimmte Spalten der Datentabelle in SQL anzeigen?

$result = mysqli_query($con, "SHOW COLUMNS FROM habits "); 

         if ($result->num_rows > 0) { 
          // output data of each row 
          while ($row = $result->fetch_assoc()) { 
           echo '<tr> 
          <td scope="row">' .$row['Field'].'</td> 
          </tr>'; 
         } 
         } 

Wie kann nur einige von ihnen zeigen? Kennt jemand die Lösung?

Übrigens, SELECT-Anweisung funktioniert nicht für diesen Code. Es zeigt dies:

Notice: Undefined index: Feld in: \ xampp \ htdocs \ diagnoVisProject \ HabitsPharmacotherapies.php on line 70

Antwort

0

Wenn du die Namen der Spalten kennst, die du dir zeigen willst könnte ein Array mit diesen Namen hinzufügen. Bevor Sie eine Zeile drucken, überprüfen Sie, ob der Name der Spalte im Array ist. Wenn nicht, drucken Sie die Zeile nicht.

Etwas wie folgt aus:

$result = mysqli_query($con, "SHOW COLUMNS FROM habits "); 
$allowedColums = ["column1", "column2", "etc."]; 
if ($result->num_rows > 0) { 
    // output data of each row 
    while ($row = $result->fetch_assoc()) { 
     if (in_array($row['Field'], $allowedColums)) { 
      echo '<tr> 
       <td scope="row">' . $row['Field'] . '</td> 
      </tr>'; 
     } 
    } 
} 
+0

Vielen Dank! Es klappt!!!! Noch eine Frage. Gibt es eine andere Möglichkeit, zum Beispiel alle Spalten außer 2 oder 3 davon anzuzeigen? Ursache in meiner Tabelle gibt es mehr als 20 Spalten, und ich möchte nicht alle Namen in Array schreiben. – Abdullayeva

+0

Ja, um die Whitelist ('$ allowedColumns') in eine Blacklist zu verwandeln, ändere einfach das' if (in_array ... 'in' if (! In_array ... '(beachte das!). Wenn du so nett sein würdest akzeptiere auch die Antwort, es lässt andere Leute wissen, dass die Frage gelöst wurde – Jelmergu

+0

Leider habe ich nicht genug Reputation, weil ich nicht so aktiv bin. Aber wenn ich hätte, würde ich definitiv dafür stimmen! Nochmals vielen Dank. – Abdullayeva

0

Sie

SELECT column_name FROM information_schema.tables WHERE table_name = 'habits' AND (column_name='your column 1' OR column_name='your column 2') 

verwenden kann, aber ich Bin mir nicht sicher, was würdest du damit tun, wenn du den Spaltennamen schon kennst

Verwandte Themen