الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف اعرض الصور الموجوده في قاعدة البيانات

مغلق
بدأه hawkeye في 7 أكتوبر 2004 · 11 رد · 1,130 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لقد قمت بادخال صور الى قاعدة البيانات وتم الرفع بطريقه صحيحه

لكن المشكلة انى اريد استخراج الصور لقد اتبعت الدرس التالى

" target="_blank">http://www.phpvillage.com/p.php?page=0&idp=61

لكنى اريد استخراج اكثر من صورة في اكثر من جدول ..ارجو الرد بسرعه

#2

اول شي ممكن نعرف كيف ادخلتها الى الداتا بيز

هل بصيغة ثنائية ام ادخلت مسار الصورة

ياريت التوضيح اكثر

Let's google help you Before ask

--------------------------

My Blog : www.phplover.net

#3

السلام عليكم

لقد وضعت الصورة بالطريقة الثنائية

........

كيف اضع الصورة كوصلة ...سؤال فرعي

#4

عفوا فلم افهم ما المقصود بالصيغة الثنائية و اذا ساعدتني على فهمها اتوقع اني استطيع المساعدة :)

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#5

السلام عليكم

والله ليس لدي معرفة كثيرة ولكنى طبقت الدرس الموجود بهذا الرابط

http://www.phpvillage.com/p.php?page=0&idp=61

ارجو ان تجيب على سؤالى بسرعه

كيف يمكننى استخراج اكثر من صورة موجودة في اكثر من جدول في صفحة واحدة

وكيف اجعل هناك رابط لملف يتم تنزيله على الجهاز ملف مضغوط مثلا كيف استخرجه من قاعدة البيانات بحيث اذا تم الضغط عليه يتم انزاله

تم تعديل هذه المشاركة بواسطة hawkeye في 8 أكتوبر 2004 في 21:42

#6
<?
	$con = mysql_connect("Server","Username","Password") or die("Could not connect to database");
	$db = mysql_select_db("DatabaseName",$con) or die("Could not select DB");
	$sql = "select * from uploaded where 1";
	$result = mysql_query($sql) or die("Cannot query DB");
	if(mysql_num_rows($result) != 0)
	{
  echo "<table border=0 cellspacing =0>";
  while($row = mysql_fetch_array($result))
  {
 	 echo "<tr><td><img src='".$row["filename"]."'></td></tr>";
  }
  echo "</table>";
	}
	else
	{
  echo "No images in gallery";
	}
	mysql_close($con);

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#7

السلام عليكم

اخي الكريم

لم افهم قصدك .. هل file name اسم الصورة ام اسم الصف الموجود في الجدول

........

انا مثلا عندي جدول هكذا تكوينه

هذا الكود الخاص به

CREATE TABLE `news` (
  `id` int(11) NOT NULL auto_increment,
  `title` varchar(200) NOT NULL default '',
  `news` text NOT NULL,
  `date` date NOT NULL default '0000-00-00',
  `allnews` text NOT NULL,
  `image` mediumblob NOT NULL,
  UNIQUE KEY `id` (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2;

كيف استعرض الصور الموجود في الصف المسمى image

هل لابد من ارسال نوع واسم الصورة الى المستعرض في منطقة head ؟؟؟

حسب ما قرات في الرابط المرسل سابقا ؟؟؟؟

#8

سوف اقوم بوصف الطريقة بسرعة..

وإذا لم تكن واضحة سوف اقوم بالتوضيح في حالة طلبك خلال يومين لأني مستعجل جدا الان..

الفكرة ببساطة هي أنك تضح ال html للصورة كالاتي :

<img src="getimage.php?image_id=34">

كما تلاحظ مسار الصورة عبارة عن ملف php اسمه getimage يأخذ ال parameter المسمي image_id.. وهو يحتوي علي رقم الصورة في الجدول الخاص بالصور.. طبعا تستطيع تغيره الي image_name او اي شئ آخر حسب تصميم جدولك الخاص.

الان نأتي للجزء المهم.. وهو ملف getimage.php..

سيكون كالاتي :

<?php

header("Content-type: image/gif");

$image_id = $_GET['image_id'];  // in case register_globals is off

// write your mysql_connect and other stuff........
// .......
// ....

$sql = "SELECT image_blob FROM images WHERE id = '$image_id'";
$result = mysql_query($sql);
if( ($row = mysql_fetch_array($result)) )
	echo $row['image_blob'];

// continue your code to close mysql.. and such stuff....
// .....
// ...
?>

كما تلاحظ اهم سطر هو اول سطر.. وهو الجملة Content-type.....

وهي شرط اساسي.. ويجب عليك تغيرها في حالة تغيير نوع الصورة.. فالصورة المفترضة في مثالي هي من نوع gif... لكن الصور من نوع jpg يجب ارسال السطر :

header("Content-type: image/jpeg");

ولمعلوماتك.. فأهمية هذا السطر تكمن في بروتوكول HTTP والذي ينص علي ذلك.

لذلك إذا اردت استخدام انواع صور اخري.. فيجب ان تعرف ما هي ال headers المناسبة لها.

ثم تقوم بارسالها باستخدام الدالة header

انا لست متأكداً من ان هذا الكود يعمل 100% وليس هناك وقت لتجربته للاسف.

تحياتي وبالتوفيق ! :) :)

#9

السلام عليكم

اخي الكريم سوف اجرب الكود

ولكن هل هناك طرق اخرى لعرض الصور بدلا من قاعدة البيانات وبدل من الطريقه اليدويه؟؟؟

#10

اعتقد اني لم افهم سؤالك جيداً..

ما هي الطريقة اليدوية التي تقصدها ؟

عموماً هناك طريقتين :-

الاولي:

ان تقوم بتخزين الصورة نفسها في قاعدة البيانات.. وهذا موضح في المثال اللي انت كتبته.

الثانية:

ان تقوم بتخزين مسار الصورة فقط في قاعدة البيانات. مثل /images/arabteam.jpg

وهذه الطريقة موضحة في المثال الذي كتبه راكان الحنيطي

إذا سألتني رأيي... فانا ارجح استخدام الطريقة الثانية بالطبع.

#11

السلام عليكم

نعم اخي لقد اخذت يومين اجرب فيهم والحمد لله نجحت ثم دخلت ووجدت ردك الكريم فاكد لي ..

اخوتى لو ما فيه مانع عندي سؤالين اخرين

1- عند ما اخزن صفحه في قاعده البيانات وعند عرضها في صفحه الموقع تعرض بشكل غير منسق ...بمعنى انى انسخها من موقع وتكون منسقه ثم اخزنها في قاعده البيانات وعند عرضها اجدها بغير تنسيق وانما كل الفقرات ملتصقه ببعضها .......فما الحل في هذا ....؟؟

2- اذا كان عندي اكثر من جدول واريد عرض جديد الموقع في الصفحة الرئيسية

ماهو الكود؟

موقعى التجريبي هو

www.swefonline.net

#12

اذا كنت قد استخدمت دالة الفايل من قبل يمكنك ان تعرف انه سبب المشكلة هو انك تحفظ الاسطر بدون ال <br> و هذا ما يجعل الجمل تلتصق ببعضها. لذا افعل التالي:

<?
$con = mysql_connect("Server","Username","Password") or die("Could not connect to database");
$db = mysql_select_db("DatabaseName",$con) or die("Could not select DB");
$Lines = file("http://www.google.com");
foreach($Lines as $LineNum => $Line)
{
	$Content += htmlspecialchars($Line)."<br>";
}
$SQL = "insert into table(content) values('".$Content."')";
$result = mysql_query($SQL);
mysql_close($con);
?>

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…