2013-03-26 3 views
0

Сначала я хотел бы знать, как отображать изображение на PHP, просто используя путь к изображению? без использования BLOB.PHP_SQL-запрос не возвращает правильный ответ

И

У меня есть таблица в моей базе данных, которая скомпонованная этом пути ..

колонка: i1 i2 i3 i4 i5 i6 i7 i8

каждое поле хранящих значения или пусто ,

В основном я хотел бы отображать значения i5 i6 i7 i8 в соответствии с тем, что находится в i1 i2 i3 i4.

Для например:

i1 = а i2 = Ь i3 = е i4 = д i5 = г i6 = л i7 = i8 =

В этом случае я хотел бы г и л, которые будут отображаться. Но я хочу, чтобы значения сохранялись в массиве.

Я попытался сделать:

$list = array(g,l) 
$query = " SELECT i5, i6, i7, i8 FROM Table WHERE i1 AND i2 AND i3 AND i4 IN ('$list') "; 
$s = mysql_query($query); 
while($data = mysql_fetch_array($s)){ 
    $r_1 = $data['i5']; 
    $r_2 = $data['i6']; 
    $r_3 = $data['i7']; 
    $r_4 = $data['i8'];   
} 
echo "$r_1 $r_2 $r_3 $r_4"` 

Который не работает, даже если я сделать $list[0]

Помощь будут оценены. Спасибо

+0

Что вы имеете в виду, если не работаете? Сообщения об ошибках? Вы не ожидаете результата? –

+0

ничего не возвращается @BrendanLong – StringerB

+0

Как вы на самом деле делаете свой запрос? Можете ли вы показать нам полный код? –

ответ

2

Сначала я хотел бы знать, как отображать изображение на PHP, просто используя путь к изображению? без использования BLOB.

Вы не видите изображения в PhP, вы отображаете их в html. Если у вас есть путь, то просто сгенерировать тег IMG в HTML с атрибутом SRC установлен в пути:

<img src="whatever your path is" alt="My Image" /> 

Blobs используются для хранения изображений (на самом деле большие двоичные данные, изображения, видео, ...) непосредственно в БД.

+0

Не могли бы вы показать мне пример, попытались найти учебник, но напрасно. спасибо @Bartdude – StringerB

+0

Учебник для чего? Тег изображения в HTML? –

+0

нет, чтобы ссылаться на пути, начиная с db – StringerB

0
$s = mysql_query($query); 
while($data = mysql_fetch_array($s)){ 

Вы не проверяете, есть ли ошибка во время запроса. От the documentation for mysql_query:

Для SELECT, SHOW, DESCRIBE, EXPLAIN и другие заявления, возвращающие набор результатов, mysql_query() возвращает ресурс при успехе, FALSE при ошибке.

Так что:

$s = mysql_query($query); 
if($s === FALSE) { 
    // Do something to handle the error here, possibly calling die() 
} 

Следующая проблема, что делать, если нет никаких результатов? Все переменные будут пустыми. Вы можете проверить на это:

if(empty($r_1)) { 
    echo "Oops, I guess we didn't get any results"; 
    // die()? 
} 

Что делать, если мы получаем более одного ряда результатов? Я не уверен, как ваша программа должна справиться с этим.

И, наконец, я думаю, что ваш SQL запрос не делать то, что вы думаете, что он делает:

SELECT i5, i6, i7, i8 FROM Table WHERE i1 AND i2 AND i3 AND i4 IN ('$list') 

Это даст вам i5, i6, i7 и i8 когда i1 правда, i2 правда, i3 - это правда, и i4 соответствует строке $list. Если вы хотите найти результаты, в которых все они находятся в списке, вам нужно будет сделать несколько операторов IN, и вам нужно будет передать $list в виде списка, а не строки. Вы можете увидеть this answer, как построить строку запроса, чтобы передать список MySQL.

Также обратите внимание, что функции mysql_* устарели, и вам действительно нужно научиться использовать PDO или mysqli_*. Это не займет много времени, и безопасный доступ к базе данных будет намного проще с ними.

+0

Спасибо, думал об использовании обучения PDO, я скоро. Я посмотрел вашу ссылку, но когда вы скажете, что мне понадобится несколько 'IN'statement, вы имеете в виду этот путь' WHERE $ i1 IN ($ list) И $ i2 IN ($ list) ... '@BrendanLong – StringerB

+0

@ StringerB Да. Кроме того, что просто положить $ list невероятно опасно и, вероятно, не сработает. –

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