MySQL中的PHP foreach语句选择查询

时间:2012-10-01 15:49:36

标签: php mysql sql foreach

这是我的数据

id          cost    cat         foreign     colours
--------------------------------------------------------   
385_white   99      swarovski   12          black;blue
386_white   99      swarovski   12          black;blue;green
387_white   99      swarovski   12          yellow;green
389_white   99      swarovski   12          white;silver
385_white   99      swarovski   12          silver

这是我的查询

$checkSQL=mysql_query("SELECT * FROM `products`");
while($r = mysql_fetch_array($checkSQL)) {
    echo '
        <ul class="ColourList">
            <li class="$row">$row</li>
        </ul>
    ';
}

伪代码 - 这应该将列表拆分为唯一的li

foreach ($r["colours"] as $key){
                        $key = explode(";", $r["colours"]);
                        <li class="$key"></li>
                    }

我想为表格行中的每种颜色创建一个列表li项,所以基本上将冒号分成不同的行 - 认为它是explode

2 个答案:

答案 0 :(得分:5)

这应该这样做:)

$checkSQL=mysql_query("SELECT * FROM `products`");
while($r = mysql_fetch_assoc($checkSQL)) {

    echo '<ul class="ColourList">';
    $cols = explode( ';', $r['colours'] );
    foreach ( $cols as $col ){
        echo '<li class="' . $col . '">' . $col . '</li>';
    }
    echo '</ul>';
}

答案 1 :(得分:0)

$this->dbo = new mysqli(
    'localhost',
    'username',
    'password',
    'name_of_database'
);

$r = $this->dbo->query( "SELECT * FROM `products`" ) or die( $this->dbo->error );

while ( $r_items = $r->fetch_assoc() )
{
    echo '<ul class="ColourList">';
    foreach( explode(";" $r_items['colours']) as $r_color) {
        echo '<li class="' . $r_color . '">' . $r_color . '</li>';
    }
    echo '</ul>';
}

$this->dbo->close();

我提供了此代码而不是原始代码,因为其他人已经提供了一个很好的示例,说明如何修复代码以使其工作。这是一个mysqli的例子,出于安全原因你应该考虑使用mysqli而不是常规的mysql ...我不知道确切的原因,但我被告知最好使用mysqli。

如果我的代码中有任何错误,请原谅我,这尚未经过测试但应该有效。