php - 来自数据库的不同 get_rows

标签 php database

这是我用来在 index.php 中使用 style.css 正确完成 li 和 div 的结果的函数,我只想在每个 li 中显示价格或服务想。示例:($_GET_ROW['ID'] = '1', $_GET_ROW['ID'] = '2')

function products() { $get = mysql_query('SELECT id, servico, preco FROM loja');

 if (mysql_num_rows($get)==0) {
    echo "Não existem produtos a serem mostrados!";
} else {
    while ($get_row = mysql_fetch_assoc($get)) {
    echo '<li class="l1 i1 column1">';
    echo '<h2>'.**$get_row["servico"]**. '</h2>';
    echo '<div class="basket"><a href="cart.php?adicionar=' .**$get_row['id']='1'**.'">Adicionar</a></p></div>';
    echo '<div class="preco"><em>Preco:</em><strong>'.number_format($get_row['preco'], 2).'</strong><span>EUR</span>';      
    echo '</div>';
    echo '<li class="l2 i0 column0">';
    echo '<h2>'**.$get_row["servico"].**'</h2>';
    echo '<div class="basket"><a href="cart.php?adicionar=' **.$get_row['id']='2'.**'">Adicionar</a></p></div>';
    echo '<div class="preco"><em>Preco:</em><strong>'.number_format($get_row['preco'], 2).'</strong><span>EUR</span>';      
    echo '</div>';

我的数据库:

-----------------------------------
id servico preco 
-----------------------------------
1 Servico Normal 29.5
-----------------------------------
2 Servico Rapido 32.5
-----------------------------------

最佳答案

您似乎需要一个 while 循环来像这样遍历行:

if (mysql_num_rows($get)==0) {
    echo "Não existem produtos a serem mostrados!";
} else {
    while($get_row = mysql_fetch_assoc($get)) {
    **echo '<li class="l1 i1 column1">';
    echo '<h2>'.$get_row["servico_normal"].'</h2>';
    echo '<div class="basket"><a href="cart.php?adicionar=' .$get_row['id'].'">Adicionar</a></p></div>';
    echo '<div class="preco"><em>Preco:</em <strong>'.number_format($get_row['preco'], 2).'</strong><span>EUR</span>';      
    echo '</div>';**
    }
}

但是,您应该立即停止使用 mysql_ 函数,因为它们是 being deprecated并且易受 SQL 注入(inject)攻击;并改用 mysqli_PDO

更新 1

mysql_ 函数是 officially deprecated .

我最初回答的原则仍然存在。您的数据库中有两行,您想要遍历它们。

while ($get_row = mysql_fetch_assoc($get)) {
    $liClass = 'l' . $get_row[id];

    echo '<li class="' . $liClass . ' i1 column1">';
    echo '<h2>' . $get_row[servico] . '</h2>';
    echo '<div class="basket"><p><a href="cart.php?adicionar=' . $get_row['id'] . '">Adicionar</a></p></div>';
    echo '<div class="preco"><em>Preco:</em><strong>' . number_format($get_row['preco'], 2) . '</strong><span>EUR</span>';      
    echo '</div>';
}

对于第一行,输出将是:

<li class="l1 i1 column1">
<h2>Servico Normal</h2>
<div class="basket"><p><a href="cart.php?adicionar=1">Adicionar</a></p></div>
<div class="preco"><em>Preco:</em><strong>29.50</strong><span>EUR</span></div>

关于php - 来自数据库的不同 get_rows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13826497/

相关文章:

java - 通过JDBC向PostgreSQL表中插入 "daterange"字段值

php - 如何避免 Error: PDOStatement::execute(): MySQL server has gone away in Yii?

python - SQL join、where、having 子句出现问题

php - Symfony2 将实体映射到不同的表

mysql - 调整数据库结构或 SQL 查询以允许特定输出

php - 如何在 php 中定义类的属性?

php - 与我的 PHP 网站一起实现 node.js 和 socket.io

php - 如何检查字符串是否是已知值之一?

php - Laravel 尝试对 API JSON 响应进行单元测试

php - 如何进行下一步登录