Сохранить изображения URL в MySQL? - PullRequest
1 голос
/ 26 августа 2011

У меня фактически есть несколько вопросов здесь: Моя конечная цель - написать скрипт, который будет автоматически отображать все изображения, которые я сохранил в своей базе данных (если я добавляю новые изображения в свою базу данных (URL-адреса изображений), каждый раз, когда яобновите страницу, я хотел бы, чтобы эти "новые" изображения также отображались мгновенно).

  1. Как правильно сохранить URL изображения внутри MySQL?В настоящее время я установил тип ввода на VARCHAR;это нормально для изображений URL?

  2. Кроме того, на данный момент я работаю с WAMP-сервером, просто чтобы проверить, как работает сайт;поэтому я поместил изображение в папку www (в той же папке, что и мой скрипт php), а внутри таблицы базы данных я просто поместил URL-адрес следующим образом: image.png
    это правильный способ ввода URL-адреса изображения внутри моегобаза данных?

  3. Каков наилучший способ отображения этих изображений в последовательности?Следующий код - это то, что у меня есть: (ширина изображения займет около 70% страницы, поэтому изображения не будут располагаться рядом друг с другом; они будут в форме столбца.)

    <?php
       $db_host="host";
       $db_user="user";
       $db_pass="pass";
       $db_name="name";
       $db_table="table";
    
       mysql_connect($db_host, $db_user, $db_pass) or die(mysql_error());
       mysql_select_db($db_name) or die(mysql_error());
    
       $query = mysql_query("SELECT * FROM tablename");
       $result = mysql_query($query);
       $num = mysql_num_rows($result);
    
       for($count = 0; $count < $num; $count++)
       {
           //output the rows one by one(the actual images, not the URLs)
           mysql_fetch_row($result);
           echo("<br/>");
       }
    ?>
    

    Я не знаю, должен ли я использовать там mysql_fetch_row ..

  4. Я хочу, чтобы мои изображения имели некоторое пространство между ними;я думал, что лучший способ добиться этого - добавить тег «br» в конце цикла, чтобы каждый раз, когда отображалось новое изображение, в конец страницы добавлялся разрыв строки.лучший способ сделать это?

Спасибо большое заранее!

Ответы [ 3 ]

2 голосов
/ 26 августа 2011

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

Ваш цикл for должен выглядеть следующим образом: теги

  for($count = 0; $count < $num; $count++) {
       $row = mysql_fetch_assoc($result);
       echo "<img src='". htmlspecialchars($row["image"]) ."' alt='image' />";
   }

br, вероятно, были бы плохой идеей.Установите для свойства display изображения значение block в вашем файле CSS.В Интернете много руководств по CSS.

1 голос
/ 26 августа 2011

С

$query = mysql_query("SELECT * FROM tablename");
$result = mysql_query($query);
$num = mysql_num_rows($result);

ты делаешь некоторые вещи дважды. Вы не хотите, чтобы $query был результатом mysql_query() вызова, а затем снова примените mysql_query().

В этом случае второй вызов будет происходить с объектом ресурса вместо строки - вы узнали об этом. Поместив "", вы снова превращаете его в строку, но та, которая не имеет смысла для mysql.

Чтобы убедиться в этом, попробуйте поставить or die(mysql_error()) на проблемные вызовы.

И чтобы исправить это, вы можете попробовать

$query = "SELECT * FROM tablename";
$result = mysql_query($query) or die(mysql_error());
$num = mysql_num_rows($result);

Кстати: вам не нужен $num при замене петли for на

while ($row = mysql_fetch_row($result))
    // do stuff with $row 
}
0 голосов
/ 26 августа 2011

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

т.

чтобы получить изображения

<?php
$query = mysql_query("SELECT * FROM tablename");
while ($row = mysql_fetch_array($query)) {
echo '<img src="' . $row['column of url storage in SQL'] . '" />';
}

Это выведет все изображения в базе данных, просто замените «столбец хранения URL в SQL» на фактическое имя столбца, которое вы храните в БД SQL. также замените «имя таблицы» в запросе SQL на имя таблицы, в которой хранятся изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...