php - mysql SELECT 整列或循环遍历所有 ID

标签 php mysql

我需要选择一整列。 所以我的问题是如何获得整个专栏?

        $query  = "SELECT * ";
        $query .= "FROM employees ";
        $query .= "WHERE id=*";
        $query .= "ORDER BY id ASC ";

我试过 id=* 但没有运气...... 我的目标是循环遍历所有 ID,但有些可能会丢失,所以我想我将它们放在数字或关联数组中并使用 foreach。如果有更好的方法,请分享。

编辑:

function get_all_ids()
    {
        global $connection;
        $query  = "SELECT * ";
        $query .= "FROM employees ";
        $query_result = mysql_query ( $query , $connection );
        confirm_query($query_result);
        $query_result_array = mysql_fetch_assoc($query_result);
        return $query_result_array;
    }

我用它来打印数组

  $all_id = get_all_ids();
// preparing the table;
    echo "<pre>";
    print_r($table);
    print_r($all_id);
    echo "</pre>";

这是数组

  Array
    (
        [id] => 1
        [department_id] => 1
        [name] => jordan
        [EGN] => 9108121544
        [email] => testEmail
        [address] => testAddress
        [country] => testCounty
    )

最佳答案

如果您的结果集中有多于一行,您需要继续获取直到检索到所有结果:

$q = mysql_query('SELECT * FROM `table`');
while (($row = mysql_fetch_assoc($q)) != FALSE)
{
// Do something with *one* result
}
mysql_free_result($q);

如果您想在一次提取中检索所有 ID,您可以这样做:

$q = mysql_query('SELECT GROUP_CONCAT(`id`) AS `id_list` FROM `table`');
$row = mysql_fetch_assoc($q);
mysql_free_result($q);

$list_of_ids = explode(',', $row['id_list']);

警告 GROUP_CONCAT() 通常有 1024 字节的结果限制;这意味着您的结果被大表截断。您可以求助于第一个解决方案,或者增加 group_concat_max_len对于当前连接。

关于php - mysql SELECT 整列或循环遍历所有 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9570788/

相关文章:

php - 为防止 XSS 和 SQL 注入(inject)而限制的字符列表?

php - 使变量在 PHP 函数外可用?

javascript - 无法从 Openweathermap API 获取温度

Whois 的 PHP 脚本

mysql - Nodejs - 在没有迁移的情况下向表中添加列?

mysql - 为什么PRIMARY_KEY没有被永久删除?

php - 检查字符串是否具有 07.05.2013 日期格式

MYSQL:创建唯一索引以避免在许多条目显示 0 时出现重复条目

mysql - 插入表格时自动保存某些行的选项有哪些?

mysql - 哪些软件可以将mysql套接字文件转发到远程服务器?