我已经创建了一个数据库,其中包含一个名为 pages 的表。
在此表格中有以下字段: pages_id , pagename , pagedesc , pagekey 和 pagecont
如何将数据从数据库中的这些字段中提取到可编辑的文本字段?我在下面尝试过,但我的代码无效:(
<?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>";?>
答案 0 :(得分: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']) ?>" />
答案 1 :(得分: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
答案 2 :(得分: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; ?>
答案 3 :(得分:0)
您正在运行查询,但未从中获取结果。试试这个:
$fields = mysql_fetch_assoc($result);
然后,您可以使用$fields['pagename']
等参考查询结果。
Documentation here。您可能希望查看一般的mysql模块的文档。
答案 4 :(得分:0)
使用您拥有的表单,您可以一次编辑一(1)行。因此,您需要2页。页面#1列出表格中的所有页面,其中包含指向编辑页面的超链接,将页面密钥作为GET参数传递,页面#2是您的编辑页面,它接收页面ID作为GET参数。
第2页网址可以是:
代码如下:
<?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>";?>
上面的代码非常基本,但是可以满足您在可编辑输入框中显示行内容的要求。
答案 5 :(得分: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'的所有数据
$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]."/>';
}
答案 6 :(得分: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
}
?>