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

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

AlonMi 12-05-07 13:17

שאלה - PHP
 
האם אפשר להגדיר את ה-array כך שיחפש את המשתנים בטבלה מסוימת ב-DB ?
דוגמא -
במקום:
קוד:

$words = array('italy', 'france'.......);
שבעצם יעשה:
קוד:

$words = array(SELECT 'contries' from `Earth`)........

חיים 12-05-07 13:36

כשאתה מוציא מידע מהמסד אתה עושה ככה:
PHP קוד:

<?php
mysql_connect
("localhost","root","123456");//התחברות למסד
mysql_select_db("db1");//בחירת המסד
$query mysql_query("select * from database");//שואלים שאילתה
$row mysql_fetch_array($query);//מקבצים את התוצאה לתוך מערך
echo $row['row'];//מדפיסים את הערך של השדה row מהמסד
?>

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

Daniel 12-05-07 14:49

ציטוט:

נכתב במקור על ידי masterpl (פרסם 476289)
כשאתה מוציא מידע מהמסד אתה עושה ככה:
PHP קוד:

<?php
mysql_connect
("localhost","root","123456");//התחברות למסד
mysql_select_db("db1");//בחירת המסד
$query mysql_query("select * from database");//שואלים שאילתה
$row mysql_fetch_array($query);//מקבצים את התוצאה לתוך מערך
echo $row['row'];//מדפיסים את הערך של השדה row מהמסד
?>

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

"מקצוע:מתכנת ומקודד אתרים(מתקדם)"
כדאי לך גם ללמוד את המקצוע "קריאת השאלה".


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

PHP קוד:

<?
    
function is_in_db($array$field){
        
//Created By MasterT-Dont Change The Copyrights
        
if(is_array($array)) {
            foreach(
$array as $value) {
                
$sql.= $field." = '".$value."' OR ";
            }

            
$sql substr($sql0strlen($sql) -4);
            
$sql mysql_query("SELECT ".$field." FROM table_name WHERE {$sql}");
            if(
mysql_num_rows($sql) != 0) {
                return 
true;
            } else {
                return 
false;
            }
        }
    }
?>

אם מישהו מכם משתמש בזה-אנא, אל תורידו את הקרדיט.
אתם משתמשים בזה ככה:
$countrys = array("israel", "usa", "somewhere");
$where = "country";
if(is_in_db($countrys, $where)) {
//יש את זה בתוך המסד.
}
שנה את table_name לשם הטבלה.

בהצלחה :)

Tomer 12-05-07 15:36

ציטוט:

נכתב במקור על ידי MasterT (פרסם 476339)
"מקצוע:מתכנת ומקודד אתרים(מתקדם)"
כדאי לך גם ללמוד את המקצוע "קריאת השאלה".


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

PHP קוד:

<?
    
function is_in_db($array$field){
        
//Created By MasterT-Dont Change The Copyrights
        
if(is_array($array)) {
            foreach(
$array as $value) {
                
$sql.= $field." = '".$value."' OR ";
            }

            
$sql substr($sql0strlen($sql) -4);
            
$sql mysql_query("SELECT ".$field." FROM table_name WHERE {$sql}");
            if(
mysql_num_rows($sql) != 0) {
                return 
true;
            } else {
                return 
false;
            }
        }
    }
?>

אם מישהו מכם משתמש בזה-אנא, אל תורידו את הקרדיט.
אתם משתמשים בזה ככה:
$countrys = array("israel", "usa", "somewhere");
$where = "country";
if(is_in_db($countrys, $where)) {
//יש את זה בתוך המסד.
}
שנה את table_name לשם הטבלה.

בהצלחה :)

אז למה לא להשתמש ב IMPLODE ?

PHP קוד:

SELECT x FROM y WHERE `idIN (". implode(', ',$array) ."

קצת יותר יעיל ממה שאתה נתת, ואפשר גם כפונקציה:

PHP קוד:

$array = array(1,2,4,5);

function 
is_in_db() {
global 
$array;

$sql mysql_query("SELECT * FROM `table` WHERE `id` IN ("implode(', ',$array) .")");
if (
mysql_num_rows($sql) != 0) return true;



Daniel 12-05-07 20:42

ציטוט:

נכתב במקור על ידי Tomer (פרסם 476403)
אז למה לא להשתמש ב IMPLODE ?

PHP קוד:

SELECT x FROM y WHERE `idIN (". implode(', ',$array) ."

קצת יותר יעיל ממה שאתה נתת, ואפשר גם כפונקציה:

PHP קוד:

$array = array(1,2,4,5);

function 
is_in_db() {
global 
$array;

$sql mysql_query("SELECT * FROM `table` WHERE `id` IN ("implode(', ',$array) .")");
if (
mysql_num_rows($sql) != 0) return true;



תוסיף גם else false,

PHP קוד:

$array = array(1,2,4,5);

function 
is_in_db() {
global 
$array;

$sql mysql_query("SELECT * FROM `table` WHERE `id` IN ("implode(', ',$array) .")");
if (
mysql_num_rows($sql) != 0) return true;
else return 
false;



Source 12-05-07 20:46

ציטוט:

נכתב במקור על ידי MasterT (פרסם 476604)
תוסיף גם else false,

PHP קוד:

$array = array(1,2,4,5);

function 
is_in_db() {
global 
$array;

$sql mysql_query("SELECT * FROM `table` WHERE `id` IN ("implode(', ',$array) .")");
if (
mysql_num_rows($sql) != 0) return true;
else return 
false;




אפשר במקום:
קוד:

if (mysql_num_rows($sql) != 0) return true;
else return false;

לעשות:
קוד:

return (mysql_num_rows($sql) != 0);
^^


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

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