نشان دادن عکس ازdb

mohsenshahab

Active Member
سلام
من اینو نوشتم که اعکس رو از db نشون بده (بگین خب)
PHP:
<?php
header("Content-Type: image/jpeg");
function showdata ($data)
{
	echo $data;
}
?>
و
PHP:
<?php
include_once("bann_inc.php");
$link=mysql_connect("localhost","root","");
if($link)
{echo "yess";
}
else
{echo "nooo";
}
mysql_select_db("rave",$link);
$sql="select image,content from upload ";
$result=mysql_query($sql);
while ($row=mysql_fetch_array($sql,MYSQL_ASSOC))
{
	showdata($row[content]);
}
?>
اما موقع اجرا فقط اینو نشون میده
 

Webber

Well-Known Member
سلام
اگر کمی بیشتر توضیح بدین،بهتر میشه راهنمایی تون کرد.می تونید کد زیر رو امتحان کنید:

PHP:
<?php
  $con=mysql_connect('localhost','root','');
  if(!$con){die('MySQL connect error!')};
  mysql_select_db('rave',$con);
  $sql="SELECT link,content FROM upload";
  $result=mysql_query($sql);
  $count=mysql_num_rows($result);
  for($i=0;$i<$count;$i++)
  {
    $row=mysql_fetch_assoc($result);
    showdata($row['link'],$row['content']);
  }

  function showdata($lnk,$cnt)
  {
    echo '<img src="'.$lnk.'" alt="'.$cnt.'" />' ;
  }
?>
 

mohsenshahab

Active Member
سلام
من کد شما رو به اسن صورت استفاده کردم.ولی به جای عکس یه مشت حروف خرچنگ قورباغه نشون میده

PHP:
<?php
  $con=mysql_connect('localhost','root','');
  if(!$con){die('MySQL connect error!');}  mysql_select_db('rave',$con);
  $sql="SELECT link,content FROM upload";
  $result=mysql_query($sql);
  $count=mysql_num_rows($result);
  for($i=0;$i<$count;$i++)
  {
    $row=mysql_fetch_assoc($result);
    showdata($row['link'],$row['content']);
  }

  function showdata($lnk,$cnt)
  {
   echo '<img src="'.$lnk.'" alt="'.$cnt.'" />' ;
 }
?>
 

imanmir

Member
سلام

فایل زیر را که پیوست کردم کاملا مشکل شما را حل می کنه ولی متاسفانه یک مشکل من دارم که کسی جوابمو نداد به طور آنلاین ذخیره نمی که و روی لوکال کاملا درسته نمی دونم چرا؟البته از para2x , jor تشکر می کنم
 

پیوست ها

  • picupload.zip
    1.5 کیلوبایت · بازدیدها: 15

Webber

Well-Known Member
سلام
فرض من این بود که شما لینک رو در فیلد link و مثلا توضیحی راجع به عکس رو در فیلد content قرار می دید و عکس به صورت فایل در یک جای دیگر آپلود شده.کد من در این صورت کار خواهد کرد.لطفا توضیح بدین که در هر کدام از فیلد ها چه چیزی قرار خواهد گرفت و هدف شما چیه؟
مچکرم
 

mohsenshahab

Active Member
سلام و ممنون از جوابتون
من 5 تا فیلد در دیتابس دارم
name (نام فایل رو بر میگردونه)
linkکه tmp_name رو بر میگردونه
size , type برای اندازه و نوع فایل
ودر آخر content که به صورت blob هست.
حالا من می خوام توسط این کد عکس رو که فقط در db ادرسش ثبت میشه رو نشون بدم
اینم سورس صفحه uploadمن

PHP:
<?php
if(isset($_POST['up']) && $_FILES['userfile']['size'] > 0)
{
$fileName = $_FILES['userfile']['name'];
$tmpName  = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];
$fp      = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);

if(!get_magic_quotes_gpc())
{
    $fileName = addslashes($fileName);
}
$link=mysql_connect("localhost","root","");
mysql_select_db("rave",$link);


$query = "INSERT INTO upload (name,link, size, type, content ) ".
"VALUES ('$fileName', '$tmpName','$fileSize', '$fileType', '$content')";
mysql_query($query) or die('Error, query failed');
mysql_close($link);
echo"<br> uploading file<br>";
echo "<br>File name: $fileName <br>";
echo "<br> tmp $tmpName<br>";
echo "<br> Size: $fileSize<br>";
echo "<br> Type: $fileType<br>";

}
?>
.

و صفحه نشون دادن عکساز دیتابیس که طبق فرموده شما استفاده کردم

PHP:
<?php
  $con=mysql_connect('localhost','root','');
  if(!$con){die('MySQL connect error!');}  mysql_select_db('rave',$con);
  $sql="SELECT link,content FROM upload";
  $result=mysql_query($sql);
  $count=mysql_num_rows($result);
  for($i=0;$i<$count;$i++)
  {
    $row=mysql_fetch_assoc($result);
    showdata($row['link'],$row['content']);
  }

  function showdata($lnk,$cnt)
  {
   echo '<img src="'.$lnk.'" alt="'.$cnt.'" />' ;
 }
?>
حال من فقط یه سری حرف میبینم
 
آخرین ویرایش:

Webber

Well-Known Member
سلام
اگر فقط می خواین لینک عکس در db ذخیره شود می تونید کد زیر رو استفاده کنید.
موفق باشید
 

پیوست ها

  • UploadPic.rar
    4.2 کیلوبایت · بازدیدها: 11

mohsenshahab

Active Member
و برای نشون دادنش چی کار کنم
من میخوام آدرس عکس از db خونده بشه و نشونش بده
 

mohsenshahab

Active Member
جناب webber سلام
به خدا آدم به با معرفتی و با حالی شما به عمرم ندیدم .وقتی فایل زیپ رو باز کردم و دیدم همه فایلها رو با نام دیتابیس من ساختین و برام آپ کردین به معنای واقعی کلمه شرمنده شدم.امیدوارم که یه روزی بتونم جبران کنم
 

Webber

Well-Known Member
سلام
همین که مشکل شما حل شد برای من کافیه (;
موفق باشید.
 
آخرین ویرایش:

Webber

Well-Known Member
سلام
اینم فایل تصحیح شده ی شما.
موفق باشید
 

پیوست ها

  • PIC-to-DB.rar
    2 کیلوبایت · بازدیدها: 14

mohsenshahab

Active Member
جناب webber من باز هم نتونستم با این سورس کار کنم:cry:
به دلیل اینکه من فایل uploadرو که خودم نوشتم نمیتونم عوض کنم
حالا اگه میشه الگوریتم نشون دادن عکس رو توضیح بدی خیلی خیلی ممنون میشم .مخصوصا دستور query
 

Webber

Well-Known Member
سلام
دوست عزیز فکر کنم شما در قسمت
PHP:
$row=mysql_fetch_row($result);
showdata($row[1],$row[2],$row[3]);
مشکل دارید.
خب در این قسمت حلقه ی for به تعداد عکس های داخل جدول اجرا می شود.در هر بار اجرا یک سطر از جدول را برمی گرداند و در یک آرایه با اندیس عددی قرار می دهد(row$).سپس با اندیس 1،مقدار فیلد link را به عنوان پارامتر به تابع showdata می فرستد.و به این ترتیب با اندیس 2،فیلد type و با اندیس 3 نیز فیلد size به تابع ارسال می شوند.برای روشنتر شدن موضوع می توانید کد بالا را به این صورت تغییر دهید:
PHP:
$row=mysql_fetch_assoc($result);
showdata($row['name'],$row['type'],$row['size']);
موفق باشید
 

جدیدترین ارسال ها

بالا