对不起,如果标题措辞有点奇怪和尴尬。
我有一个通过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返回包含type
,100
,250
&amp;列的2行数据。 setup
,列type
的值为12毫米和16毫米。这些返回正常,设置值也是如此,但列100
和&amp;的值也是如此。 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
任何帮助表示欢迎,欢呼。
答案 0 :(得分:1)
如果我不得不大胆猜测,它可能与使用mysql_fetch_array()
以及具有数字列名称有关。默认情况下,mysql_fetch_array()
函数将返回一个包含位置和标记索引的数组。在那里可能会有些混淆。
我会尝试:
mysql_fetch_assoc()
代替mysql_fetch_array()
如果这些都没有任何效果,那么查看数据库中包含的确切数据和用于获取它的查询将会很有帮助,因为这些也可能是潜在的问题。