0

次のコードについて本当に本当に助けが必要です。なぜそれが機能しないのか理解できません。

クエリを実行する必要がある MySQL テーブルがあり、特定の ID に対して 1 つの行を返すだけで済みます。ただし、mysql_fetch_array はそのテーブルの最初の列のみを返します - そして私は欲求不満で死にかけています...

$sqlCommand = "SELECT * FROM sqlInformationen WHERE ID = 2"; 

$sqlConn = mysql_connect($config['mysql_host'],$config['mysql_user'],$config['mysql_pass']);
mysql_select_db($config['db_name']) or die ("Fehler bei der Verbindungsaufnahme."); 

$result = mysql_query($sqlCommand); 
$row = mysql_fetch_array($result);  

echo $row['infTitel'];

データベースには、「ID」、「infTitel」、「infZusammenfassung」などのフィールドが含まれています。ただし、echo $row['ID'] のみが値を返します。

助けていただければ幸いです。

ありがとう。

4

3 に答える 3

3

使用する必要があります:

$row = mysql_fetch_assoc($result); 

結果として連想配列を取得します。

mysql_fetch_array($result)数値インデックスと連想インデックスの両方も返しますが、どのバージョン以降かはわかりません。

于 2012-08-27T11:28:34.550 に答える
2

Fetch Row は一度に 1 行取得するため、次のように while ループに入れる必要があります。

while($row = mysql_fetch_array($result))
{
    echo $row['infTitel'];
    echo $row['col2'];
    echo $row['col3'];
}

で選択した行の内容をエコーし​​ているときにselect *値が得られない場合は、その行の列が空であることを意味している可能性があります。

fetch_array を使用している場合は、列名とインデックスの両方を返す必要があります。これを試して、データを取得できるかどうかを確認してください。

while($row = mysql_fetch_array($result))
{
    for($i=0; $i<count($row);, $i++)
    {
        echo $row[$i]."<br>";
    }
}

これが期待するデータを示している場合 (空または null 行はメモリから空を返す必要があります)、構文に大文字と小文字の区別の問題がある可能性があり$row['Colname']ますか?

于 2012-08-27T11:28:34.217 に答える
2

$result = mysql_query($sqlCommand); の後

$data = array();
while ($row = mysql_fetch_array($result)) {
    $data[] = $row;
}
print_r($data);
于 2012-08-27T11:29:12.370 に答える