1

配列内の値を確認できますか?

私が意味するのは、このような配列を持っている場合です

$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';
    }
";
4

4 に答える 4

4

array_searchあなたの友達です:

$key = array_search($image_name, $image);

http://www.php.net/manual/en/function.array-search.php

配列で何かをするときはいつでも、配列関数のリストを読んでください。

于 2012-09-13T10:26:50.910 に答える
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).")";
于 2012-09-13T10:27:38.067 に答える
2

あなたはこのようにすることができます、

foreach($image as $key=>$imgInfo)
{
   if(isset($imgInfo['name']))
   {
      $validKeys = $key.',';
   }
}
$validKeys = rtrim($validKeys,',');
于 2012-09-13T10:30:53.837 に答える
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'
      ";

これは非常に単純な方法ですが、私の仕事はうまくいきます。皆さん、ありがとうございました

于 2012-09-13T12:12:51.110 に答える