2013-08-26 2 views
0

Я пытаюсь получить информацию от mysql, включая изображение блоба, которое я должен эхо с php и будет иметь событие onclick внутри php, перенаправляя его на другую страницу. Событие onlick будет содержать результат mysql, который он будет нести с собой, как показано в приведенном ниже коде.Как выбрать и эхо изображение из mysql

Моя основная проблема связана с синтаксисом кода или есть другой способ сделать все это вместе. пожалуйста, имейте в виду, что вывод, когда запускается скрипт, похож на вывод изображений Google, изображений bing и т. д. Спасибо.

<?php 
$con=mysqli_connect("localhost","root","*******","media"); 
// Check connection 
if (mysqli_connect_errno()) 
{ 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$result = mysqli_query($con,"SELECT * FROM movies ORDER BY `movies`.`title` ASC"); 

echo "<table border='3' style='margin: auto; text-align: left;background: white;  padding: 3em;'> 
<tr> 
<th><b>Movie Title</b></th>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<th><b>Language</b></th> 
</tr>"; 

while($row = mysqli_fetch_array($result)) 
{ 
    echo "<tr>"; 
    echo "<td style='padding-right: 2em;'><img src="data:image/jpeg;base64,' . base64_encode($row['image']) . '" width="160px" height="200px";" onclick="window.location='lookup.php?pattern=" . $row['title'] . "';>"; 
</td> 
echo "</tr>"; 
} 
echo "</table>"; 

mysqli_close($con); 
?> 

ответ

0

непроверенная, но вот один из способов вы можете очистить свой стиль код перемещения и JavaScript (и использовать некоторые JQuery) в голову:

<?php 
    $con=mysqli_connect("localhost","root","*******","media") or die("Failed to connect to MySQL: " . mysqli_connect_error()); 
    $result = mysqli_query($con,"SELECT * FROM movies ORDER BY `movies`.`title` ASC"); 
?> 
<html> 
    <head> 
     <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script> 
     <script> 
      $(document).ready(function() { 
       $('img').each(function() { 
        var img = $(this); 
        img.click(function() { 
         window.location="lookup.php?pattern=" + img.attr('title'); 
        }); 
       }); 
      }); 
     </script> 
     <style> 
      table { 
       margin: auto; 
       text-align: left; 
       background: white; 
       padding: 3em; 
       border: 2px solid #000000; 
      } 
      table tr td { 
       padding-right: 2em; 
      } 
      table tr td img { 
       width: 160px; 
       height: 200px; 
      } 
     </style> 
    </head> 
    <body> 
     <table> 
      <tr> 
       <th>Movie Title</th> 
       <th>Language</th> 
      </tr> 
      <?php 
       while($row = mysqli_fetch_array($result)) { 
        echo " 
         <tr> 
          <td> 
           <img src=\"data:image/jpeg;base64," . base64_encode($row['image']) . "\" title=\"" . $row['title'] . "\"> 
          </td> 
         </tr> 
        "; 
       } 
      ?> 
     </table> 
    </body> 
</html> 
<?php mysqli_close($con); ?> 

Или, если вы не хотите использовать JavaScript , вы всегда можете обернуть изображение вокруг тега привязки вместо:

<td> 
    <a href='lookup.php?pattern={$row['title']}'> 
    <img src=\"data:image/jpeg;base64," . base64_encode($row['image']) . "\"> 
    </a> 
</td> 
+0

WOW! спасибо человеку, удивительное решение! AH! Ницца! – tinshark

+0

Не могу поверить, что вы сделали это с головы! – tinshark

0

вы могли бы дополнительно отдельный PHP и HTML код:

<?php 
    $con=mysqli_connect("localhost","root","*******","media"); 
    // Check connection 
    if (mysqli_connect_errno()) { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
     die(); 
    } 
    $result = mysqli_query($con,"SELECT * FROM movies ORDER BY `movies`.`title` ASC"); 
?> 
<table border='3' style='margin: auto; text-align: left;background: white;  padding: 3em;'> 
    <tr> 
     <th><b>Movie Title</b></th> 
     <th><b>Language</b></th> 
    </tr> 
<?php 
    while($row = mysqli_fetch_array($result)) { 
     $img = 'data:image/jpeg;base64,' 
      . base64_encode($row['image']); 
?> 
<tr> 
    <td style='padding-right: 2em;'> 
     <img src="<?php echo $img; ?>" 
      style="width: 160px; height: 200px;" 
      onclick="window.location='lookup.php?pattern=<?php echo $row['title']?>;'" 
     /> 
    </td> 
</tr> 
<?php } ?> 
</table> 

<?php 
    mysqli_close($con); 
?> 

Вы можете также использовать какой-шаблонизатор, чтобы сделать это, но результаты будут в значительной степени то же самое - я не вижу особого смысла в письменном виде, скажем,

 <strong>{{ title }}</strong> 

вместо

 <strong><?php echo $title; ?></strong> 
Смежные вопросы