PHP Mysql图像显示

时间:2012-05-10 04:39:47

标签: php mysql

我在php画廊工作。我使用php从mysql db显示图像,但我的图像逐个显示。这意味着第一行中的第一个图像和第二行中的第二个图像。但是我希望每行显示3或4个图像。我可以做出哪些编码更改。我的PHP代码如下所示。

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

7 个答案:

答案 0 :(得分: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>';
  }
}

答案 1 :(得分:0)

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

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

现在,您将获得单个表格中的所有图像。让它有多行作为OP的练习。

答案 2 :(得分: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>

答案 3 :(得分: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

答案 4 :(得分: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>

答案 5 :(得分: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>

答案 6 :(得分: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)