Processing an array in php? [duplicate]
Possible Duplicate:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select
I seem to have run into a problem with my php, getting this error:
Warning: mysql_real_escape_string() expects parameter 1 to be string, array given in /home/nightl7/public_html/demos/autocompletejquery/submit.php on line 27
Warning: mysql_query() [function.mysql-query]: Access denied for user 'nightl7'@'localhost' (using password: NO) in /home/nightl7/public_html/demos/autocompletejquery/submit.php on line 36
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/nightl7/public_html/demos/autocompletejquery/submit.php on line 36 Access denied for user 'nightl7'@'localhost' (using password: NO) SELECT * FROM markers WHERE select3 = ''
This is the code I have:
<?php
require("db_access.php");
function parseToXML($htmlStr)
{
$xmlStr=str_replace('<','<',$htmlStr);
$xmlStr=str_replace('>','>',$xmlStr);
$xmlStr=str_replace('"','"',$xmlStr);
$xmlStr=str_replace("'",''',$xmlStr);
$xmlStr=str_replace("&",'&',$xmlStr);
return $xmlStr;
}
$name=$_POST['name'];
$address=$_POST['address'];
$type=$_POST['type'];
$request=$_POST['$_REQUEST'];
// Select all the rows in the markers table
$inputs = array('select3');
$where = array();
foreach($inputs as $input)
{
if(!empty($_POST[$input])) {
$where[] = "{$input} = '" . mysql_real_escape_string($_POST[$input]) . "'";
}
}
if ($where) {
$query = 'SELECT * FROM markers WHERE ' . implode(' AND ', $where);
} else {
user_error("No rows returned by:<br />\n$query");
}
$result = mysql_query($query);
if($result == false) {
die(mysql_error() . "<br />\n$query");
}
if(mysql_num_rows($result) == 0) {
user_error("No rows returned by:<br />\n$query");
}
// Fetch the result
$rowset = array();
while ($row = mysql_fetch_array($result)) {
$rowset[] = $row;
}
// Look at your rowset structure:
print_r($rowset);
header("Content-type: text/xml");
// Start XML file, echo parent node
echo '<markers>';
// Iterate through the rows, printing XML nodes for eac开发者_高级运维h
while ($row = @mysql_fetch_assoc($result)){
// ADD TO XML DOCUMENT NODE
echo '<marker ';
echo 'name="' . parseToXML($row['name']) . '" ';
echo 'address="' . parseToXML($row['address']) . '" ';
echo '/>';
}
// End XML file
echo '</markers>';
?>
And I don't know why I'm getting a password error since this is what my db_access.php looks like:
<?
$username="nightl7_mapus";
$password="MYPASSWORD - is is correct :)";
$database="nightl7_map";
?>
What you have so far looks pretty good. You have properly escaped the SQL inputs when building your WHERE
clause. You've properly checked for errors in your query result. Looks like the next thing you need to do is fetch your query result rows:
// You already have....
$result = mysql_query($query);
if($result == false) {
die(mysql_error() . "<br />\n$query");
}
if(mysql_num_rows($result) == 0) {
user_error("No rows returned by:<br />\n$query");
}
// Fetch the result
$rowset = array();
while ($row = mysql_fetch_array($result)) {
$rowset[] = $row;
}
// Look at your rowset structure:
print_r($rowset);
// then do something with the $rowset array
UPDATE Problems with your db_access.php
:
If your username and password are correct in this file, perhaps it isn't being parsed correctly because short_open_tags
are disabled on your web server.
Try changing <?
to <?php
in db_access.php
.
精彩评论