使用用户插入的特定id从php mysql数据库中检索图像

时间:2014-12-18 18:37:14

标签: php mysql blob

我在php / mysql中创建了一个页面,用于将一些数据插入到数据库中。

表格结构

名称Varchar(20)| rollno Varchar(50)PRIMARY KEY | 地址Varchar(100)| 图片LONGBLOB

但我不知道如何使用roll no检索它。即,当用户在文本框中插入卷号并单击提交时,它应显示该卷的所有详细信息,包括图像。

我正在使用下面的代码进行图像显示。

 <?php
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "galleryupload";

    // Create connection
    $conn = new mysqli($servername, $username, $password,$dbname);

    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 

    $sql = "SELECT * FROM `vision` where `rollno` = VCI/2012-13/C/03"; // manipulate id ok 
    $sth = mysqli_query($conn,$sql);
    $result=mysqli_fetch_array($sth);

    echo '<img src="data:image/jpeg;base64,'.base64_encode( $result['image_file'] ).'"/>'
?>

3 个答案:

答案 0 :(得分:0)

好的,我假设这个文本框是打开的和HTML页面,所以你需要使用Javascript从MySQL数据库所在的服务器获取信息。你需要一个Javascript可以调用的服务器上的php页面。对于这个答案,我只需将其命名为getRecord.php。另外,为了使JavaScript更容易,我建议使用jQuery。我会假设你知道在这个答案中使用它。

的Javascript


var rollno = $("#inputbox").val();
$.get("getRecord.php",{
 data: {rollno : rollno},
 success: function(data){
     data = JSON.parse(data);
     //Display the data how you wish
  }
);

getRecord.php

<?
  $rollno = $_GET['rollno'];

  //For the Database retrieval part, I'm going to assume you are using PDO, but if you're using mysqli, just translate this

  $db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password');
  $stmt= $db->prepare("SELECT * FROM table WHERE rollno = :rollno");
  $stmt->execute(array(":rollno", $rollno));
  $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); 
  echo json_encode($rows[0]); 

  //Because this should only return one row, im doing [0]. After echo, this will be sent back to the Javascript where the success function will execute
?>

答案 1 :(得分:0)

实际上,您不必为此使用Javascript(除非您想要在不重新加载页面的情况下检索和显示图像)。

您可以通过让表单和脚本负责在同一个php文件中检索图像来完成此操作。首先,显示表格(即使在提交后也会显示,并显示图像):

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
    <input type="text" name="rollno">
    <input type="submit" name="Search">
</form>

然后,让我们检查是否收到了POST请求,查找并显示图像。我正在使用Jay S.代码进行数据库连接。

<?php
if (isset($_POST['rollno'])) {
$rollno = htmlspecialchars($_POST['rollno']);

$db = new PDO('mysql:host=localhost;dbname=testdb;', 'username', 'password');
$stmt= $db->prepare("SELECT * FROM table WHERE rollno = :rollno");
$stmt->execute(array(":rollno", $rollno));
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

$row = $rows[0];

//display info about image
?>

<div class="row-info">
    <span>Name: </span>
    <span><?php echo $row['name'] ?></span>
</div>
<div class="row-info">
    <span>Rollno: </span>
    <span><?php echo $row['rollno'] ?></span>
</div>
<div class="row-info">
    <span>Address: </span>
    <span><?php echo $row['address'] ?></span>
</div>
<div class="image">
    <img src="<?php echo $row['image'] ?>"/>
</div>

<?php
}

当然,您应该添加自己的标记来显示信息。

答案 2 :(得分:0)

// this is the code of get.php page...   

  <?php
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "galleryupload";

    // Create connection
    $conn = new mysqli($servername, $username, $password,$dbname);

    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 

    $sql = "SELECT * FROM `vision` where `rollno` = VCI/2012-13/C/03"; // manipulate id ok 
    $sth = mysqli_query($conn,$sql);
    $result=mysqli_fetch_array($sth);

    echo '<img src="data:image/jpeg;base64,'.base64_encode( $result['image_file'] ).'"/>'

    ?>