我如何从每一行mysql表的列中创建一个变量?

时间:2013-10-30 19:11:26

标签: php mysql sql sql-server

尽量不要制作一个包含大量列的表格。而是制作一些列和一大堆行(或记录)。

如果我用大量列进行此操作,我会知道如何执行此操作,但是如何使用多行/记录执行此操作?

我有一个包含这些字段的表格:

id, product_category, product_name, quantity_range, discount_amt

会有很多记录,但我会把它缩短到几行来解决这个问题。

让我说我有这些记录:

1    Post Card    4x6    5M to 9,999      0.007
2    Post Card    4x6    10M to 14,999    0.01
3    Post Card    4x6    15M to 19,999    0.013
4    Post Card    4x6    20M to 24,999    0.015
5    Post Card    4x6    Over 25M         0.019

现在我要做的是在discount_amt列中创建所有值的一组变量。

所以我选择表格中的所有内容:

$pricediscountquery = mysql_query("SELECT * FROM pricing_discount") or die(mysql_error());

然后遍历结果/行,如下所示:

while($pricingdiscountrow = mysql_fetch_array( $pricediscountquery )) {
  //echo $pricingdiscountrow['product_category']." ";
  //echo $pricingdiscountrow['product_name']." ";
  //echo $pricingdiscountrow['quantity_range']." ";
  echo $pricingdiscountrow['discount_amt']." ";
  echo "<br />";
}

这将在单个变量名称中显示该列的所有值。我不想那样。我不是0.007的变量,0.01的不同变量,0.013的不同变量,0.015的不同变量,0.019的不同变量。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

你可以使用数组:

$i=0;
while($pricingdiscountrow = mysql_fetch_array( $pricediscountquery )) 
$myarray[$i++]=$pricingdiscountrow['discount_amt'];

答案 1 :(得分:0)

您可以使用变量变量。它实质上是将一个变量设置为等于:

$foo = 'bar';

然后使用该变量的值设置为下一个变量的名称:

$$foo = 'dog';
echo $bar; // would return 'dog';

但是,使用关联数组会更容易。

$data = array();
while() {
    $data[$variableName] = $pricingdiscountrow['discount_amt'];
};