2016-12-21 3 views
0

У меня есть домашняя страница, где значение базы данных отображаются (например, изображения и мало информации) enter image description hereПолучение информации из изображения с помощью базы данных MySQL

Моя проблема, когда я нажимаю на изображении он перескакивает на другую страницу и показать все фотографии, которые хранятся в базе данных, но я хочу щелкнуть.

Вот мой первый код страницы home_page.php

<?php 

     $db = mysqli_connect("localhost", "root", "", "registration_data"); 
     $sql = "SELECT * FROM add_data"; 

     $result = mysqli_query($db,$sql); 

     while($row = mysqli_fetch_array($result)){ 
      $image = $row['image']; 

      echo "<div id='img_div'>"; 
       ?><a href = "Details.php?image=' . $image . '"><?php echo "<img src='images/".$row['image']."' >";?></a><?php 
       echo "<p>Description: ".$row['add_description']." </p>"; 
       echo "<p>Cetegory: ".$row['catagory']. "</p>"; 
      echo "</div>"; 
     } 
?> 

И это моя вторая страница, на которой я хочу показать только щелкнул информацию об изображении. (Details.php)

<?php 

$image = intval($_GET["image"]); 


$db = mysqli_connect("localhost", "root", "", "registration_data"); 
     $sql = "SELECT * FROM add_data where 'id' = $image "; 

     $result = mysqli_query($db,$sql); 

     while($row = mysqli_fetch_assoc($result)){ 

      $imageShow = $row['image']; 
      print $imageShow; 
     } 



?> 
+0

добавьте 'LIMIT 1' в SQL в Details.php. Но вы должны отлаживать все это для реальной ошибки. И tablenames/fields не записываются в кавычки, такие как '' id'' do 'id' или' \ 'id \' '. Имейте это в виду: 'SELECT 1 + 1' или' SELECT 'a' 'B'' Первый результат - '2' второй -' aB' – JustOnUnderMillions

+0

выбор всего и сброс его в ту же ячейку здесь неправильный. rtry $ sql = "SELECT image, Description, Category FROM add_data WHERE category = *" Затем вы разделите каждый столбец на свой собственный веб-элемент. W3C будет иметь руководство для этого слишком BTW, но это также оставляет вас открытым для SQL-инъекции. Вы, вероятно, захотите изменить свои переменные, т. Е. $ Sql1, $ sql2, чтобы они не вызывались по ошибке. –

+0

@Ben Coughlan 'same cell'? Возможно, тот же идентификатор, но у каждого изображения есть собственный div. А во второй части он хочет только одну запись и что проблема здесь ... больше напечатана. И здесь нет инъекции SQL, вы видели: 'intval ($ _ GET [" image "]);' Пожалуйста, укажите только реальные ошибки. – JustOnUnderMillions

ответ

0

Итак, если ваша начальная страница для вызова изображения что-то вроде:

<body> 
<img src="getImage.php?**id=1**" width="175" height="200" /> 
</body> 

Тогда getImage.php является

<?php 

    $id = $_GET['id']; 
    // do some validation here to ensure id is safe 

    $link = mysql_connect("localhost", "root", ""); 
    mysql_select_db("dvddb"); 
    $sql = "SELECT dvdimage FROM dvd WHERE id=**$id"**; 
    $result = mysql_query("$sql"); 
    $row = mysql_fetch_assoc($result); 
    mysql_close($link); 

    header("Content-type: image/jpeg"); 
    echo $row['dvdimage']; 
?> 

В настоящее время вы передаете строку, а не идентификатор.

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

поэтому ваш SQL должен выбирать столбцы таблицы и назначать их значениям в каждой строке, затем вы передаете запрос, чтобы отбросить изображение с помощью определенного первичного ключа.

i.e. row - значение PHP, вам необходимо извлечь и указать значение DB, первичный ключ. т.е. ImageID.

Смежные вопросы