2017-06-01 33 views
1

我正在運行代碼來獲取表的列名,但我想要除第一個和第二個以外的所有值。如何獲得數組的一些值php

<select name="TableNum" class="table"> 
    <?php 
    include 'connectDb.php'; #Eisagwgi stoixeiwn gia syndesi me ti vasi 
    $result=mysqli_query($con,"SELECT COLUMN_NAME FROM 
    INFORMATION_SCHEMA.Columns where TABLE_NAME = 'available'"); 
    while($row = mysqli_fetch_array($result)) { 
    echo '<option>'.$row[0].'</option>'; 
    } 
    ?>     
</select> 

我在Python知道如何使用數組的,也是我在W3Schools的閱讀thread

而且,用一個簡單的print_r,我得到的結果是這樣的:

Array ([0] => Date [COLUMN_NAME] => Date) 
Array ([0] => Time [COLUMN_NAME] => Time) 
Array ([0] => A1 [COLUMN_NAME] => A1) 
Array ([0] => A2 [COLUMN_NAME] => A2) 
Array ([0] => A3 [COLUMN_NAME] => A3) 
Array ([0] => A4 [COLUMN_NAME] => A4) 
Array ([0] => B1 [COLUMN_NAME] => B1) 
Array ([0] => B2 [COLUMN_NAME] => B2) 
Array ([0] => B3 [COLUMN_NAME] => B3) 
Array ([0] => B4 [COLUMN_NAME] => B4) 
Array ([0] => B5 [COLUMN_NAME] => B5) 
Array ([0] => B6 [COLUMN_NAME] => B6) 
Array ([0] => C1 [COLUMN_NAME] => C1) 
Array ([0] => C2 [COLUMN_NAME] => C2) 

我怎麼能拿只有最後12個值(A1-A1,B1-B6,C1,C2),並把它放回去到選項標籤。

感謝

+1

你可以只說你不想讓'Date'和'時間'列,在'where TABLE_NAME ='available''後面加上AND TABLE_NAME NOT IN('Date','Time')'。 – Qirel

+0

它也不工作。我得到一個空白值列表作爲元素 –

+0

啊,我的錯誤。它應該是'AND COLUMN_NAME NOT IN'('Date','Time')'(我寫了表而不是列)。這應該會訣竅 - 那麼不需要額外的PHP,並且所有事情都是在SQL中完成的! – Qirel

回答

1

這種邏輯可能是最好的SQL本身完成,但是如果你想這樣做的PHP:

$result = mysqli_query($con,"SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.Columns where TABLE_NAME = 'available'"); 
$result = $result->fetch_all(MYSQLI_ASSOC); 
echo '<option>', implode('</option><option>', array_slice(array_column($result, 'COLUMN_NAME'), 2)), '</option>'; 
+0

這不起作用。我得到這個:注意:數組字符串轉換在C:\ Users \ papad \ Desktop \ WebServer \ htdocs \ toi \ form_reserv.php上。 –

+0

我怎樣才能解決它與SQL? –

+0

我添加了'array_column()'到我的答案,這將有望解決這個問題。 – Enstage