PHP скрипт для чтения из базы данных - PullRequest
1 голос
/ 17 мая 2011

У меня есть база данных с именем teste с таблицей под названием instancelo с 2 столбцами (id, nome): Хотите, чтобы скрипт php выделил всю информацию в столбце nome, отобразил эту информацию и поместил ее в текстовый файл. Что не так в коде? Я вижу только первое значение, а не второе .. И с бесконечным циклом!

$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);

Ответы [ 5 ]

3 голосов
/ 17 мая 2011
    $array = mysql_fetch_array($result);

Это выбирает только одну строку результатов.Он не заполняет весь набор результатов в вашем массиве.Вам нужно сделать:

while($row = mysql_fetch_array($result)) {
   echo $row['nome'];
   fputs($file, $row['nome']);
}
0 голосов
/ 17 мая 2011

Это должно работать.вы выходили 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);
0 голосов
/ 17 мая 2011

mysql_fetch_array возвращает одну строку. Вы должны вызвать это в цикле:

while ($array = mysql_fetch_array($result)) {
    echo $array['nome'], "\n";
    // do more stuff
}
0 голосов
/ 17 мая 2011

Это потому, что mysql_fetch_array возвращает только один результат за раз, поэтому $array всегда имеет значение true.Вы хотите это:

while ($array = mysql_fetch_array($result)) {
  echo $array['nome'];
  fputs($file ,$array['nome']); 
}
0 голосов
/ 17 мая 2011

Вы присваиваете $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);
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...