2012-09-13 50 views
1

我可以檢查數組中的值嗎?如何檢查數組中是否存在值php

我的意思是,如果我有這樣的

$image=array(
    1 =>$_FILES['image1']['name'], 
    2 =>$_FILES['image2']['name'], 
    3 =>$_FILES['image3']['name'], 
    4 =>$_FILES['image4']['name'], 
    5 =>$_FILES['image5']['name'], 
    6 =>$_FILES['image6']['name'], 
); 

我想知道什麼是有一個形象的名稱的數組中的鍵,我想更新根據一個MySQL表的一些列陣列密鑰號碼,這些都有一個圖像名稱。

我也想寫一個sql查詢來做到這一點。 (這是我想要的東西的一個例子,我知道這個查詢是錯誤的)

$query=" 
    UPDATE mytablename 
    foreach($image as $valeu){ 
     echo'$image(1)=$value'; 
     echo'$image(2)=$value'; 
     echo'$image(3)=$value'; 
     echo'$image(4)=$value'; 
     echo'$image(5)=$value'; 
     echo'$image(6)=$value'; 
    } 
"; 
+1

你能解釋一下你的查詢應該做什麼嗎?看看一個mysql教程。 – PiTheNumber

回答

2

從外觀上看,如果數組中存在一個鍵,它會附加一個圖像?

至於查詢,你可以使用一個破滅來獲取文件的名稱是這樣的:

$query=" 
    update myTableName 
    set someValue=1 
     where imageName in (".implode($image).")"; 

或者,如果你需要得到數組鍵,那麼你可能必須首先做一個循環:

$IDArray=array(); 
foreach($image as $key => $val) 
{ 
    $IDArray[]=$key; 
} 

$query=" 
    update myTableName 
    set someValue=1 
     where imageID in (".implode($IDArray).")"; 
+0

其實我有6個圖像字段在我的表單,如果用戶想更新 其中之一,通過這個查詢我想讓用戶做到這一點而不改變整個6圖像,但只有新上傳的圖片。休息時間必須與以前一樣。 – Yasitha

2

你可以像這樣,

foreach($image as $key=>$imgInfo) 
{ 
    if(isset($imgInfo['name'])) 
    { 
     $validKeys = $key.','; 
    } 
} 
$validKeys = rtrim($validKeys,','); 
+1

我認爲這應該工作。但是請不要忘記,這些密鑰在所有實例中都是相同的,所以在更新該行之前請三思。 +1 –

0

我做我自己的方式來做到這一點。

$image=array(
1 =>$_FILES['image1']['name'], 
2 =>$_FILES['image2']['name'], 
3 =>$_FILES['image3']['name'], 
4 =>$_FILES['image4']['name'], 
5 =>$_FILES['image5']['name'], 
6 =>$_FILES['image6']['name'], 
); 
$i=1; 
    $sql = "UPDATE salehotel "; 
    $sql .="SET"." "; 
foreach($image as $value){ 
    if(!$value==""){  
    $sql .= "`image".$i."`"."="."'". $value ."'".",". " "; 
    $i++; 
    } 

} 

$sql .=" 
     `name`='$name', 
     `status`='$status', 
     `type`='$type', 
     `location`='$location', 
     `price`='$price', 
     `description`='$description' 
    WHERE 
     `property_id`='$edit' 
     "; 

這是一個非常簡單的方法,但它做我的工作。謝謝大家