从MySQL数据库到文本字段通过PHP的数据?
我已经创建了一个名为页的表的数据库,其中包含。从MySQL数据库到文本字段通过PHP的数据?
在这个表中有所谓的pages_id,页面名称,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>";?>
您还没有从您的查询结果中提取一行,并正在输出未定义的变量。正确的顺序应该是:
$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']) ?>" />
希望你知道如何连接到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
<?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; ?>
$ pagename,$ pagekey等定义在哪里?此外,你可以使用mysql_fetch_assoc(),并在假设它是一个数组之前检查$ result是否为假。哦,和禹应该转换的实体,或字符串中的双引号会制动你的HTML(假设你相信你的来源,否则XSS攻击也可能是一个问题) –
哦,斯里。感谢这一点。要编辑它。 –
您正在运行查询,但没有从中获取结果。试试这个:
$fields = mysql_fetch_assoc($result);
然后,你可以参考查询的结果与$fields['pagename']
等等。
Documentation here。一般来说,您可能需要查看mysql模块的文档。
使用类似的表单,您可以一次编辑一(1)行。因此你需要2页。页面#1列出表格中的所有页面,其超链接指向编辑页面,传递pagekey作为GET参数,页面2是您的编辑页面,页面ID接收页面ID作为GET参数。
页#2 URL可以是:
代码将如下:
<?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>";?>
上面的代码是非常基本的,但将成为您的要求目前在可编辑输入框中显示行内容。
我创造了这个功能,将努力从一列检索所有数据:
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]."/>';
}
<?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
}
?>
不要做“”,这是一个讨厌的速记。请改用。 – Leo
为什么?我总是被教导它是完全有效的。 –
是的,它是有效的,但 Leo