簡體   English   中英

從SQL查詢將鍵值對推入數組

[英]Pushing key value pairs into an array from an SQL query

我正在從數據庫中提取數據,並希望將其插入到數組中。 我希望數組看起來像

$myArray = array(
           $id => array(
                        "title" => $title,
                        "description" => $description,
                        "tag" => $tag,
                        "link" => $link
                        )
                 )

其中$ id是從數據庫中提取的ID,$ title是從數據庫的“ title”列中提取的,依此類推。

我需要連接所有這些數據,以便可以使用模板輕松顯示信息。

目前,這是我的代碼:

<?php
$query = mysqli_query($db_conn, $advice);
//Arrays for the key value pairs
$pregnancyArray = array();
$postpartumArray = array();
$babyArray = array();
$toddlerArray = array();
$parentingArray = array();

//Arrays for now
$pregnancyTitleArray = array();
$pregnancyLinkArray = array();
$pregnancyDescriptionArray=array();
$pregnancyTagArray=array();

$postpartumTitleArray = array();
$postpartumLinkArray = array();
$babyTitleArray = array();
$babyLinkArray = array();
$toddlerTitleArray = array();
$toddlerLinkArray = array();
$parentingTitleArray = array();
$parentingLinkArray = array();

function createSlug($slug)
{
    $LNSH = '/[^\-\s\pN\pL]+/u';
    $SDH = '/[\-\s]+/';
    $slug = preg_replace($LNSH, '', mb_strtolower($slug, 'UTF-8'));
    $slug = preg_replace($SDH, '-', $slug);
    $slug = trim($slug, '-');
    return $slug;
}

while ($row = mysqli_fetch_array($query)) {
    $id = $row['adviceID'];
    $title = $row['title'];
    $cat = $row['cat'];
    $link = createSlug($title);
    $description = $row['description'];
    $tag = $row['tag'];


    if ($cat === 'pregnancy') {

        array_push($pregnancyTitleArray, $title);
        array_push($pregnancyLinkArray,$link);
        array_push($pregnancyDescriptionArray, $description);
        if($tag){
            array_push($pregnancyTagArray, $tag);
        }
        else {
            array_push($pregnancyTagArray, "nt");
        }

    } elseif ($cat === 'postpartum') {
        array_push($postpartumTitleArray, $title);
        array_push($postpartumLinkArray,$link);
    } elseif ($cat === 'baby') {
        array_push($babyTitleArray, $title);
        array_push($babyLinkArray,$link);
    } elseif ($cat === 'toddler') {
        array_push($toddlerTitleArray, $title);
        array_push($toddlerLinkArray,$link);
    } elseif ($cat === 'parenting') {
        array_push($parentingTitleArray, $title);
        array_push($parentingLinkArray,$link);
    } else {
        continue;
    }
}
    ?>
<section class="content" id="pregnancy-advice">
    <h2 class="heading">Pregnancy Advice</h2>
    <ul class="justified-content" style="list-style-type: none;">
    <?php
        for($i = 0; $i < sizeof($pregnancyTitleArray) && $i <= 15; $i++){
          echo "<li class=\"extra-spacing\"><a href=\"atemplate.php?\"" . $pregnancyLinkArray[$i] .  ">" . $pregnancyTitleArray[$i] . "</a></li>";
        }
     ?>
        <a class="more-links" href="adviceCat.php?cat=pregnancy">More -></a>
    </ul>
</section>

您可以像這樣用結果集構建一個數組嗎?

$results = [];
while ($row = mysqli_fetch_array($query)) {
  $results[$row['adviceID']] = $row;
  $results[$row['adviceID']]['link'] = createSlug($title);
}

如果您只想在數組中包含某些數據,則可以采用其他方式構建它:

$results = [];
while ($row = mysqli_fetch_array($query)) {
  $results[$row['adviceID']] = array(
    'title' => $row['title'], 
    'description' => $row['description'],
    'tag' => $row['tag'],
    'link' => createSlug($title),
  );
}

暫無
暫無

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

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