У меня есть некоторые проблемы с массивом $ строки, извлеченные из MySQL - PullRequest
0 голосов
/ 28 декабря 2011

У меня есть некоторые проблемы с массивом, полученным из MySQL

$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
mysql_fetch_row($result);

echo $row[0]; // doesn't work
echo $row[1]; // doesn't work

, но эта работа

echo $row["FirstFieldName"] //OK
...

как мне изменить следующий код, чтобы он работал?

for ( $i = 0; $i < count( $row ); $i++ )
{
    echo $row[ $i ];
}

спасибо

Ответы [ 5 ]

2 голосов
/ 28 декабря 2011

сделать ниже изменения. используйте mysql_fetch_array вместо mysql_fetch_row()

mysql_fetch_row() извлекает одну строку данных из результата, связанного с указанным идентификатором результата. Строка возвращается в виде массива. Каждый столбец результата сохраняется в смещении массива, начиная со смещения 0.

 $result = mysql_query("SELECT id,email FROM people WHERE id = '42'");

$row=mysql_fetch_array($result);

for ( $i = 0; $i < count( $row ); $i++ )
{
    echo $row[ $i ];
}
1 голос
/ 28 декабря 2011

Попробуйте вместо этого использовать mysql_fetch_array () .

Три функции, с которыми вы должны ознакомиться:

mysql_fetch_row, mysql_fetch_array и mysql_fetch_assoc

каждаяделает вещи немного по-другому.

Попробуйте это так:

$sql = "SELECT id,email FROM people WHERE id = '42'";
$result = mysql_query($sql) or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
  echo $row[0];
}
0 голосов
/ 28 декабря 2011

т.е. .... это берет все извлеченные ключи / поля и объединяет их и передает их в $ s, которые затем могут быть помещены в html ..

foreach($row as $key=>$val){
      $$key = $val;
      $s.= "<tr><td>".$key."</td><td>
      <input type=text size=88 name='".$key."' value='".$val."'></td></tr>";
      }
// end your php then onward to html
    <table>
    <?php echo $s;?>
    </table>
0 голосов
/ 28 декабря 2011

mysql_fetch_row возвращает одну строку, поэтому для ее использования необходимо выполнить:

while( $row = mysql_fetch_row( $result ) ) 
{
    echo $row["email"];
}

В противном случае, как сказал Майк, вы должны использовать mysql_fetch_array()

0 голосов
/ 28 декабря 2011
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
$row=mysql_fetch_array($result);

echo $row[0];
echo $row[1];

это будет работать

...