اذهب الي المحتوي
أوفيسنا

nizarqassm

عضو جديد 01
  • Posts

    13
  • تاريخ الانضمام

  • تاريخ اخر زياره

السمعه بالموقع

0 Neutral

عن العضو nizarqassm

البيانات الشخصية

  • Gender (Ar)
    ذكر
  • Job Title
    nazasr
  • البلد
    العراق
  • الإهتمامات
    القراءة وتطوير البرانمج
  1. السلام عليكم ... لم استطع فك الضغط , ممكن ارفاق الملف ..مكشورين
  2. في هذه الصورة بعد الدرجات , في النتيجة توجد كلمة راسب او ناجح , ولكن السكربت عندما يستورد البيانات يجعل كل حقل فيه نص يضع مكانه صفر ......ز وهذا الكود الخاص باستيراد الملف ... ممكن جعل الكود ان الحقل اذا كان نص يدرجه كنص ولا يجعل مكانه قيمة افتراضية صفر <?php /** * @author Abood Nour * @copyright 2017 */ if(!defined('CALLED_FROM_INSTALL')){ die('Forbidden!'); } if(!file_exists(INC_PATH.'/config.php')){ die('Missed some steps during installation'); } require_once(INC_PATH.'/config.php'); $max_rows_per_query = 100; if(isset($file_data)){ $rows_count = count($file_data); $columns_count = ($rows_count>0)?count($file_data[0]):0; if($rows_count>0 && $columns_count>3){ $subFieldNames = array(); for($i=0;$i<$columns_count-3;$i++){ $subFieldNames[] = sprintf('`sub%d`',($i+1)); } $tableSQL = 'CREATE TABLE IF NOT EXISTS `'.DB_PREFIX.'sheet_schema` (' .'`stdID` INT NOT NULL AUTO_INCREMENT ,' .'`num` INT NOT NULL ,' .'`name` VARCHAR(250) NOT NULL ,' .'`grade` VARCHAR(250) NOT NULL ,'; foreach($subFieldNames as $sub){ $tableSQL .= sprintf('%s DOUBLE NULL DEFAULT "0",',$sub); } $tableSQL .= 'PRIMARY KEY (`stdID`)) DEFAULT CHARSET=utf8'; if($PDO->exec($tableSQL) !== false){ $dataQuery = sprintf('INSERT INTO `'.DB_PREFIX.'sheet_schema` (`num`,`name`,`grade`,%s) VALUES ',implode(',',$subFieldNames)); $rowQuery = array(); $allVars = array(); foreach($file_data as $i=>$row){ //Prepare and Sort row data $seatNo = ($i === 0)?$row[$columnIndices['seat_no']]:intval($row[$columnIndices['seat_no']]); //if it's the 1st row, set value to header value and don't cast to integer //prepare replacement array by adding seat number, name and grade $rowVars = array($seatNo,trim(strval($row[$columnIndices['name']])),trim(strval($row[$columnIndices['grade']]))); //remove them from the array and leave only subjects unset($row[$columnIndices['seat_no']],$row[$columnIndices['name']],$row[$columnIndices['grade']]); if($i === 0){ //store 1st row as a header and dont store it in db $fh = fopen(INC_PATH.'/'.TB_HEADER_FILENAME,'w'); fwrite($fh,json_encode(array_merge($rowVars,$row))); fclose($fh); continue; } //Loop through subjects values and ensure right data is in place //P.S. I used to use array_map but it turned out that Foreach is much faster foreach($row as $columnIndex => $cellValue){ //Check if it's a separator (not a real subject), set cell value to MAGIC NUMBER 😄 //otherwise just cast value to the right data type $rowVars[] = (in_array($columnIndex,$columnIndices['sep_columns'],true))?$_CONFIG['magic_number']:((is_null($cellValue))?null:doubleval($cellValue)); } //Add this row variables to query variable placeholder $allVars = array_merge($allVars,$rowVars); //Parameterized Query String $rowQuery[] = sprintf('(%s)',substr(str_repeat(' ?,',$columns_count),0,-1)); if(($i !== 0 && ($i % $max_rows_per_query) === 0) || ($i === (count($file_data)-1) ) ){ $query = $dataQuery.implode(',',$rowQuery); try{ $q = $PDO->prepare($query); if($q->execute($allVars)){ $_result['status'] = 'success'; $_result['message'] = 'تم إضافة البيانات بنجاح'; }else{ $_result['message'] = 'لم يتم إضافة كافة البيانات.. تأكد من إدخال البيانات بشكل صحيح'; } }catch(Exception $e){ $_result['message'] = 'لم يتم إضافة كافة البيانات.. تأكد من إدخال البيانات بشكل صحيح'; } $rowQuery = array(); //reset data $allVars = array(); //reset data } } /*if(count($rowQuery)>0){ $query = $dataQuery.implode(',',$rowQuery); $q = $PDO->prepare($query); if($q->execute($allVars)){ $_result['status'] = 'success'; $_result['message'] = 'تم إضافة كافة البيانات بنجاح'; }else{ $_result['message'] = 'لم يتم إضافة كافة البيانات.. تأكد من إدخال البيانات بشكل صحيح'; } }*/ }else{ var_dump($PDO->errorInfo()); $_result['message'] = 'لم نستطع إنشاء الجدول.. من فضلك تأكد من صلاحيات المستخدم أو اختر بادئة مختلفة'; } }else{ $_result['message'] = 'لا توجد بيانات كافية. من فضلك قم بإدخال على الأقل صف واحد و 4 أعمدة'; } } ?>
  3. الاستاذ الفاضل والاخ المفضال شكرا جزيلا وجزاء الله خير جزاء المحسنين بوركت
  4. استاذ الفاضل ايضا كتبت كلمة راسب ... وحقول الدرجات فارغة بمجرد كتابة اسم الطالب تظهر كلمة راسب قصدت اذا كانت حقول الدرجات فارغة يبقى حقل النتيجة فرغ يبدو ان البرنامج يتعامل مع الحقول الفارغة على انها صفر
  5. شكرا جزيلا استاذ سوف اقوم بتجربة ما تفضلت به
  6. هل تقصد ارفق لك الجدول الخاص باليبانات
  7. شكرا جزيلا استاذ ولكن انا عندي مجموعة دروس IIf([الاسلامية الدرجة بعد الاكمال]>=49.5 And [العربية الدرجة بعد الاكمال]>=49.5 And [الانكليزية الدرجة بعد الاكمال]>=49.5 And [الرياضيات الدرجة بعد الاكمال]>=49.5 And [الحاسوب الدرجة بعد الاكمال]>=49.5 And [الفيزياء الدرجة بعد الاكمال]>=49.5 And [الكيمياء الدرجة بعد الاكمال]>=49.5 And [الاحياء الدرجة بعد الاكمال]>=49.5 And [علم الارض الدرجة بعد الاكمال];"ناجح ";"راسب")
  8. السلام عليكم كتبت داله iif لكتابة ناجح وراسب ولكن مشكلتي في الخلايا الفارغة ايضا يكتب فيها راسب لانها فارغة ... فكيف يكون اذا كانت الخليه فارغة لا تحتوي على درجة لا يكتب راسب مع الشكر الجزيل
  9. السلام عليكم ممكن توضيح الاستفادة نت استخدام PhpSpreadsheet هل تقصد سكربت يتم تنصيبه على قاعدة بيانات من خلال ملف اكسل
×
×
  • اضف...

Important Information