0

タイトルが少し奇妙でぎこちない言葉遣いで申し訳ありません。

AJAX/PHP/MySQL を使用してテーブルを作成するシステムを使用していますが、何らかの理由でいくつかの問題があります。

まず、結果をテーブルにエコーする PHP を次に示します。

if(mysql_num_rows($sql)>0) {
$quote=$quote."<h3>Hard Enamel</h3>";
while($row = mysql_fetch_array($sql)){

    $quote=$quote."<p>Size: ".$row["type"]."<br />Extras: ".$HEextras."</p>
    <table border='1' width='300' cellpadding='3'>
    <tr>
    <th width='100'>Quantity</th>
    <th width='100'>Unit Cost</th>
    <th width='100'>Setup</th>
    </tr>";


    if($row["100"]) {
        $quote=$quote."<tr><td>100</td><td>".cost($row["100"])."</td><td>".setup($row["setup"])."</td></tr>";
    }
    if($row["250"]) {
        $quote=$quote."<tr><td>250</td><td>".cost($row["250"])."</td><td>".setup($row["setup"])."</td></tr>";
    }
    if($row["500"]) {
        $quote=$quote."<tr><td>500</td><td>".cost($row["500"])."</td><td>".setup($row["setup"])."</td></tr>";
    }
    if($row["1000"]) {
        $quote=$quote."<tr><td>1,000</td><td>".cost($row["1000"])."</td><td>".setup($row["setup"])."</td></tr>";
    }
    if($row["2500"]) {
        $quote=$quote."<tr><td>2,500</td><td>".cost($row["2500"])."</td><td>".setup($row["setup"])."</td></tr>";
    }
    if($row["5000"]) {
        $quote=$quote."<tr><td>5,000</td><td>".cost($row["5000"])."</td><td>".setup(0)."</td></tr>";
    }
    if($row["10000"]) {
        $quote=$quote."<tr><td>10,000</td><td>".cost($row["10000"])."</td><td>".setup(0)."</td></tr>";
    }
    $quote=$quote."<br />";
}

echo $quote;
}

テスト中に、列type100250&を含む 2 行のデータを返す SQL がsetupあり、列のtype値は 12mm と 16mm です。これらは正常に返され、セットアップ値も同様ですが、列の値と100250ヘッダーが返されます。cost() 関数なしでも試してみましたが、何も変わりません。

また、間違った順序で読み込まれますが、その理由はわかりません! 以下に返された結果。

Hard Enamel

Size: 12mm
Extras: extrastring


Size: 16mm
Extras: extrastring

Quantity    Unit Cost   Setup
100 100 40
250 250 40

Quantity    Unit Cost   Setup
100 100 40
250 250 40

どんな助けでも感謝します、乾杯。

4

1 に答える 1

1

ワイルドな推測をしなければならなかった場合、mysql_fetch_array()数値の列名と一緒に使用することに関係している可能性があります。このmysql_fetch_array()関数は、デフォルトで、位置インデックスとラベル付きインデックスの両方を含む配列を返します。その中で何かが混乱しているかもしれません。

私は試してみます:

  • mysql_fetch_assoc()の代わりに使用mysql_fetch_array()
  • データベースの列名を数値以外に変更します (とにかくこれは良い考えです)。
  • 列名が数値のままである場合、クエリが列名を適切にエスケープしていることを確認してください

これらのいずれも効果がない場合は、データベースに含まれる正確なデータと、それを取得するために使用されているクエリを確認すると、問題が発生する可能性があるため役立ちます。

于 2013-10-18T17:10:20.283 に答える