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

مشكلة في تحديث المصفوفة في قاعدة البيانات

بدأه mohmadalmasre في 25 سبتمبر 2012 · 19 رد · 1,690 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اسف لاني عم ازعجكم كتييييير بأسألتي

لكن مالقيت حل لهل المشكلة غير اني اسألكم وين الخطأ ب الموضوع ؟؟

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

لكن كأن الصفحة تقوم فقط ب تحديث الصفحة ولا تقوم بأرسال البيانات !!!

انا تفقدت الكود اكثر من 10 مرات ولم اجد الخطأ فقط لو تخبروني وين الخطأ ب الكود !!

اقتباس

<?php

include "session.php";

//// الاتصال بقاعدة البيانات

include "../fun/fun_setting_site.php";

///////////

?>

<html>

<head>

<link rel="stylesheet"type="text/css"href="temp.css">

<title> اعدادات الموقع </title>

</head>

<body>

<div id="headblock">

اعدادات الموقع

</div>

<form method='post'>

<table width='100%' dir='rtl'>

<b><h1>

<tr>

<td> عنوان الموقع </td>

<td><input name='name'type='text'value='<?= setting(name);?>'></input><td>

</tr>

<br>

<tr>

<td> رابط الموقع </td>

<td><input name='url'type='text'value='<?= setting(url);?>'> </input><td>

</tr>

<tr>

<td>

وصف الموقع

</td>

<td>

<textarea name='desc'cols='60'rows='4'> <?= setting(desc);?></textarea>

</td>

</tr>

<tr>

<td>

كلمات مفتاحية

</td>

<td>

<textarea cols='60'rows='4'name='key'> <?= setting(key);?></textarea>

</td>

</tr>

<tr>

<td> حالة الموقع </td>

<td><select name='open'>

<?php

if(setting(open) == 1 )

{

echo '<option value=\'1\'> الموقع متاح </option>

<option value=\'2\'> الموقع مغلق </option>';

}

else

{

echo '<option value=\'2\'> الموقع مغلق </option>

<option value=\'1\'> الموقع متاح </option>';

}

?>

</select> </td>

</tr>

<tr>

<td>

رسالة الاغلاق

</td>

<td>

<textarea cols='60'rows='4'name='msg_close'><?= setting(msg_close);?> </textarea>

</td>

</tr>

<tr>

<td>

<input name='submit' type='submit' value='ارسال البيانات '> </input>

</td>

<tr>

</table>

</form>

<?php

if ($_post["submit"]){

/////// نجلب قيم البوست

$post_name = $_post['name'];

$post_url = $_post ['url'];

$post_desc = $_post['desc'];

$post_key = $_post ['key'];

$post_open = $_post ['open'];

$post_msg_close = $_post ['msg_close'];

if (

$post_name == ''

or $post_url == ''

or $post_desc == ''

or $post_key == '')

{

echo " جميع الحقول مطلوبة ";

}else {

$updata = mysql_query("

UPDATE setting_site SET

name ='$post_name',

url='post_url',

desc='$post_desc',

key='$post_key',

open='$post_open',

msg_close='$post_msg_close'

") or die ("error update query");

}

}

?>

والسلام عليكم ورحمة الله وبركاته

110.jpg
#2

اخي العزيز اتمنى ان افيدك في هذا الرد :)

شوف خلي كل دوال او اكواد php فوق التنسيق html ^_^ و إن شاء الله سيتم الحل ؟

Professional Technology Information

HTML , CSS , PHP , JQuery , Action Script

Photographic Designer & websites Designer : Dinamic Sites & photographic Sites & Flash Sites

IF YOU WANT SEE MY WORKS

VISIT THIS LINK

Prince Designs

#3

شكرا كتيير الك اخي على المرور بس والله لا فوق ولا تحت مشي الحال !!!

110.jpg
#4

هادا هوي الملف كامل للي طلبه !!

2012.rar

110.jpg
#5

السلام عليكم

أخى الكريم عليك مراجعة كودك فبه العديد من الأخطاء اللغوية

بالنسبة لكود الحفظ سيكون بالشكل التالى :

$insert = mysql_query("INSERT INTO `2012`.`setting_site` (`name` ,`url` ,`desc` ,`key` ,`open` ,`msg_close`)
VALUES ('$post_name', '$post_url', '$post_desc', '$post_key', '$post_open', '$post_msg_close')") or die ("error insert query");

ولكن إن أردت عملية تحديث البيانات فعليك إستخدام جملة WHERE مع الإستعلام الذى قمت بكتابته .

لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق

لا إله إلا أنت سبحانك إني كنت من الظالمين

#6

بارك الله فيك اخي ahmedsaoud31

بس لو تخبرني وين احط كلمة ال where

عنجد بعتذرلك مرة اخرى لكن يعني الوضع الله اعلم فيه وعندي امتحان ولا يوجد لا كتب و اي شيئ شايف انت الوضع كيف بسوريا

بس لو تساعدني بهل الموضوع بكون شاكر الك كتيييير

110.jpg
#7

السلام عليكم

اقتباس
بارك الله فيك اخي ahmedsaoud31

بس لو تخبرني وين احط كلمة ال where

عنجد بعتذرلك مرة اخرى لكن يعني الوضع الله اعلم فيه وعندي امتحان ولا يوجد لا كتب و اي شيئ شايف انت الوضع كيف بسوريا

بس لو تساعدني بهل الموضوع بكون شاكر الك كتيييير

وفيك أخى الكريم , إن شاء الله النصر قريب , حتى أنا أخى الكريم معى إمتحان بعد أيام ولم أنظر فى المادة حتى الآن smile.gif , ربنا يستر

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

بالنسبة لقاعدة البيانات فأنت تستخدم كلمات محجوزة فى لغة SQL مثل OPEN ,KEY,DESC ولهذا سينتج خطأ فى الإستعلام عند تنفيذه ولتفادى هذا الخطأ يجب البعد عن تسميه الحقول باسماء تتعارض مع هيكلة SQL وهذا تعديل على كود الإستعلام الخاص بتحديث البيانات :

$updata = mysql_query("
UPDATE setting_site SET
name ='$post_name',
url='post_url',
descc='$post_desc',
keyy='$post_key',
openn='$post_open',
msg_close='$post_msg_close'
WHERE keyy='$post_key'") or die ("error update query");

لاحظ تعديل الكلمات key و open و desc وبالطبع يجب تعديل هذه الاسماء أيضاً فى قاعدة البيانات .

لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق

لا إله إلا أنت سبحانك إني كنت من الظالمين

#8

بارك لله فيك اخي بس المشكلة مازلت مستمرة ومع اضافة الكود التالي

في رأس الصفحة

error_reporting(E_ALL);

بعد ان حولت الفورم للصفحة savesetting.php

اصبح يظهر لي الاخطاء التالية

Notice: Undefined variable: _post in C:\AppServ\www\2012\admin\savesetting.php on line 25

Notice: Undefined variable: _post in C:\AppServ\www\2012\admin\savesetting.php on line 26

Notice: Undefined variable: _post in C:\AppServ\www\2012\admin\savesetting.php on line 27

Notice: Undefined variable: _post in C:\AppServ\www\2012\admin\savesetting.php on line 28

Notice: Undefined variable: _post in C:\AppServ\www\2012\admin\savesetting.php on line 29

Notice: Undefined variable: _post in C:\AppServ\www\2012\admin\savesetting.php on line 30

Notice: Undefined variable: post_desc in C:\AppServ\www\2012\admin\savesetting.php on line 39

Notice: Undefined variable: post_key in C:\AppServ\www\2012\admin\savesetting.php on line 40

Notice: Undefined variable: post_open in C:\AppServ\www\2012\admin\savesetting.php on line 41

Notice: Undefined variable: post_key in C:\AppServ\www\2012\admin\savesetting.php on line 42

Notice: Undefined variable: UPDATE in C:\AppServ\www\2012\admin\savesetting.php on line 49

حدا عندو فكرة !!!؟

110.jpg
#9

اسف لاني عم ازعجكم اخي انا تفقدت السكربت وعدلت بعض الاخطاء وراحت اخطاء عدم التعريف

لكن المصيبة حتى الان لم يتم التعديل بقاعدة البيانات

يعني لم تعد تظهر اي اخطاء ..... لكن الكود لا يعمل !!!؟ :blink: :huh:

هل لي بدرس يشرح بشكل مفصل الدالة

mysql_query(update )

وشكرا لصبركم معي اخواني واسف مرة ثانية للازعاج

110.jpg
#10

اخي تفضل

http://www.w3schools.com/sql/sql_update.asp

اخي ممكن ارسال الكود من جديد؟ للنظر بالمشكلة وسوف ابذل كل جهدي لحل مشكلتك

#11

شكرا على ردك اخي mazenwrq

رح اعطيك السكربت كامل لانه بسيط لسه ما طورته

المشكلة في 2012 >> admin

setting , save setting

الملف بسيط بتمنى انك تساعدني اخي mazenwrq

لانو عنجد صرلي اكثر من شهر معلق عند هاي الخطوة

2012.rar

110.jpg
#12

اخي الملف ما نزل معي بسبب وجود فيروسات بداخل الملف الذي ارسلته

الرجاء التاكد من عدم وجود فيروسات و ارسال نسخة من قاعدة البيانات من أجل السرعة لحل المشكلة...

#13

اخي بأحدا المواقع الاجنبية قالولي السبب الفيروسات بس انا ما صدقت معقول هل الحكي !؟؟

110.jpg
#14

السلام عليكم ..

هل انحلت المشكلة ..؟؟

#15

لا أعلم لكن حاول التخلص من الفيروسات وجرب، لكن لا أعتقد أنه السبب

#16

طيب اخواني هذه الاكواد كاملة و ب الفعل خجلان منكم على الاطالة

كود الفورم : اذا في مشاكل لغوية غير مؤثرة يعني مافي داعي للاهتمام بها

اقتباس

<?php

include "session.php";

//// الاتصال بقاعدة البيانات

include "../fun/fun_setting_site.php";

///////////

?>

<html>

<head>

<link rel="stylesheet"type="text/css"href="temp.css">

<title> اعدادات الموقع </title>

</head>

<body>

<div id="headblock">

اعدادات الموقع

</div>

<form method='POST'action='savesetting.php'>

<table width='100%' dir='rtl'>

<b><h1>

<tr>

<td> عنوان الموقع </td>

<td><input name='name'type='text'value='<?= setting(name);?>'></input><td>

</tr>

<br>

<tr>

<td> رابط الموقع </td>

<td><input name='url'type='text'value='<?= setting(url);?>'> </input><td>

</tr>

<tr>

<td>

وصف الموقع

</td>

<td>

<textarea name='descc'cols='60'rows='4'> <?= setting(descc);?></textarea>

</td>

</tr>

<tr>

<td>

كلمات مفتاحية

</td>

<td>

<textarea cols='60'rows='4'name='keyy'> <?= setting(keyy);?></textarea>

</td>

</tr>

<tr>

<td> حالة الموقع </td>

<td><select name='openn'>

<?php

if(setting(open) == 1 )

{

echo '<option value=\'1\'> الموقع متاح </option>

<option value=\'2\'> الموقع مغلق </option>';

}

else

{

echo '<option value=\'2\'> الموقع مغلق </option>

<option value=\'1\'> الموقع متاح </option>';

}

?>

</select> </td>

</tr>

<tr>

<td>

رسالة الاغلاق

</td>

<td>

<textarea cols='60'rows='4'name='msg_close'><?= setting(msg_close);?> </textarea>

</td>

</tr>

<tr>

<td>

<input name='submit' type='submit' value='ارسال البيانات '> </input>

</td>

<tr>

</table>

</form>

كود الحفظ ب الصفحة : علما اخواتي صرت مجرب الف طريقة للتحديث لكن هاي اخر كود كتبته

في حال اخواتي كان هناك ملاحظات اتمنى انكم تكتبولي اياها

واذا كان ممكن تساعدوني بكتابة الكود الصحيح

ومرة ثاينة اعتذر لاني شغلتكم كتيييير

اقتباس

<link rel="stylesheet"type="text/css"href="temp.css">

<title> صفحة حفظ الاعدادات </title>

</head>

<body>

<div id="headblock">

حفظ الاعدادات

</div>

<?php

include "session.php";

//// الاتصال بقاعدة البيانات

///////////

/////// نجلب قيم البوست

$POST_name = $_POST['name'];

$POST_url = $_POST [ 'url' ];

$POST_descc = $_POST[ 'descc' ];

$POST_keyy = $_POST [ 'keyy '];

$POST_openn = $_POST [' openn '];

$POST_msg_close = $_POST[' msg_close' ];

echo"<br>";

if (empty ($_POST['name'])){

echo"<br>";

echo "يجب كتابة اسم الموقع";

echo"<br>";

}

if (empty ($_POST['url'])){echo"<br>";

echo "يجب كتابة عنوان الموقع";echo"<br>";

}

if (empty ($_POST['descc'])){echo"<br>";

echo "الرجاء كتابة وصف الموقع";echo"<br>";

}

if (empty ($_POST['keyy'])){echo"<br>";

echo "لا يمكنك ترك وصف الموقع فارغ";echo"<br>";

} else{echo"<br>";

$update ="

UPDATE 'setting_site' SET

name ='$POST_name',

url ='$POST_url',

decc ='$POST_descc',

keyy ='$POST_keyy',

openn ='$POST_openn',

msg_close='$POST_msg_close'

WHERE keyy = '$POST_KEYY'";

$result = mysql_query($update);

if ($result){

echo "<br>";

echo "تم التحديث بنجاح";

}else{

echo "<br>";

echo "فشل التحديث";

}

}

?>

110.jpg
#17

اخي لا داعي للاعتذر فهاذا واجبنا

اولا اخي لماذا وجود الفراغات هنا؟ فهاذا مهم:

$POST_name = $_POST['name'];
$POST_url = $_POST [ 'url' ];
$POST_descc = $_POST[ 'descc' ];
$POST_keyy = $_POST [ 'keyy '];
$POST_openn = $_POST [' openn '];
$POST_msg_close = $_POST[' msg_close' ];

فمن المفروض ان لا يكون هناك فراغات كتالي:

$POST_name = $_POST['name'];
$POST_url = $_POST ['url'];
$POST_descc = $_POST['descc'];
$POST_keyy = $_POST ['keyy'];
$POST_openn = $_POST ['openn'];
$POST_msg_close = $_POST['msg_close'];

بالنسة للاستعلام جرب التالي:

$update ="
UPDATE `setting_site` SET
name ='$POST_name',
url ='$POST_url',
decc ='$POST_descc',
keyy ='$POST_keyy',
openn ='$POST_openn',
msg_close='$POST_msg_close'
WHERE keyy = '$POST_KEYY'";
$result = mysql_query($update);

فلا يجب وضع اسم قاعدة البيانات بين علامتي اقتباس بل بين علامتي (`) وهو زر (ذ). ولك ايضا هاذا الرابط قد يساعدك: http://www.w3schools.com/php/php_mysql_update.asp

وخبرني بالنتيجة.

#18

الحمد لله اخواني تم حل المشكلة

لا تسألوني شو كان السبب

صدقا دققت ب الكود القديم والكود الجديد لم اجد اي فرق

رغم انني دققت اكثر من ساعة

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

وان شاء الله رح تم اتغالظ عليكم بأستفساراتي حتى اتعلم هذه اللغة عشان وقت الانتصار قريبا بسوريا ارجع لكليتي حافظ اللغة كاملة

بارك الله فيكم اخواني وجعلها في ميزان حسناتكم

تم تعديل هذه المشاركة بواسطة mohmadalmasre في 1 أكتوبر 2012 في 22:43

110.jpg
#19

اخي الفاضل الفرق بسيط جدا هناك فرق بين علامة ' و علامة `

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

الكشيدة ( فوق حرف الذال بالعربية ) تستخدم لتوضيح المسميات الاجبارية في الاستعلام مثل اسماء الجداول والحقول

اما علامة التنصيص تستخدم في القيم التي سيتم تعديلها او ادراجها وهي تدل على نص أو رقم (نص بالضرورة)

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

في اسماء الحقول الخاصة بجدولك هناك حقل اسمه keyy اعتقد انك اضفت حرف y للتجنب اي اخطاء مع الكلامات المحجوزة في SQL

ولكن يمكنك تسمية الحقل key بشرط كتابة اسمه كالتالي `key` ( كشيدة )

وشكراً لك

=============
الطموح و الحافز سر النجاح

=============

AflamHQ.com | Palphp.com

#20

بارك الله فيك اخي Hamdan Taima

لكن المشكلة كانت في كتابة استقبال البيانات $_post وانا كنت اكتبها small

بينما هي يجب ان تكون cabtal $_POST

ولم اتوقع ان هناك فرق !!!

110.jpg

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

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

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

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

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