Я создал страницу для вставки изображения с некоторыми данными в базу данных в php / mysql.
Структура таблицы
имя Варчар (20) |
роллно варчар (50) первичный ключ |
адрес Варшар (100) |
изображение LONGBLOB
но я не знаю, как получить его с помощью рулона нет. то есть, когда пользователь вставляет номер рулона в текстовое поле и нажимает на кнопку «Отправить», он должен отображать все детали этого рулона, включая изображение.
Я использую код ниже для отображения изображения.
<?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'] ).'"/>'
?>
Хорошо, я предполагаю, что это текстовое поле включено и HTML-страница, поэтому вам нужно будет использовать Javascript для получения информации с сервера, где находится база данных MySQL. Вам понадобится страница php на сервере, которую может вызывать Javascript. Для этого ответа я просто назову его getRecord.php. Кроме того, чтобы облегчить JavaScript, я рекомендую использовать jQuery. Я предполагаю, что вы знаете, как использовать это в этом ответе.
var rollno = $("#inputbox").val();
$.get("getRecord.php",{
data: {rollno : rollno},
success: function(data){
data = JSON.parse(data);
//Display the data how you wish
}
);
<?
$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
?>
На самом деле, вам не нужно использовать 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
}
Конечно, вы должны добавить собственную разметку для отображения информации.
// 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'] ).'"/>'
?>