2012-05-15 87 views
0

我已經創建了一個名爲頁的表的數據庫,其中包含從MySQL數據庫到文本字段通過PHP的數據?

在這個表中有所謂的pages_id頁面名稱pagedescpagekeypagecont領域。

如何從數據庫中的這些字段中將數據提取到可編輯的文本字段? 。我已經試過以下,但我的代碼是不工作:(

<?php 
// Make a MySQL Connection 
mysql_connect("####", "####", "####") or die(mysql_error()); 
mysql_select_db("####") or die(mysql_error()); 

// Get all the data from the "example" table 
$result = mysql_query("SELECT * FROM pages") 
or die(mysql_error()); 

?> 
<p>Page title</p><br /> 
<?php echo"<input name=\"pagename\" type=\"text\" id=\"pagename\" value=\"" .$pagename. "\">"; ?> 

<p>Keywords</p><br /> 
    <?php echo"<input name=\"pagekey\" type=\"text\" id=\"pagekey\" value=\"" .$pagekey. "\">"; ?> 

<p>Description</p><br /> 
<?php echo"<input name=\"pagedesc\" type=\"text\" id=\"pagedesc\" value=\"" .$pagedesc. "\">"; ?> 

<p>Content</p><br /> 
<?php echo "<textarea name=\"pagecont\" cols=\"120\" rows=\"20\" id=\"pagecont\" >".$pagecont."</textarea>";?> 

回答

1

您還沒有從您的查詢結果中提取一行,並正在輸出未定義的變量。正確的順序應該是:

$result = mysql_query($sql) or die(mysql_error()); // run the query 
$row = mysql_fetch_assoc($row); // fetch a result row 

echo $row['name_of_field']; // output one of the result row's data fields. 

還要注意的是,當你將數據輸出到一個HTML表單,你是,你必須確保沒有在數據你會輸出「破」的形式。例如如果輸出文本包含",並且您在表單字段的屬性周圍使用了這些引號,則會「破壞」該html。輸出到html的最佳做法是使用:

<input type="text" name="somefield" value="<?php echo htmlspecialchars($row['name_of_field']) ?>" /> 
0

希望你知道如何連接到MySQL我列入僅供參考虛擬連接

<?php 
    //Open connection 

    $qry="SELECT * FROM <table>"; 
    $result=mysql_query($qry); 


    while($row = mysql_fetch_array($result)) 
    { 
     $variable = $row["column_name"]; 
    } 
?> 

的HTML:

<input type="text" id="test" value="<?=$variable?>"> 

如果你想獲得明確結果,考慮你的SQL語句中使用WHERE條款在這裏看到更多的信息:W3Schools

+0

不要做「<?= $ variable?>」,這是一個討厭的速記。請改用<?php echo $ variable?>。 – Leo

+0

爲什麼?我總是被教導它是完全有效的。 –

+0

是的,它是有效的,但<?可能會導致其他解析器出現問題,而且它不可讀或不必要。 – Leo

0
<?php 
// Make a MySQL Connection 
mysql_connect("####", "####", "####") or die(mysql_error()); 
mysql_select_db("####") or die(mysql_error()); 

// Get all the data from the "example" table 
$result = mysql_query("SELECT * FROM pages") or die(mysql_error()); 

$result = mysql_fetch_array($result, MYSQL_ASSOC); 

foreach($result as $page): ?> 

    <p>Page title</p><br /> 
    <input name="pagename" type="text" id="pagename" value="<?= $page['pagename']; ?>"> 

    <p>Keywords</p><br /> 
    <input name="pagekey" type="text" id="pagekey" value="<?= $page['pagekey']; ?>"> 

    <p>Description</p><br /> 
    <input name="pagedesc" type="text" id="pagedesc" value="<?= $page['pagedesc']; ?>"> 

    <p>Content</p><br /> 
    <textarea name="pagecont" cols="120" rows="20" id="pagecont" ><?= $page['pagecont']; ?></textarea> 
    <hr /> 

<?php endforeach; ?> 
+0

$ pagename,$ pagekey等定義在哪裏?此外,你可以使用mysql_fetch_assoc(),並在假設它是一個數組之前檢查$ result是否爲假。哦,和禹應該轉換的實體,或字符串中的雙引號會制動你的HTML(假設你相信你的來源,否則XSS攻擊也可能是一個問題) –

+0

哦,斯里。感謝這一點。要編輯它。 –

0

您正在運行查詢,但沒有從中獲取結果。試試這個:

$fields = mysql_fetch_assoc($result); 

然後,你可以參考查詢的結果與$fields['pagename']等等。

Documentation here。一般來說,您可能需要查看mysql模塊的文檔。

0

使用類似的表單,您可以一次編輯一(1)行。因此你需要2頁。頁面#1列出表格中的所有頁面,其超鏈接指向編輯頁面,傳遞pagekey作爲GET參數,頁面2是您的編輯頁面,頁面ID接收頁面ID作爲GET參數。

頁#2 URL可以是:

http://domain.com/editpage.php?pagekey=abc

代碼將如下:

<?php 
// Make a MySQL Connection 
mysql_connect("####", "####", "####") or die(mysql_error()); 
mysql_select_db("####") or die(mysql_error()); 

$key = $_GET['pagekey']; 

// Get all the data from the "example" table 
$result = mysql_query("SELECT * FROM pages where pagekey = $key") 
    or die(mysql_error()); 

$row = mysql_fetch_assoc($result); 

?> 
<p>Page title</p><br /> 
<?php echo"<input name=\"pagename\" type=\"text\" id=\"pagename\" value=\"" .$row['pagename']. "\">"; ?> 

<p>Keywords</p><br /> 
    <?php echo"<input name=\"pagekey\" type=\"text\" id=\"pagekey\" value=\"" .$row['pagekey']. "\">"; ?> 

<p>Description</p><br /> 
<?php echo"<input name=\"pagedesc\" type=\"text\" id=\"pagedesc\" value=\"" .$row['pagedesc']. "\">"; ?> 

<p>Content</p><br /> 
<?php echo "<textarea name=\"pagecont\" cols=\"120\" rows=\"20\" id=\"pagecont\" >".$row['pagecont']."</textarea>";?> 

上面的代碼是非常基本的,但將成爲您的要求目前在可編輯輸入框中顯示行內容。

0

我創造了這個功能,將努力從一列檢索所有數據:

function page_data($fieldname){ 

       $result = mysql_query("SELECT ".$fieldname." FROM pages"); 

       while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
        $arrdata[] = $row[$fieldname]; 
       } 

       return $arrdata; 
      } 

檢索從頁表中的所有數據,其中列「頁面名稱」

$pagename=array(); 
    $pagename=page_data('pagename'); 
    $numpages=count($pagename)-1; 

在每個值pagename將該值回顯到文本框中

for($i=0; $i <= $numpages; $i++){ 
    echo '<input name="pagename" type="text" value=".$pagename[$i]."/>'; 
    } 
0
<?php 
    // Make a MySQL Connection 
    mysql_connect("####", "####", "####") or die(mysql_error()); 
    mysql_select_db("####") or die(mysql_error()); 

    // Get all the data from the "example" table 
    $result = mysql_query("SELECT * FROM pages") or die(mysql_error()); 
    while($row = mysql_fetch_array($result)) 
    { 
?> 

    <p>Page title</p><br /> 
    <input name="pagename" type="text" id="pagename" value="<?php echo $row['pagename']; ?>"> 
    <p>Keywords</p><br /> 
    <input name="pagekey" type="text" id="pagekey" value="<?php echo $row['pagekey']; ?>"> 
    <p>Description</p><br /> 
    <input name="pagedesc" type="text" id="pagedesc" value="<?php echo $row['pagedesc']; ?>"> 
    <p>Content</p><br /> 
    <textarea name="pagecont" cols="120" rows="20" id="pagecont"><?php echo $row['pagecont']; ?></textarea> 

<?php 
    } 
?> 
相關問題