За последние 24 часа нас посетили 36510 программистов и 1732 робота. Сейчас ищут 875 программистов ...

Вывод сообщений и картинок. Как совместить?

Тема в разделе "PHP для новичков", создана пользователем V1T, 26 янв 2009.

  1. V1T

    V1T Активный пользователь

    С нами с:
    7 окт 2008
    Сообщения:
    311
    Симпатии:
    0
    Адрес:
    Крым
    Добрый день. Подскажите пожалуйста, ситуация такая:
    Загружаются изображения и создаются в папках миниатюры , после загрузки и создания миниатюр , имена изображений не меняются. Сообщения из БД выводятся так

    Код (Text):
    1. while ($postrow = mysql_fetch_array($result)) {
    2. echo "Запись №: ".$postrow['ID']."<br>";
    3. echo "Имя: ".$postrow['name']."<br>";
    4. echo "Email: <a href=\"mailto:".$postrow['email']."\">".$postrow['email']."</a><br>";
    5. echo "Homapage: <a href=http://".$postrow['homepage']." target=_blank >".$postrow['homepage']."</a><br>";
    6. echo "Сообщение: ".$postrow['text']."<br>";
    7. echo "Сообщение добавлено: ".$postrow['time']."<br>";
    8. echo "<hr>";
    9. }
    А так вывожу все сообщения из папки(в данном случае из папки миниатюр)
    Код (Text):
    1. ###############################################
    2. ######### Выводим картинки циклом###############
    3. #########################################
    4. echo ("<b>Файлы каталога:</b><br>");
    5. $thumbs = opendir($upload_thumbs);
    6. while (false !== ($file = readdir($thumbs)))
    7.  if ($file != '.' && $file != '..')
    8.     {
    9. echo "<a href=".$upload_img.$file."><img src=".$upload_thumbs.$file."></a><hr><br>";
    10.     }
    В итоге выводится сначала сообщения, а потом только картинки. :roll:
    Как сделать чтобы загруженная картинка выводилась вместе с сообщениями, то есть,в каждом сообщении пользователя должна быть картинка , которую он же и загрузил .

    1)Может как то идентификацию картинкам давать надо?
    2) Может их хранить в БД?
    3) Как совместить вывод графического файла и сообщения?
    Спасибо
     
  2. Frozen

    Frozen Активный пользователь

    С нами с:
    20 окт 2008
    Сообщения:
    540
    Симпатии:
    0
    Адрес:
    Москва
    поменяй 2 куска кода местами
     
  3. AviOn

    AviOn Активный пользователь

    С нами с:
    16 июл 2007
    Сообщения:
    171
    Симпатии:
    0
    Адрес:
    Кировоград, Украина
    Картинка, в смысле аватар пользователя?
    Или при каждом посте сообщения, юзер грузит новую картинку?

    Если первое, то картинки надо привязывать в таблице юзеров (просто название).
    Или же обьясните по другому.
     
  4. V1T

    V1T Активный пользователь

    С нами с:
    7 окт 2008
    Сообщения:
    311
    Симпатии:
    0
    Адрес:
    Крым
    Ех..), да, именно аватар))
    То есть кроме сообщения пользователя , у него есть свой аватар :D

    Аватар Aviona
    Avion(имя)
    Имэил
    Сообщение
    <hr>

    Аватар V1Ta
    V1T(имя)
    Имэил
    Сообщени
    <hr>

    Аватар Frozena
    Frozen(имя)
    Имэил

    Как правильно это организовать, я имею ввиду в отношении php конечно, а не html?
    Вот что пытаюсь сделать :) Спасибо
     
  5. AviOn

    AviOn Активный пользователь

    С нами с:
    16 июл 2007
    Сообщения:
    171
    Симпатии:
    0
    Адрес:
    Кировоград, Украина
    Организуй таблицы:
    Юзеры
    Сообщения

    В юзерах: нужные данные + аватар
    В сообщениях: юзер-айди + все что нужно

    Вывод с помощью запроса SELECT * FROM Сообщения LEFT JOIN Юзеры ON (Сообщения.юзер-айди=Юзеры.юзер-айди) ... ну и так далее.
    А там уже проверяешь есть ли аватар и выводишь... Вот и все.
     
  6. V1T

    V1T Активный пользователь

    С нами с:
    7 окт 2008
    Сообщения:
    311
    Симпатии:
    0
    Адрес:
    Крым
    Ну у меня такая труктура таблицы

    Id(autoincrement)
    Name
    Email
    Text
    time(timestamp)

    Этот запрос выводит сообщения
    [sql]mysql_query("SELECT * FROM gb ORDER BY $sort $sorttype LIMIT $start, $num")[/sql]
    Что тто я не понял, это ещё нужно поле создавать :roll:
    Вот есл хотите посмотреть http://guestbook.net84.net/
     
  7. GudGuy

    GudGuy Активный пользователь

    С нами с:
    14 июн 2007
    Сообщения:
    909
    Симпатии:
    0
    Адрес:
    Москва
    разнеси логику и вывод.
    т.е. сначала собири и рассортируй всё по массивам, а потом уже выводи. оно так лучше;)
     
  8. AviOn

    AviOn Активный пользователь

    С нами с:
    16 июл 2007
    Сообщения:
    171
    Симпатии:
    0
    Адрес:
    Кировоград, Украина
    Это точно...

    Если это гостевая - зачем фото?
     
  9. V1T

    V1T Активный пользователь

    С нами с:
    7 окт 2008
    Сообщения:
    311
    Симпатии:
    0
    Адрес:
    Крым
    Немного не понял что значит
    ?
    А фото для закрепления знаний работы с изображениями :)
    Что то я непонял что в массив?
     
  10. allday.ho.ua/forum/

    allday.ho.ua/forum/ Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    2
    Симпатии:
    0
    Адрес:
    Germany
  11. AviOn

    AviOn Активный пользователь

    С нами с:
    16 июл 2007
    Сообщения:
    171
    Симпатии:
    0
    Адрес:
    Кировоград, Украина
    Смотри ситуацию:
    Заходит юзверь, оставляет мессадж и загружает аватар. Там еще несколько...
    Через день он заохит и опять и опять оставлят мессадж и грузить опять таки свой аватар. Через день опять тоже...
    Меня если честно это бы достало. :)

    Если ты хочешь использовать юзверов с аватарами надо вести учет юзверов... И при этом не загромождать сервер одиними и теми же аватарами...

    Для твоего решения: надо в таблицу добавить поле (photo например), а в него записывать название аватара что грузится. Вот тебе и привязка к конкретному юзверю... И при своем выводе просто подставляешь название файла на сервере... Вуаля...
     
  12. GudGuy

    GudGuy Активный пользователь

    С нами с:
    14 июн 2007
    Сообщения:
    909
    Симпатии:
    0
    Адрес:
    Москва
    PHP:
    1.  
    2. <?
    3. $res=$sql->Execute("SELECT * FROM `tbl_mes_name`");
    4. WHILE ($row=mysql_fetch_array($res, MYSQL_ASSOC)){
    5.  $mes[$row[id]]['message']=$row['message'];
    6. }
    7. $res2=$sql->Execute("SELECT * FROM `tbl_img_name`");
    8. WHILE ($row2=mysql_fetch_array($res2, MYSQL_ASSOC)){
    9.  $mes[$row2[id]]['img']=$row2['img_name'];// $row2['id'] как их сопаставить думай сам=) можнол писать вообще в разные массивы=)
    10. }
    11. FOR ($i=1; $i<count($mes)){
    12.  echo '<tr><td>'.$mes[$i]['img'].'</td><td>'.$mes[$i]['mes'].'</td></tr>';
    13. }
    14. ?>
    15.  
    16.  
    естественно это код не на что не претендует, он просто показывает смысл=) хотя и полным разнесением это назвать нельзя, но так уже гораздо проще=)
     
  13. V1T

    V1T Активный пользователь

    С нами с:
    7 окт 2008
    Сообщения:
    311
    Симпатии:
    0
    Адрес:
    Крым
    Хм..попробую ваши варианты, ок, спасибо :) Всё, супер, создал поле и стало у меня оно содержать названия картинок, то, что хотел именно, благодарю :D