2011-09-15 6 views
2

Possible Duplicate:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in selectPHPで配列を処理していますか?

私はこのエラーを取得し、私のPHPで問題に遭遇しているように見える:

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 = ''

これは私が持っているコードです:

<?php 
require("db_access.php"); 

function parseToXML($htmlStr) 
{ 
$xmlStr=str_replace('<','&lt;',$htmlStr); 
$xmlStr=str_replace('>','&gt;',$xmlStr); 
$xmlStr=str_replace('"','&quot;',$xmlStr); 
$xmlStr=str_replace("'",'&#39;',$xmlStr); 
$xmlStr=str_replace("&",'&amp;',$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 each 
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>'; 

?> 

そして、私は知りませんなぜ私はdb_access.phpのようなものなので、パスワードエラーが発生します:

<? 
$username="nightl7_mapus"; 
$password="MYPASSWORD - is is correct :)"; 
$database="nightl7_map"; 
?> 
+0

タイトルを修正してください:技術のリストはあなたの質問の説明ではありません。どの質問が...ええと、どういうことですか? –

+0

こんにちは、私の質問は、上記のコード作業を行う方法です。私はさまざまな種類の配列を読んでいますが、私がしたことが正しいかどうかはまだ決めることができません。 – user944589

+0

私の気持ちは、これはあまりにも広すぎるためです。プログラミング言語について特定の質問がありますか? –

答えて

4

あなたが今までに持っていたものはかなり良いように見えます。 WHERE句を作成するときに、SQL入力を適切にエスケープしました。クエリ結果のエラーを適切にチェックしました。あなたのdb_access.php

// 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問題:あなたがする必要がある次の事はあなたのクエリの結果行のフェッチであるように見えるユーザ名とパスワードは、このファイルに正しい場合

を、おそらくそれはにISN Webサーバー上でshort_open_tagsが無効になっているため、正しく解析されていません。

<?<?phpに変更して、db_access.phpに変更してみてください。

+0

おかげでマイケル、私はこれを試します:)) – user944589

+0

こんにちはマイケル、あなたは私がパスワードエラーを得ることができる理由を知っていますか? PHPに私のDBのアクセスが含まれていますか?ありがとう:) – user944589

+0

@ user944589私の更新を参照してください。短いPHPオープンタグ '<? ' –

関連する問題