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;
}

在测试时,我让 SQL 返回 2 行数据,其中包含type100250&列,setuptype值分别为 12 毫米和 16 毫米。这些返回很好,设置值也是如此,但列的值100&250返回列标题。也尝试不使用 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 回答