我有一个名为teste的数据库,其中有一个名为exemplo的表,其中包含2列(id,nome): 想要一个php脚本来选择nome列中的所有信息,并回显该信息并将它们放在txt文件中。代码有什么问题? 我只能看到第一个值,而不是第二个......并且有一个无限循环!
$link = mysql_connect('localhost', 'root', '123');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('teste', $link);
/* Desired */
$file = fopen("myfile.txt","w");
$result = mysql_query("SELECT * FROM exemplo");
$array = mysql_fetch_array($result);
while ($array) {
echo $array['nome'];
fputs($file ,$array['nome']);
}
mysql_close($link);
答案 0 :(得分:3)
$array = mysql_fetch_array($result);
这只取一行结果。它不会将整个结果集填充到您的数组中。你需要这样做:
while($row = mysql_fetch_array($result)) {
echo $row['nome'];
fputs($file, $row['nome']);
}
答案 1 :(得分:0)
您分配$array
一次而不是在while($array)
中循环它,以便在$array
不变的情况下继续运行和运行!
尝试更改您的代码:
<?php
$link = mysql_connect('localhost', 'root', '123');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('teste', $link);
/* Desired */
$file = fopen("myfile.txt","w");
$result = mysql_query("SELECT * FROM exemplo");
while ($array = mysql_fetch_array($result)) {
echo $array['nome'];
fputs($file ,$array['nome']); }
mysql_close($link);
?>
答案 2 :(得分:0)
那是因为mysql_fetch_array
一次只返回一个结果,所以$array
始终为真。你想要这个:
while ($array = mysql_fetch_array($result)) {
echo $array['nome'];
fputs($file ,$array['nome']);
}
答案 3 :(得分:0)
mysql_fetch_array
返回一行。你需要循环调用它:
while ($array = mysql_fetch_array($result)) {
echo $array['nome'], "\n";
// do more stuff
}
答案 4 :(得分:0)
这应该有效。你离开了fputs
数据循环。
<?php
$link = mysql_connect('localhost', 'root', '123');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('teste', $link);
/* Desired */
$file = fopen("myfile.txt","w");
$result = mysql_query("SELECT * FROM exemplo");
while($array = mysql_fetch_array($result))
{
echo $array['nome'];
fputs($file, $array['nome'] ."\n");
}
mysql_close($link);