2017-04-24 113 views
0

Eh ..我很抱歉提出這樣一個基本問題,但我無法在google或stackoverflow上找到一個好的答案...這就是我想要做的。將數據從MySQL存儲到數組中並稍後訪問

我保存在MySQL的公告,然後我用

<?php while($announcerow = mysqli_fetch_assoc($announceResult)): ?> 

他們展示給用戶,然後有一個按鈕用於管理員對它們進行編輯,一個模式打開後,管理員能夠選擇他想要哪個發佈編輯,以及,我試圖以同樣的方式顯示公告,但如果我這樣做,公告將不再顯示,所以我可以在查詢中只使用mysqli_fetch_assoc一次,因爲我看到...

我想保存他們在一個數組中並稍後使用它們,但之後我不知道如何訪問該數組。

例如,我將它們保存這樣的:

while($row = mysql_fetch_assoc($query)){ 

    // add each row returned into an array 
    $array[] = $row; 


} 

但我怎麼後來顯示通知的用戶? 另外,我的公告有一個ID,一個標題,一個URL和一個描述,這是我現在展示他們的方式。如何從數組中顯示它們?

對不起這個沒有問題的問題......找不到答案。

我甚至試過mysql_data_seek();所以我可以用獲取更多次,但我得到這個錯誤:

Warning: mysql_data_seek(): supplied argument is not a valid MySQL result resource in 

我已經試過這

while($row = mysql_fetch_assoc($announceResult)){ 
      $array[] = $row; 
     } 

<?php foreach($array as $datum): ?> 
       <a data-toggle="tooltip" title="<?php echo $datum['Description']; ?>" target="_blank" href="<?php echo $datum['URL']; ?>"> 
         <p class="text-light-blue"> 
          <span class="fa fa-external-link"></span> 
          <?php echo $datum['Title']; ?> 
          <span class="text-muted"> - by <?php echo $datum['Author']; ?> (<?php echo $datum['Date']; ?>) 
          </span> 
         </p> 
       </a> 
       <?php endforeach; ?> 

,但我得到了以下錯誤

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/a8438725/public_html/index.php on line 56 

Notice: Undefined variable: array in /home/a8438725/public_html/index.php on line 777 
Warning: Invalid argument supplied for foreach() in /home/a8438725/public_html/index.php on line 777 

這裏是整個代碼的SQL和一個rray

$announceSql = "SELECT `ID`, `Author`, `Title`, `Date`, `URL`, `Description` FROM `Announcements` ORDER BY ID DESC"; 
    $announceResult = mysqli_query($db, $announceSql); 
    $announcerow_cnt = mysqli_num_rows($announceResult); 

    while($row = mysql_fetch_assoc($announceResult)){ 
     $array[] = $row; 
    } 

我還添加了這個

if (!$announceResult) { 
      printf("Error: %s\n", mysqli_error($db)); 
      exit(); 
     } 

並沒有MySQL錯誤,或至少沒有mysql錯誤appeard

解決了!我是用的,而不是mysqli_fetch_assoc MySQL的

+0

您可以在'$ array'上創建一個循環,如http://php.net/manual/en/control-structures.foreach.php –

+0

中給出的那樣呃,但是如何定義一個鍵以及如何添加例如: 「key」=>「$ row ['Title']」,「$ row ['URL']」,「$ row ['Description']」等 這會在那時起作用嗎? – Andrei

+0

我已經添加了答案。讓我知道它是否適合你 –

回答

-1

您可以使用這樣

<?php while($announcerow = mysqli_fetch_assoc($announceResult)){ ?> 
      $array[] = $announcerow; 
<?php }?> 



    <?php foreach($array as $datum) {?> 
     <a data-toggle="tooltip" title="<?php echo $datum['Description']; ?>" target="_blank" href="<?php echo $datum['URL']; ?>"> 
       <p class="text-light-blue"> 
        <span class="fa fa-external-link"></span> 
        <?php echo $datum['Title']; ?> 
        <span class="text-muted"> - by <?php echo $datum['Author']; ?> (<?php echo $datum['Date']; ?>) 
        </span> 
       </p> 
     </a> 
    <?php } ?> 
+0

mysql_fetch_assoc():提供的參數不是一個有效的MySQL結果資源在 – Andrei

+0

@Andrei正在顯示從結果' '。在此代碼中,您需要將每行添加到您的數組中。所以後來,你可以隨時訪問它 –

+0

嗯,我用它來加載它們到數組中之前使用你的代碼來顯示它們:? while($ row = mysql_fetch_assoc($ announceResult)){ \t \t \t $ annarray [] = $ row; \t \t} 但我得到這個錯誤從上面 – Andrei

0

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/a8438725/public_html/index.php on line 56

這意味着你還沒有告訴我們含有類似

$announceResult=mysqli_query($db_conn, $sql); 

線路故障或$ announceResult處於不同的範圍,或$ announceResult自填充後已更改。其中的第一個可能也會引發警告。所以最可能的原因是你已經在750多行代碼中的某處發現了一個範圍問題或bug,這些代碼你沒有在這裏顯示。 (提示:如果遇到像這樣的問題,無法在原位修復,建議儘量使用小型程序來重現錯誤並使用它來解決問題/說明您的問題堆棧溢出問題)。

Notice: Undefined variable: array in /home/a8438725/public_html/index.php on line 777

Warning: Invalid argument supplied for foreach() in /home/a8438725/public_html/index.php on line 777

由於環填充$陣列()由mysqli_fetch_assoc驅動(),$陣列()從未被初始化並填充。

+0

我已經更新了我的帖子,SQL是正確的,而上述這樣的範圍不應該是一個問題?我還初始化數組中環路'$ annarray =陣列()之前;'所以唯一的錯誤是現在mysql_fetch我不知道爲什麼會發生,因爲它完美的作品時,我這樣做是嵌入在HTML – Andrei

相關問題