הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   שליפת הגדרות מהמסד > הכנסה למערך > פליטה מהמערך (https://hosts.co.il/forums/showthread.php?t=75808)

SniR-S 21-06-09 15:37

שליפת הגדרות מהמסד > הכנסה למערך > פליטה מהמערך
 
אוקי, מה שאני רוצה לעשות, זה כמו שאמרתי בכותרת, אני מושך נתונים מהמסד רוצה להכניס
את הנתונים למערך, וכל נתון יקבל משתנה מסויים..
עשיתי משהו כזה:
PHP קוד:

    $query mysql_query("SELECT * FROM config");
        
$result mysql_fetch_array($query)
            or die(
"התרחשה שגיאה:" mysql_error());

        
$result = array(
            
"site_name"        =>    $name,
            
"site_descripition"        =>    $descripition,
            
"site_keywords"        =>    $keywords
            
); 

מה שיש בתוך המערך זה כביכול מה שאמור להיות הערך שבעמודה במסד.

intercooler3819 21-06-09 16:06

הכי טוב זה להחזיק טבלה במסד של
key | value

כששניהם text ואז לשלוף לתוך ARRAY

SniR-S 21-06-09 16:17

מזאת אומרת?
איך אני עושה שמה שיש במשתנה name יהיה שווה לערך site_name שיש במסד?
לדוגמא אם אני רוצה אני מוחק את המערך ושם במקום
PHP קוד:

$name $result['site_name']; 

ואז זה נותן לי את התוצאה הרצוייה שלי.
פשוט אני רוצה להכניס את כל הנתונים לתוך מערך, ואז אני פולט איזה נתון שאני רוצה לפי משתנה.

intercooler3819 21-06-09 16:55

PHP קוד:

<?php

$b 
= array();
$q mysql_query("SELECT `key` AS `k`, `value` AS `v` FROM `configuration`");
while (
$a mysql_fetch_assoc($q))
    
$b[$a['k']] = $a['v'];

var_dump($b);
die;

Assuming that key is UNIQUE ;)

SniR-S 21-06-09 17:26

אפשר לעשות את המפתח id auto_increment..
אממ..שאלה, בצורה שביקשת אי אפשר לעשות את זה?

בניה 21-06-09 18:06

ציטוט:

נכתב במקור על ידי Snir Shamka (פרסם 722995)
אפשר לעשות את המפתח id auto_increment..
אממ..שאלה, בצורה שביקשת אי אפשר לעשות את זה?

השיטה שהוא הביא יותר טובה סביר להניח,אם יש סיבה ספציפית שבגללה אתה רוצה לעשות כמו שאתה אומר,תגיד.

והמלצה,לא להשתמש ב mysql_fetch_array אלא mysql_fetch_assoc כמו בדוגמא של ניצן.

SniR-S 21-06-09 18:56

אממ..הסיבה היא שבגלל שאני רוצה לקרוא לכל משתנה בשם שלו..
וגם כי אני לא הכי מבין את השיטה של ניצן.

למה לא להשתמש ב array ולהשתמש ב assoc?

בניה 21-06-09 19:18

ציטוט:

נכתב במקור על ידי Snir Shamka (פרסם 723018)
אממ..הסיבה היא שבגלל שאני רוצה לקרוא לכל משתנה בשם שלו..
וגם כי אני לא הכי מבין את השיטה של ניצן.

למה לא להשתמש ב array ולהשתמש ב assoc?

נתחיל מהסוף.
אם יש לך טבלה אם שדות id ו name
fetch_array תחזיר לך כל נתון כפול 2
דוגמה פחות או יותר:
PHP קוד:

[0] = 1
[id] = 1
[1] = somename
[name] = somename 

וfetch_assoc תחזיר לך רק מערך שהמפתח הוא השם של השדה ולא גם מספר.
יותר יעיל ויותר אסטטי לדעתי.

ובשיטה של ניצן אתה תוכל לגשת לכל משתנה עם השם שלו בתור מפתח במערך כמו מה שאתה עשית לפי מה שהבנתי מהקוד שלך.
PHP קוד:

$conf['site_name'] = 'hosts'


SniR-S 21-06-09 19:41

לא יודע, לא הולך לי, השיטה הזאת קשה ומסובכת מידי בשבילי.
אין מצב שתדריכו אותי בערך איך ליצור מערך כמו שעשיתי?
לדוגמא:
PHP קוד:

    $query mysql_query("SELECT * FROM config");
        
$result mysql_fetch_assoc($query
            or die(
"התרחשה שגיאה:" mysql_error()); 

        
$result = array( // כביכול זה מה שיתן למשתנים להיכנס כ $result['ver']; ואז אני פשוט מוציא אותם כמשתנה רגיל..
            
"site_name"        =>    $name
            
"site_descripition"        =>    $descripition
            
"site_keywords"        =>    $keywords 
            
);  

// מה שאני רוצה לעשות זה תחליף לזה:
        
array(
            
$result['site_name']        =>    $name
            
$result['site_descripition']        =>    $descripition
            
$result['site_keywords']        =>    $keywords 
            
); 

עריכה:
זה בסדר ככה?, האם זה יעבוד?
PHP קוד:

        array($result['$ver'] => $ver = array(
            
"site_name"        =>    $name,
            
"site_descripition"        =>    $descripition,
            
"site_keywords"        =>    $keywords
            
)); 



כל הזמנים הם GMT +2. הזמן כעת הוא 20:55.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ