2011-08-25 46 views
1

對不起,我的代碼有點長,請耐心等待。我想加載從我的sql表格通過PHP存儲在單元格內的鏈接。用戶可以點擊複選框並選擇要加載的鏈接。不過,我有一點點關閉。它會加載sql表中的所有鏈接,而不是用戶選擇的鏈接。我做錯了什麼?請指導。謝謝!如何從sql表中加載選定的單元格PHP

$sql = "SELECT * FROM previousbroadcast ORDER BY id DESC"; 
$result=mysql_query($sql); 
$count = mysql_num_rows($result); 
while ($row = mysql_fetch_assoc($result)) { 
     if (isset($_POST['re_b'])){ 
     $xml = simplexml_load_file($row['bclink']); 
    } 
} 

和HTML就像

+0

您正在定義/使用'$ count'變量兩次... – Konerak

+0

警告你的代碼容易受到SQL注入攻擊。 –

+0

<輸入名稱= 「複選框[]」 類型= 「複選框」 ID = 「複選框[]」 的值= 「?<回聲$行[ 'ID'];>」>     這一行應添加..由於限制無法在原帖完成 – questiongirl

回答

1

OK,一個新的嘗試,你給了更多的信息:該解決方案是基於以下假設

  1. 的C的值你得到的heckboxes在某種程度上與數據庫中的字段有關
  2. 爲簡單起見,我已將該字段命名爲id - 它可以在數據庫中以不同的名稱命名,但只有您知道...

話雖這麼說:

$sql = "SELECT * FROM previousbroadcast ORDER BY id DESC"; 
$result=mysql_query($sql); 
$count = mysql_num_rows($result); 

// in this array, we now have all the values of the checkboxes the user selected 
$checkboxvalues = $_REQUEST['checkbox']; 

while ($row = mysql_fetch_assoc($result)) { 
    if (isset($_POST['re_b'])){ 

     // if the ID of this row is mentioned in the checkboxes the user clicked 
     // then - and only then - load the file 
     if (in_array($row[id], $checkboxvalues)) { 

      $xml = simplexml_load_file($row['bclink']); 
     } 
    } 
} 
+0

謝謝! $ _POST ['re_b']是一個提交按鈕。 – questiongirl

+0

我將我的代碼更改爲我原來的代碼。我仍然無法找出一種方法,只加載用戶點擊的鏈接,而不是加載所有這些鏈接 – questiongirl

+0

更改我的答案以反映您發佈的代碼; – ty812

1

OK,你的代碼沒來的相當不錯,它是不完整的。 但我所看到的$ del_record值複選框陣列鍵$ I 問題還有就是你在呼喚每一次的數據庫,所以很容易迷路。

你應該存放在另一個數組的數組中取出,然後重複出現,而不是使許多請求到數據庫,這將使你的代碼運行速度更快,那你就比它更多的控制。

1

我會得到SQL來完成所有的過濾爲您提供:

if (isset($_POST['re_b'])) { 

    $checkboxvalues = isset($_REQUEST['checkbox']) ? $_REQUEST['checkbox'] : array(); 

    $myCheckboxes = array(); 
    foreach ($checkboxvalues as $cbv) { 
    $myCheckboxes[] = mysql_real_escape_string($cbv); 
    } 

    $sql = "SELECT * FROM previousbroadcast WHERE id IN ('" . implode(",", $myCheckboxes) . "') ORDER BY id DESC"; 
    $result=mysql_query($sql); 
    while ($row = mysql_fetch_assoc($result)) { 
    $xml = simplexml_load_file($row['bclink']); 
    // do something here with $xml or it will get overwritten 
    } 
} 
相關問題