2012-05-10 240 views
-2

我正在研究一个php画廊。我使用php显示来自mysql数据库的图像,但我的图像逐个显示。这意味着第一行中的第一个图像和第二行中的第二个图像。但我想显示我的图像每行3或4。我可以做什么编码修改。我的php代码如下所示。PHP的Mysql图像显示

<?php 
    include_once("config.php"); 
    $result=mysql_query("SELECT * FROM images"); 
    while($res=mysql_fetch_array($result)){ ?> 
     <table width='200'> 
      <tr> 
       <td><?php echo"<a href='indimage.php?imageid=$res[imageid]'>"?><?php echo $res['imagename']?><?php echo"</a>"?></td> 
      </tr> 
      <tr> 
       <td> 
        <div id="news-image"> 
         <?php echo"<a href='indimage.php?imageid=$res[imageid]'>"?> 
         <?php echo'<img src='.$res['image'].' width="250" height="100">'?><?php echo"</a>"?> 
        </div> 
       </td> 
      </tr> 
     </table> 
<?php } ?> 
+0

检查答案。 –

回答

0

您正在输出每张图片的表格。至少,你的代码应该是更多这样的:

<table> 
<tr> 
<?php while($res etc...) { ?> 
<td> 
    <img src="<?php echo ......?>" /> 
</td> 
<?php } ?> 
</tr> 
</table> 

现在你会得到所有的图像在一个表中的一行。让它有多行是作为OP的练习。

0

使用下面的代码。

<?php 
include_once("config.php"); 
$result=mysql_query("SELECT * FROM images"); 
?> 
<table> 
<tr> 
<? 
$varcount=0; 
while($res=mysql_fetch_array($result)) 
{ 
$varcount++; 
if($varcount == 4) // Count of images per row. 3 or 4 
{ 
     $varcount=0; 
?> 
    </tr><tr> 
<? 
} 
?> 

<td> 
<table width='200'> 
<tr> 
<td><?php echo"<a href='indimage.php?imageid=$res[imageid]'>"?><?php echo $res['imagename']?><?php echo"</a>"?></td> 
</tr> 
<tr> 
<td> 
<div id="news-image"> 
<?php echo"<a href='indimage.php?imageid=$res[imageid]'>"?> 
<?php echo'<img src='.$res['image'].' width="250" height="100">'?><?php echo"</a>"?> 
</div> 
</td> 
</tr> 
</table> 
</td> 
<?php 
} 
?> 
</tr> 
</table> 
+4

20世纪90年代调用并希望它的嵌套表格返回... –

+0

@Marc B,他有很多东西在表格里面,就像div一样,所以我没有打扰到代码。 –

+0

您还应该增加并重置'$ varcount'。 – Kaivosukeltaja

1

array_chunk()是为你拆分数组的X项目的集合,以循环的功能,通过无需保持计数器(那么你可以使用array_pad()的最后一个项目在列表中,如果你需要填充)

if($array = array_chunk(mysql_fetch_assoc($result),4)) 
{ 
    foreach($array as $row) 
    { 
    echo '<div class="row">'; 
    foreach($row as $col) 
    { 
     echo '<div class="item">' . $col['image'] . '</div>'; 
    } 
    echo '</div>'; 
    } 
} 
0

遵循这个例子

<table> 
<tr> 
<?php 
$i = 1; 
do{ 
    echo "<td>" . $i . "</td>"; 
    //Num of Columns 
    if($i%3 == 0){ 
     echo "</tr><tr>"; 
    } 

    $i++; 
}while($i<=10); 
?> 
</tr> 
<table> 

将返回喜欢你想要的结果东西..

enter image description here

0
<?php 
include_once("config.php"); 
$result=mysql_query("SELECT * FROM images"); 
?> 
<table> 
<tr> 
    <?php 
     $cnt = 0; 
     while($res=mysql_fetch_array($result)) 
     { 
     if($cnt == 3){ 
     echo "</tr><tr>"; 
     } 
      ?> 
     <td> 
    <table width='200'> 
     <tr> 
      <td><?php echo"<a href='indimage.php?imageid=$res[imageid]'>"?><?php echo $res['imagename']?><?php echo"</a>"?></td> 
     </tr> 
     <tr> 
      <td> 
       <div id="news-image"> 
        <?php echo"<a href='indimage.php?imageid=$res[imageid]'>"?> 
        <?php echo'<img src='.$res['image'].' width="250" height="100">'?><?php echo"</a>"?> 
       </div> 
      </td> 
     </tr> 
    </table> 
</td> 
<?php 
$cnt++; 
    } 
?> 
</tr> 
</table> 
0

你可以代替输出的图像作为div的列表,或者只是div的,然后用CSS来显示两列的图像。你的布局不应该那么硬。

<style> 
    div.gallery { 
     width: 650px; 
    } 
    div.gallery ul li { 
     list-style: none; 
     float: left; 
    } 
    div.image { 
     height: 500px; 
     width: 300px; 
    } 
</style> 
<div class="gallery"> 
    <ul> 
     <li> 
      <div class="image"> 
       <span class="image_title">Some title</span><br/> 
       <img src="foo.png"/> 
      </div> 
     </li> 
     <li> 
      <div class="image"> 
       <span class="image_title">Another title</span><br/> 
       <img src="bar.png"/> 
      </div> 
     </li> 
     <li> 
      <div class="image"> 
       <span class="image_title">Another title</span><br/> 
       <img src="foo.png"/> 
      </div> 
     </li> 
     <li> 
      <div class="image"> 
       <span class="image_title">Another title</span><br/> 
       <img src="bar.png"/> 
      </div> 
     </li> 
     <li> 
      <div class="image"> 
       <span class="image_title">Another title</span><br/> 
       <img src="foo.png"/> 
      </div> 
     </li> 
    </ul> 
</div> 

结果:

enter image description here

你的代码应该是这个样子:

<div class="gallery"> 
    <ul> 

<?php 
include_once("config.php"); 
$result = mysql_query("SELECT * FROM images"); 
while($res = mysql_fetch_array($result)) { 
?> 
     <li> 
      <div class="image"> 
       <a class="image_title" href="indimage.php?imageid=<?php echo $res['imageid']?>"><?php echo $res['imagename']?></a><br/> 
       <a href="indimage.php?imageid=<?php echo $res['imageid']?>"><img src="<?php echo $res['image']?>" /></a> 
      </div> 
     </li> 
<?php 
} 
?> 
    </ul> 
</div> 
0

这里是解决方案,我想你想的是: 有三页。 1. index.php(具有上传图片的形式) 2. upload.php(将图片保存在目录及其在数据库中的路径) 3. showimage.php(最后会显示图片)

这里是代码 (的index.php)

<form method="post" action="upload.php" enctype="multipart/form-data"> 

<label>Choose File to Upload:</label><br /> 

<input type="hidden" name="id" /> 

<input type="file" name="uploadimage" /><br /> 
<input type="submit" value="upload" /> 

</form> 

(upload.php的)

<?php 
$target_Folder = "upload/"; // directory where images will be saved 



$target_Path = $target_Folder.basename($_FILES['uploadimage']['name']); 

$savepath = $target_Path.basename($_FILES['uploadimage']['name']); 

    $file_name = $_FILES['uploadimage']['name']; 

    if(file_exists('upload/'.$file_name)) 
{ 
    echo "That File Already Exisit"; 
    } 
    else 
    { 

     // Database 

     $con=mysqli_connect("localhost","user_name","pasword","database"); // Change it if required 
     //Check Connection 
     if(mysqli_connect_errno()) 
     { 
      echo "Failed to connect to database" .  mysqli_connect_errno(); 
     } 

     $sql = "INSERT INTO image (id,image, image_name) 
        VALUES ('$uid','$target_Folder$file_name','$file_name') "; 

     if (!mysqli_query($con,$sql)) 
     { 
      die('Error: ' . mysqli_error($con)); 
     } 
     echo "1 record added successfully in the database"; 
     echo '<br />'; 
     mysqli_close($con); 

     // Move the file into UPLOAD folder 

     move_uploaded_file($_FILES['uploadimage']['tmp_name'],  $target_Path); 

     echo "File Uploaded <br />"; 
     echo 'File Successfully Uploaded to:&nbsp;' . $target_Path; 
     echo '<br />'; 
     echo 'File Name:&nbsp;' . $_FILES['uploadimage']['name']; 
     echo'<br />'; 
     echo 'File Type:&nbsp;' . $_FILES['uploadimage']['type']; 
     echo'<br />'; 
     echo 'File Size:&nbsp;' . $_FILES['uploadimage']['size']; 

    } 
?> 

<a href="showimage.php">Show Image</a> 

(showimage。PHP)

<?php 


$con=mysqli_connect("localhost","user_name","password","database_name"); // Change it if required 

// Check connection 
if (mysqli_connect_errno()) 
{ 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

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


while($row = mysqli_fetch_array($result)) 
{ 
echo '<img src="' . $row['image'] . '" width="200" />'; 
echo'<br /><br />'; 
} 


mysqli_close($con); 

?> 

特点

它会检查文件名,如果该名称的文件已经找不到,它将不会上传下载文件,并提醒用户。

数据库结构

ID INT(4)自动递增 - 图像VARCHAR(100) - IMAGE_NAME VARCHAR(50)