PDA

View Full Version : این پروژه کلافم کرده



olampiad
چهارشنبه 17 اردیبهشت 1393, 17:53 عصر
سلام
به این پروژه ساده من یه نگا بندازید
http://s5.picofile.com/file/8122509076/f.zip.html
خیلی وقت روش فکر میکنم ولی تو یه جای ساده موندم
به این کد نگا بندازید



$results=simplexml_load_file('Module/WSC-Results.xml');
$skills=simplexml_load_file('Module/WSC-Skills.xml');
//print_r($skills);

foreach($results->result as $ress){
foreach($skills->skill as $skk){

if($ress->{'skill-number'} === $skk->number){
echo ($ress->{'skill-number'} === $skk->number);

}
}

echo $ress->{'skill-number'}.'<br>';

}


چرا حلقه دومی کار نمکنه؟
آیا شرط if من اشتباهه.
میشه اساتید یه نگا بندازید
ممنون

olampiad
پنج شنبه 18 اردیبهشت 1393, 00:07 صبح
تو رو خدا یه نگا بندازید

chakavaks
پنج شنبه 18 اردیبهشت 1393, 08:35 صبح
سلام
به این پروژه ساده من یه نگا بندازید
http://s5.picofile.com/file/8122509076/f.zip.html
خیلی وقت روش فکر میکنم ولی تو یه جای ساده موندم
به این کد نگا بندازید



$results=simplexml_load_file('Module/WSC-Results.xml');
$skills=simplexml_load_file('Module/WSC-Skills.xml');
//print_r($skills);

foreach($results->result as $ress){
foreach($skills->skill as $skk){

if($ress->{'skill-number'} === $skk->number){
echo ($ress->{'skill-number'} === $skk->number);

}
}

echo $ress->{'skill-number'}.'<br>';

}


چرا حلقه دومی کار نمکنه؟
آیا شرط if من اشتباهه.
میشه اساتید یه نگا بندازید
ممنون
************************************************** *********************
سلام دوست عزیز
به نظر من شرط حلقه دوم یک چیزایی هنوز کم داره و می بایست ارتباط خودش رو با پیش شرط اول حفظ کنه.
البته من اینجور فکر می کنم.
به نظر میرسه باید یکبار دیگه هم اون پیش شرط قبل رو در طراز با شرط اول قرار بدی و در مرحله سوم شرط بعدی رو جبران کنی
البته اینجور به نظر میرسه.
من خودم هنگامی که با این مشکلات روبرو می شم به جای کلمات عجیب و غریب از اسامی دوستام استفاده می کنم و شرطهام رو برای کد به صورت کاملا ملموس بکار میبرم
پیشنهادم این اسات که با یک مثال و اسامی جایگزین شرط خودتون رو دنبال کنبد.
در جایی مطالعه می کردم که بعضی از اعداد در رنج های ریاضی برابر -مساوی یا کوچکتر مساوی و یا بزرگتر مساوی میتوانند پاسخ هایی شبیه هم را ایجاد کنند
در این قضیه یک عامل خودش را به عامل دوم معرفی می کند ولی قادر نیست که از عامل سوم طبعیت کند.

1 ($results->result as $ress) 2 ($skills->skill as $skk)
3 نامشخص است.
شما به نظر من یک if دوباره دیگه هم ایجاد و بعد نتیجه گیری کن.
با تشکر

olampiad
پنج شنبه 18 اردیبهشت 1393, 17:06 عصر
سلام
if رو یه بار دیگه گذاشتم به این صورت ولی کار نکرد.


$results=simplexml_load_file('Module/WSC-Results.xml');
$skills=simplexml_load_file('Module/WSC-Skills.xml');
//print_r($skills);

foreach($results->result as $ress){
foreach($skills->skill as $skk){


if($ress->{'skill-number'} == $skk->number){

if($ress->{'skill-number'} == $skk->number){
echo $skk->number.'<hr>';
}

}
}

echo $ress->{'skill-number'}.'<br>';

}



آیا حلقه foreach تو اینجا کار نمکنه
به نظرتون از حلقه های دیگه استفاده کنم

MMSHFE
شنبه 20 اردیبهشت 1393, 17:12 عصر
اول متغیرهای result$ و skills->skill$ رو با print_r چاپ کنید و اینجا بگذارین ببینیم چی به چیه.

olampiad
شنبه 20 اردیبهشت 1393, 18:54 عصر
سلام این از skill$
http://s5.picofile.com/file/8122822326/skiil.png
و اینم از results$
http://s5.picofile.com/file/8122822334/result.png
بی نهایت ممنون بابت پاسخ ها

MMSHFE
شنبه 20 اردیبهشت 1393, 19:07 عصر
لااقل تو تگ pre میگذاشتین که بفهمیم چی به چیه. اینجوری که هیچیش معلوم نیست. نمیشه همینجا خروجی رو کپی کنید؟

olampiad
شنبه 20 اردیبهشت 1393, 22:40 عصر
سلام
این از skill$



SimpleXMLElement Object ( [skill] => Array ( [0] => SimpleXMLElement Object ( [number] => D1 [name-en] => Aircraft Maintenance ) [1] => SimpleXMLElement Object ( [number] => 13 [name-en] => Autobody Repair ) [2] => SimpleXMLElement Object ( [number] => 33 [name-en] => Automobile Technology ) [3] => SimpleXMLElement Object ( [number] => D4 [name-en] => Bakery ) [4] => SimpleXMLElement Object ( [number] => 30 [name-en] => Beauty Therapy ) [5] => SimpleXMLElement Object ( [number] => 20 [name-en] => Bricklaying ) [6] => SimpleXMLElement Object ( [number] => 24 [name-en] => Cabinetmaking ) [7] => SimpleXMLElement Object ( [number] => 36 [name-en] => Car Painting ) [8] => SimpleXMLElement Object ( [number] => 41 [name-en] => Caring ) [9] => SimpleXMLElement Object ( [number] => D1 [name-en] => Caring ) [10] => SimpleXMLElement Object ( [number] => 26 [name-en] => Carpentry ) [11] => SimpleXMLElement Object ( [number] => 07 [name-en] => CNC Milling ) [12] => SimpleXMLElement Object ( [number] => 06 [name-en] => CNC Turning ) [13] => SimpleXMLElement Object ( [number] => 32 [name-en] => Confectioner/Pastry Cook ) [14] => SimpleXMLElement Object ( [number] => 42 [name-en] => Construction Metal Work ) [15] => SimpleXMLElement Object ( [number] => D2 [name-en] => Construction Metal Works ) [16] => SimpleXMLElement Object ( [number] => HM2 [name-en] => Construction Metal Works ) [17] => SimpleXMLElement Object ( [number] => 34 [name-en] => Cooking ) [18] => SimpleXMLElement Object ( [number] => 18 [name-en] => Electrical Installations ) [19] => SimpleXMLElement Object ( [number] => 16 [name-en] => Electronics ) [20] => SimpleXMLElement Object ( [number] => 31 [name-en] => Fashion Technology ) [21] => SimpleXMLElement Object ( [number] => 28 [name-en] => Floristry ) [22] => SimpleXMLElement Object ( [number] => 40 [name-en] => Graphic Design Technology ) [23] => SimpleXMLElement Object ( [number] => 19 [name-en] => Industrial Control ) [24] => SimpleXMLElement Object ( [number] => 02 [name-en] => Information Network Cabling ) [25] => SimpleXMLElement Object ( [number] => 39 [name-en] => IT PC/Network Support ) [26] => SimpleXMLElement Object ( [number] => 09 [name-en] => IT/Software Applications ) [27] => SimpleXMLElement Object ( [number] => 27 [name-en] => Jewellery ) [28] => SimpleXMLElement Object ( [number] => 25 [name-en] => Joinery ) [29] => SimpleXMLElement Object ( [number] => 29 [name-en] => Ladies/Mens Hairdressing ) [30] => SimpleXMLElement Object ( [number] => 37 [name-en] => Landscape Gardening ) [31] => SimpleXMLElement Object ( [number] => 03 [name-en] => Manufacturing Team Challenge ) [32] => SimpleXMLElement Object ( [number] => HM1 [name-en] => Mechanical Device Control ) [33] => SimpleXMLElement Object ( [number] => 05 [name-en] => Mechanical Engineering Design - CAD ) [34] => SimpleXMLElement Object ( [number] => 04 [name-en] => Mechatronics ) [35] => SimpleXMLElement Object ( [number] => 14 [name-en] => Metal Roofing ) [36] => SimpleXMLElement Object ( [number] => 23 [name-en] => Mobile Robotics ) [37] => SimpleXMLElement Object ( [number] => D2 [name-en] => Mobile Robotics ) [38] => SimpleXMLElement Object ( [number] => 08 [name-en] => Mould Making ) [39] => SimpleXMLElement Object ( [number] => D3 [name-en] => Mould Making ) [40] => SimpleXMLElement Object ( [number] => 11 [name-en] => Offset Printing ) [41] => SimpleXMLElement Object ( [number] => 22 [name-en] => Painting & Decorating ) [42] => SimpleXMLElement Object ( [number] => HM3 [name-en] => Pattern Making ) [43] => SimpleXMLElement Object ( [number] => HM4 [name-en] => Plastering ) [44] => SimpleXMLElement Object ( [number] => D3 [name-en] => Plastering and Drywall Systems ) [45] => SimpleXMLElement Object ( [number] => 15 [name-en] => Plumbing and Heating ) [46] => SimpleXMLElement Object ( [number] => 01 [name-en] => Polymechanics/Automation ) [47] => SimpleXMLElement Object ( [number] => 38 [name-en] => Refrigeration ) [48] => SimpleXMLElement Object ( [number] => 35 [name-en] => Restaurant Service ) [49] => SimpleXMLElement Object ( [number] => 43 [name-en] => Sheet Metal Technology ) [50] => SimpleXMLElement Object ( [number] => HM1 [name-en] => Sheet Metal Technology ) [51] => SimpleXMLElement Object ( [number] => HM5 [name-en] => Sheet Metal Technology ) [52] => SimpleXMLElement Object ( [number] => 21 [name-en] => Stonemasonry ) [53] => SimpleXMLElement Object ( [number] => 12 [name-en] => Wall & Floor Tiling ) [54] => SimpleXMLElement Object ( [number] => 17 [name-en] => Web Design ) [55] => SimpleXMLElement Object ( [number] => 10 [name-en] => Welding ) ) ) 01
01
01



و اینم بخشی از results$




SimpleXMLElement Object ( [result] => Array ( [0] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 01 [country-iso] => TW [medal] => GOLD [score] => 544 ) [1] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 01 [country-iso] => AT [medal] => SILVER [score] => 538 ) [2] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 01 [country-iso] => CH [medal] => BRONZE [score] => 522 ) [3] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 01 [country-iso] => BR [medal] => Medallion For Excellence [score] => 513 ) [4] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 01 [country-iso] => KR [score] => 499 ) [5] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 01 [country-iso] => NZ [score] => 496 ) [6] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 01 [country-iso] => JP [score] => 494 ) [7] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 01 [country-iso] => LI [score] => 471 ) [8] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 01 [country-iso] => PT [score] => 468 ) [9] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 01 [country-iso] => DE [score] => 466 ) [10] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 01 [country-iso] => FI [score] => 457 ) [11] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 02 [country-iso] => JP [medal] => GOLD [score] => 556 ) [12] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 02 [country-iso] => NO [medal] => SILVER [score] => 534 ) [13] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 02 [country-iso] => SE [medal] => BRONZE [score] => 511 ) [14] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 02 [country-iso] => SG [score] => 498 ) [15] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 02 [country-iso] => KR [score] => 486 ) [16] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 02 [country-iso] => NL [score] => 485 ) [17] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 02 [country-iso] => CA [score] => 466 ) [18] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 02 [country-iso] => TH [score] => 465 ) [19] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 03 [country-iso] => KR [medal] => GOLD [score] => 545 ) [20] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 03 [country-iso] => KR [medal] => GOLD [score] => 545 ) [21] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 03 [country-iso] => KR [medal] => GOLD [score] => 545 ) [22] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 03 [country-iso] => AU [medal] => SILVER [score] => 533 ) [23] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 03 [country-iso] => AU [medal] => SILVER [score] => 533 ) [24] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 03 [country-iso] => AU [medal] => SILVER [score] => 533 ) [25] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 03 [country-iso] => TW [medal] => BRONZE [score] => 523 ) [26] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 03 [country-iso] => TW [medal] => BRONZE [score] => 523 ) [27] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 03 [country-iso] => TW [medal] => BRONZE [score] => 523 ) [28] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 03 [country-iso] => JP [medal] => Medallion For Excellence [score] => 514 ) [29] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 03 [country-iso] => JP [medal] => Medallion For Excellence [score] => 514 ) [30] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 03 [country-iso] => JP [medal] => Medallion For Excellence [score] => 514 ) [31] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 03 [country-iso] => NL [score] => 476 ) [32] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 03 [country-iso] => NL [score] => 476 ) [33] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 03 [country-iso] => NL [score] => 476 ) [34] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 03 [country-iso] => FR [score] => 472 ) [35] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 03 [country-iso] => FR [score] => 472 ) [36] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 03 [country-iso] => FR [score] => 472 ) [37] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 03 [country-iso] => BR [score] => 470 ) [38] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 03 [country-iso] => BR [score] => 470 ) [39] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 03 [country-iso] => BR [score] => 470 ) [40] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 03 [country-iso] => FI [score] => 466 ) [41] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 03 [country-iso] => FI [score] => 466 ) [42] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 03 [country-iso] => FI [score] => 466 ) [43] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 04 [country-iso] => JP [medal] => GOLD [score] => 557 ) [44] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 04 [country-iso] => JP [medal] => GOLD [score] => 557 ) [45] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 04 [country-iso] => BR [medal] => SILVER [score] => 550 ) [46] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 04 [country-iso] => BR [medal] => SILVER [score] => 550 ) [47] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 04 [country-iso] => KR [medal] => BRONZE [score] => 547 ) [48] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 04 [country-iso] => KR [medal] => BRONZE [score] => 547 ) [49] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 04 [country-iso] => SE [medal] => BRONZE [score] => 545 ) [50] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 04 [country-iso] => SE [medal] => BRONZE [score] => 545 ) [51] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 04 [country-iso] => CH [medal] => Medallion For Excellence [score] => 527 ) [52] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 04 [country-iso] => CH [medal] => Medallion For Excellence [score] => 527 ) [53] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 04 [country-iso] => FI [medal] => Medallion For Excellence [score] => 526 ) [54] => SimpleXMLElement Object ( [year] => 2009 [skill-number] => 04 [country-iso] => FI [medal] => Medallion For Excellence [score] => 526 )

olampiad
شنبه 20 اردیبهشت 1393, 22:57 عصر
فایل هارو رو سرور آپ کردم
به اینا یه نگا بندازید
http://sangjamejam.com/fff/skill.php

http://sangjamejam.com/fff/result.php
ممنون

MMSHFE
یک شنبه 21 اردیبهشت 1393, 09:45 صبح
این رو تست کنید:

$results = simplexml_load_file('Module/WSC-Results.xml');
$skills = simplexml_load_file('Module/WSC-Skills.xml');
foreach($results['result'] as $ress) {
foreach($skills['skill'] as $skk) {
if($ress['skill-number'] == $skk['number']) {
echo $ress['skill-number'] . '<hr />' . PHP_EOL;
}
}
}
تا جایی که یادمه شما نباید از == روی اشیاء از نوع Nodeهای XML استفاده کنید و فکر میکنم باید با itemValue یا یه چیزی شبیه این به مقدار داخلشون دسترسی پیدا کنید و اونها رو با هم مقایسه کنید.

olampiad
یک شنبه 21 اردیبهشت 1393, 12:04 عصر
itemValue چیه؟

MMSHFE
یک شنبه 21 اردیبهشت 1393, 12:16 عصر
مثلاً گفتم. منظورم این بود که یه دستوری داره که مقدار Node رو بصورت string برمیگردونه چون الان شما دارین دو شئ رو مقایسه میکنید و حتی اگه متن توشون برابر باشه، خودشون با هم برابر نیستن. شرمنده دستورات دقیق SimpleXML یادم نیست.