gpt4 book ai didi

php - 在 PHP 中将 MySQL 数据导出到 CSV 时自动前进到下一行?

转载 作者:行者123 更新时间:2023-11-30 23:23:17 25 4
gpt4 key购买 nike

我试图让一个脚本工作,其中某些选定的记录(取决于用户输入)被选中,然后导出到 CSV 文件。我已经尝试了各种方法来做到这一点;到目前为止,这是我能找到的最成功的(实际上来 self 几年前做的一些代码),但它只会一遍又一遍地返回第一行,直到行用完(你可以看到我的锯末-我用来告诉 PHP 不断获取行直到结果耗尽的传输方法)。我的问题:可能有更简单的方法来做到这一点——有什么想法吗?如果不是,我该怎么做才能让 MySQL 在下次循环运行时前进到下一行?我认为它无论如何都应该使用 mysql_fetch_array 来完成。

是的,我查看了 fputcsv,但似乎无法传递任何数据。当我尝试使用 fputcsv 传递数组并通过 mysql_fetch_array、mysql_fetch_assoc 或 mysql_fetch_row 获取数组时,CSV 文件总是空白。

我一直在边学边学,这是我只是没有学到一些东西以继续前进的时候之一。我也不知道那么多。

我的代码,或者至少是必要的代码:

        $result = mysql_query("SELECT id FROM student_history WHERE username='$username'");
$numrows = mysql_num_rows($result);
if (!$result) {
die("Query to show fields from table failed!:" .mysql_error());
}
$write = fopen("exportedmagic.csv", 'w') or die ("Can't create/open file to write! Drats!");
fwrite($write, "ID, Username, Class, Status, Date, Time\n");
while($numrows > 0) {
$query = "SELECT id, username, class, status, date, time FROM student_history WHERE username='$username'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
$id = $row['id'];
$username = $row['username'];
$class = $row['class'];
$status = $row['status'];
$date = $row['date'];
$time = $row['time'];
fwrite($write, $id .", " .$username .", " .$class .", " .$status .", " .$date .", " .$time ."\n");
$numrows--;
}

最佳答案

尝试更改为-

if($numrows > 0) {
$query = "SELECT id, username, class, status, date, time FROM student_history WHERE username='$username'";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result){
$id = $row['id'];
$username = $row['username'];
$class = $row['class'];
$status = $row['status'];
$date = $row['date'];
$time = $row['time'];
fwrite($write, $id .", " .$username .", " .$class .", " .$status .", " .$date .", " .$time ."\n");
}
}

使用 while($numrows > 0){$query= ... $numrows--; 每次循环时您都在重做查询。

此外,您可以使用 fputcsv() 而不是使用 fwrite()这使得添加行成为可能,而无需遍历当前代码中的每个列值。

注意:您需要考虑更新到 mysqli_*PDO,因为 mysql_* 扩展已弃用。

关于php - 在 PHP 中将 MySQL 数据导出到 CSV 时自动前进到下一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14542464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com