2012-05-10 57 views
-2

私はPHPギャラリーで作業しています。 PHPを使ってmysql dbからイメージを表示していますが、私のイメージは一つずつ表示されています。第1行の第1イメージと第2行の第2イメージを意味する。私は行ごとに3つまたは4つのイメージを表示する必要があります。どのようなコーディングの変更を行うことができます。私のPHPコードは以下のとおりです。PHP Mysql Image Display

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

イメージごとに表を出力しています。少なくとも、コードは次のようになります。

これで、すべての画像が1つのテーブルの1つの行に表示されます。複数の行を作成することは、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

1990年代に呼び出され、ネストされたテーブルを元に戻したいと思っています。 –

+0

@Marc B、divのようなテーブルの中にたくさんのものがありました。 –

+0

また、 '$ varcount'をインクリメントしてリセットする必要があります。 – Kaivosukeltaja

1

array_chunk()あなたはパディングが必要な場合は、リスト内の最後の項目に(あなたがして(たarray_padを使用することができます)カウンターを維持しなくてループにあなたのためのX項目のコレクションの中に配列を分割する機能です)

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のリストなどの画像、または単にDIVS、および2つの列の画像を表示するために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

あなたのコードのようなものになります。 は3つのページがあります。ここでは

<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> 
あります

(ショーイメージ。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); 

?> 

特長

その名前のファイルが既にそれがファイルをupladし、ユーザーに警告しませんexisit場合は、ファイルの名前をチェックします。

データベース構造

ID整数(4)自動インクリメント - 画像VARCHAR(100) - イメージ名のVARCHAR(50)