簡體   English   中英

如何從基於數組的MySQL數據庫獲取數據

[英]How to get data from mysql database based on array

所以我有一個叫做paint的表,數據如下

id            name               allow_on
------------------------------------------
1             Avian           Wall|Roof|Wood
2             Avitex          Wall|Roof|Iron
3             Nippon          Floor|Iron
4             Some            Plastic|Cloth|other

以及如何基於allow_on列獲取字段,例如“我想要可以在牆上使用的油漆”,到目前為止,我的代碼看起來像這樣

$paints = Paint::get();
foreach($paints as $paint)
{
     $exp = explode("|", $paint->allow_on);
     foreach($exp as $pnt)
     {
         if(in_array($request->paint_name,$pnt))
         {
            var_dump($pnt)
         }
     }
}

我正在使用Laravel 5.4,但是我無法使其正常運行,有解決方案嗎? 提前致謝。

使用in_array()時,您會混淆使用needle和haystack

干草堆應該是一個數組,即示例中的$exp數組

$paints = Paint::get();
foreach($paints as $paint)
{
     $exp = explode("|", $paint->allow_on);

    if(in_array($request->paint_name,$exp)) {
            // yes paint_name is in the array
     }
}
$want    = 'Wall';
$allowed = Paint::where('allow_on', 'like', '%'.$want.'%')->get();

foreach ($allowed as $allowedPaint) {
    echo $allowedPaint->name;
}

以上將為您提供所有可以在牆上使用的油漆。 如果只需要檢索油漆名稱,則可以使用:

$allowed = Paint::where('allow_on', 'like', '%'.$want.'%')->pluck('name');
var_dump($allowed);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM