2

这是我的数据

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吗?

4

2 回答 2

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>';
}
于 2012-10-01T15:59:13.473 回答
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。

如果我的代码中有任何错误,请原谅我,这还没有经过测试,但应该可以工作。

于 2012-10-01T15:58:47.053 回答