2016-05-30 109 views
0

我正在尝试使用函数mysqli_fetch_field()来获取数据库中每个表的名称。但是,当我尝试使用$fieldInfo->table输出表名称时,我得到了重复项。我怎样才能从每个表中只选择1列,以便$fieldInfo->table不是针对每个表的每列调用的?PHP/SQL - 如何获取数据库中表的名称?

当前SQL:

$sql = "SELECT * from administrators, bookings, customers, rooms"; 
$results = mysqli_query($conn, $sql) 
or die ('Problem with query' . mysqli_error($conn)); 

我的代码来显示在单选按钮表名:

<?php 
while ($fieldInfo = mysqli_fetch_field($results)) { 
?> 
<input type="radio" name="tableNames" value="<?php echo $fieldInfo->table; ?>"> <?php echo $fieldInfo->table ?> <br> 
<?php } ?> 
+0

'资源mysql_list_tables(字符串$数据库[,资源$ link_identifier = NULL])',[function.mysql一览tables.php](http://php.net/manual/en /function.mysql-list-tables.php) –

+1

@FrayneKonok'mysqli'和'mysql'之间有区别... – arkascha

+0

'SELECT 1 from administrative,bookings,customers,rooms'? – arkascha

回答

0

我加入2-临时表名保持器和由IF条件是仅输出单选按钮一旦两名临时姓名持有人不同。

<?php 
    $tempName2 = ""; 
    while ($fieldInfo = mysqli_fetch_field($results)) { 
     $tempName = $fieldInfo->table; 
     if ($tempName != $tempName2) { 
      $tempName2 = $tempName; 
?> 
    <input type="radio" name="tableNames" value="<?php echo $tempName; ?>" > <?php echo $tempName ?> <br> 
    <?php } 
} ?> 
0
<?php 
$query='SHOW TABLES FROM DB_NAME'; 
$results=mysqli_query($conn,$query); 
while ($fieldInfo = mysqli_fetch_array($results)) { ?> 
    <input type="radio" name="tableNames" value="<?php echo $fieldInfo[0]; ?>"> <?php echo $fieldInfo[0]; ?> <br> 
<?php } ?> 
相关问题