2014-01-08 55 views
0

我想通过使用mysql来检索它,将这一行硬编码图像转换为动态代码。使用php mysql动态显示图像

<div class="item-block-1"> 
          <span class="tag-sale"></span> 
          <div class="image-wrapper"> 
           <div class="image"> 
            <div class="overlay"> 
             <div class="position"> 
              <div> 
               <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam quis metus non erat tincidunt consectetur. Maecenas ac turpis id lorem.</p> 
               <a href="#" class="quickshop">Quick shop</a> 
              </div> 
             </div> 
            </div> 
            <a href="#"><img src="images/photos/photo-3.jpg" style="margin: -32.5px 0 0 0;" alt="" /></a> 
           </div> 
          </div> 
          <h2><a href="pandora-item.html">Polka dot light blue blouse</a></h2> 
          <p class="price">$13.99<s>$36.99</s></p> 
         </div> 

我的动态代码如下,但只允许我检索,而不是通过代码循环只有一个形象..

<div class="item-block-1"> 
          <div class="image-wrapper"> 
           <div class="image"> 
            <div class="overlay"> 
             <div class="position"> 
              <div> 
               <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam quis metus non erat tincidunt consectetur. Maecenas ac turpis id lorem.</p> 
               <a href="#" class="quickshop">Quick shop</a> 
              </div> 
             </div> 
            </div> 
             <?php 

$result = mysql_query("SELECT * FROM my_image", $connection); 


while($row = mysql_fetch_array($result)) 
{  
    echo "<div><img src=\"uploadedimages/".$row['name']."\" /></div>"; 
} 
?> 
</div> 
</div> 

任何人都可以纠正我?

+0

首先,你应该认真考虑切换到mysqli_ *或PDO,mysql_ *已被弃用从PHP 5.5.0 – Kostis

+0

感谢您的意见,我仍然是一个学生尝试一些教程..你能帮我以上? – user3145668

+0

按下'ctrl + u'并在浏览器中检查呈现的源代码以检查img'src',或者您可以在浏览器中安装并使用'firebug'工具或开发人员工具 –

回答

0

既然你弥补的建议

<?php 
/* 
* I usually put this in a class, but doing this all in-line for you. 
* I did this with PDO, which is just like mysql_, but better. 
*/ 
$db_name = ''; // put your database name here 
$db_host = ''; // your host name, usually localhost 
$db_username = ''; // the database username used to access this database 
$db_password = ''; // password associated with the username 
$dsn = 'mysql:dbname='.$db_name.';host='.$db_host; // this is for the PDO object  
$PDO = new PDO($dsn, $db_username, $db_password); 

$query = 'SELECT * FROM my_image'; 

$Stmt = $PDO->prepare($query); // prepares your SQL 
$Stmt->execute() // runs your SQL 

// This will test to see if you get any images back from your database 
if ($Stmt->rowCount() > 0) { 
    /* 
    * This means you have atleast 1 image back from your database 
    * The wile loop will iterate through your images from the database 
    * and generate the HTML below for each, only changing the name of the file 
    * on each iteration 
    */ 
    while ($row = $Stmt->fetch(PDO::FETCH_ASSOC)) { 
     echo '<div class="item-block-1">'; 
     echo  '<div class="image-wrapper">'; 
     echo   '<div class="image">'; 
     echo    '<div class="overlay">'; 
     echo     '<div class="position">'; 
     echo      '<div>'; 
     echo       '<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam quis metus non erat tincidunt consectetur. Maecenas ac turpis id lorem.</p>'; 
     echo       '<a href="#" class="quickshop">Quick shop</a>'; 
     echo      '</div>'; 
     echo     '</div>'; // class="position" div 
     echo    '</div>'; // class="overlay" div 
     echo    '<div><img src="uploadedimages/'.$row['name'].'" /></div>'; // This is the actual image 
     echo   '</div>'; // class="image" div  
     echo  '</div>'; // class="image-wrapper" div 
     echo '</div>'; // class="image-block-1" div  

    } 
} 

当然,这并不是如何正确地做到这一点试试这个代码

<?php 
$result = mysql_query("SELECT * FROM my_image"); 
?> 
<div class="item-block-1"> 
          <div class="image-wrapper"> 
           <div class="image"> 
            <div class="overlay"> 
             <div class="position"> 
              <div> 
               <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam quis metus non erat tincidunt consectetur. Maecenas ac turpis id lorem.</p> 
               <a href="#" class="quickshop">Quick shop</a> 
              </div> 
             </div> 
            </div> 
            <?php         
            while($row = mysql_fetch_array($result)) 
             { 
            ?> 
            <div> 
             <img src="new/<?php echo $row['name']; ?>"/> 
            </div> 
            <?php 
             }  
            ?> 
            </div> 
           </div> 
          </div> 
+0

嗨,我有一个解析错误:语法错误,意外'>' – user3145668

+0

立即尝试。他的格式都搞砸了。 '''不是代码的一部分 – Machavity

+0

嗨,它的工作现在,但它仍然只显示1图像。 – user3145668

0

,但如果你是做在线状这,就是这样。 while循环将为每个图像生成SAME html,除了图像文件路径,其中的图像文件路径会根据while循环中的当前行进行更改。

+0

嗯我很高兴误解了这个问题。我会稍微编辑我的答案,以显示为1项目添加多个图像。但bascially你回声相同的HTML和循环只通过图像,而不是整个HTML。 – kchang4