0

3 つのコンポーネントで Web サイトを作成しています。(JQuery と CSS を追加しますが、今のところ、いくつかの基本的なメカニズムを解決しようとしています)

私の構造は次のとおりです。

  • プレゼンテーション層用の HTML ファイル。
  • クライアント側処理用の JAVASCRIPT ファイル
  • サーバー側処理用の PHP ファイル。

以下は私のコードです:

html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


    <script type="text/javascript" src="RipListQuery.js"></script>
    <title>CD Riplist Query</title>
</head>
<body onload="getArtists()">
    <h1>CD Riplist Query</h1>
    <div id="divArtists" >

    </div>

</body>
</html>

Javascript:

function getArtists() {
xmlhttp = new XMLHttpRequest();


xmlhttp.open("GET","dataAccess.php",false);
xmlhttp.send();

document.getElementById("divArtists").innerHTML=xmlhttp.responseText;
}

php:

<?php

$con = mysql_connect('myServerAddress', 'ainsworthremote', 'myPassword');
if (!$con) {
    die("Could not connect: " . mysql_error());

}

$response = 
 "<table border='1' id='Artists'><thead><tr><th>Artist</th><th>Albums</th></tr></thead><tbody>";

mysql_select_db("ainsworthremote", $con);

$sql="SELECT artist, COUNT(*) AS albums FROM CD_RipList GROUP BY artist ORDER BY artist ";

$result=mysql_query($sql);

while ($row = mysql_fetch_array($result)) {
    $response = $response . "<tr>" .
    "<td>" . $row['artist'] . "</td>" .
    "<td>" . $row['albums'] . "</td>" .
    "</tr>";
}
$response = $response . "</tbody></table>";

mysql_close($con);

echo $response;

?>

期待どおりにアーティスト名で満たされたテーブルを取得する代わりに、次のようになります。

CD リプリスト クエリ

ArtistAlbums"; mysql_select_db("ainsworthremote", $con); $sql="SELECT artist, COUNT(*) AS albums FROM CD_RipList GROUP BY artist ORDER BY artist "; $result=mysql_query($sql); while ($row = mysql_fetch_array($result)) { $response = $response . "" . "" . $row['artist'] . "" . "" . $row['albums'] . "" . ""; } $response = $response . ""; mysql_close($con); echo $response; ?> 

私が知りたいのは (私が間違っていること以外に)、次のとおりです: 私のタグはどうなりましたか?

4

1 に答える 1

0

while ステートメントは意味がありません。たとえ意味があったとしても、「=」ではなく等号「==」演算子を使用する必要があります。SQL リクエストから配列を返すため、その配列を反復処理する必要があります。また、既存の str 変数に追加する場合は、「.=」演算子を使用できます。例は次のようになります。

$response .= "</tbody></table>";

while ループは、代わりに foreach ループにすることができます。

$query = mysql_query($sql);
$result = mysql_fetch_array($result);

foreach($result as $row){
    $response .= "<tr>" .
    "<td>" . $row['artist'] . "</td>" .
    "<td>" . $row['albums'] . "</td>" .
    "</tr>";
}

$response .= "</tbody></table>";
echo $response;

それが役立つかどうかを確認してください。その上、問題ないように見えますが、引用符のエスケープの問題が発生する可能性があります。

于 2012-08-29T00:47:26.743 に答える