如何列出从MySQL数据库获取数据的项目列表

时间:2014-05-22 16:44:40

标签: php mysql

我有一个HTML / CSS“内容框”(它基本上是一个包含产品或项目的图像,标题,描述,名称等的框),我有一个数据库表,其中包含许多项目的所有信息/产品。
我想从数据库中获取product1(标题,图像,描述)中的所有这些数据并将其放入我的内容框中 我希望用我桌上的所有产品来完成这项工作,并将所有这些内容框显示在彼此之下。有点像列表中的craigslist for sale广告 我该怎么做呢?我需要JavaScript还是从哪里开始?我对编程知之甚少,而且我正在学习。

我意识到我应该在我的问题中加入一些代码,所以这里有另一个问题:
我有一个div容器,如下所示:

<div class="contentBox">
                <div id="column1">
                    <img src="images/gallery/girlthinking.jpg" alt="" id="imagen">
                </div>

                <div id="column2">
                    <p class="tituloanuncio"><b>Titulo del anuncio</b></p>
                    <p class="descripcionanuncio">Descripcion kfewoijfew</p>
                </div>

                <div id="column3">
                    <p class="precioanuncio"><b>$1000</b></p>
                    <p class="contactoanuncio"><b>Contacto<br></b>Dueño: Alejandro<br>Telefono: 8331578460<br>jorgegilcavazos@gmail.com<br>Facebook</p>
                </div>
</div>

它在html中工作,我想用我表中的数据替换放在那里的默认值,例如它所说的。

<div id="column2">
                    <p class="tituloanuncio"><b>Titulo del anuncio</b></p>
                    <p class="descripcionanuncio">Descripcion kfewoijfew/p>
 </div>

我想将“titulo del anuncio”替换为“anuncio_titulo”列,并将“descripcion kfewoijfew”替换为“anuncio_descripcion”列。

我有这个PHP代码,显示来自2个当前专栏的所有数据

$result = mysqli_query($con,"SELECT * FROM anuncio");

while($row = mysqli_fetch_array($result)) {
echo $row['anuncio_titulo'];
echo $row['anuncio_descripcion'];
}

如何回复我的初始html div容器替换我用新列放置的默认文本?

我希望这是有道理的。

1 个答案:

答案 0 :(得分:1)

您需要先从数据库中获取数据(阅读MySQL,mysqli PHP function)。然后,您需要将数据传递到用户使用PHP看到的站点(阅读PHP)。最后,您需要使用HTML显示数据(请参阅HTML with PHP)。

mysqli函数的好解释是here。要获取数据:

  1. 连接
  2. 创建查询
  3. 执行查询
  4. 从查询中获取数据
  5. 首先连接:

    $db = new mysqli('localhost', 'user', 'pass', 'demo');
    
    // check if connection succeeded
    if($db->connect_errno > 0){
        die('Unable to connect to database [' . $db->connect_error . ']');
    }
    

    然后创建并执行查询:

    $sql = "SELECT * FROM `users` WHERE `live` = 1"
    
    if(!$result = $db->query($sql)){
        die('There was an error running the query [' . $db->error . ']');
    }
    

    并从查询中获取数据

    $usernames = array();
    while($row = $result->fetch_assoc()){
        $usernames[] = $row['username'] . '<br />';
    }
    

    获得数组后,将其传递给视图并进行打印,例如作为表格的一部分:

    <table>
        <?php foreach($username in $usernames): ?>
        <tr><td><?php $username ?> </td></tr>
        <?php endforeach;?>
    </table>
    

    如果您不需要在不重新加载页面的情况下更改数据,则不需要javascript或ajax。我可以通过几种方式看到你想做的事情,但只会解释最简单的方法。

    首先是将文本分配给变量并打印出来。如果需要使用数据库中的数据进行更改,则只需将值赋给该变量。

    <?php 
       $title = "Titulo del anucio";
       $desc = "Descripcion kfewoijfew";
    
       // it has default values, let's say you want to fill them with data from db now
       if(/* some condition here, like data from GET : $_GET['change_data'] == true or something */) {
           $db = new mysqli('localhost', 'user', 'pass', 'demo');
           // (...) and so on like I wrote above, query the data and assign to value
           $res = $result->fetch_assoc() // if you know there is one result you can shorten it
           $desc = $res['anuncio_descripcion'];
           $title = $res['anuncio_titulo'];
       }
    ?>
    
    
    <div id="column2">
                    <p class="tituloanuncio"><b><?php echo $title;?></b></p>
                    <p class="descripcionanuncio"><?php echo $desc?>/p>
     </div>