私は2つのファイルfile.php
とget_xml.php
を持っています。私は、両方のPHPファイルでエコーテーブル情報を問題なく、私はデータを照会するために検索フォームを使用したい場合はget_xml.php
に送信して、私は結果を得ることはできません。検索フォームを送信した後にデータベースからクエリ結果を受け取っていません
file.php
<?php
$username="****";
$password="*******";
$database="******";
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die("Unable to select database");
$query="SELECT * FROM markers";
$result=mysql_query($query);
$num=mysql_num_rows($result);
mysql_close();
?>
<form action="get_xml2.php" method="post">
Name: <input type="text" name="name"><br>
Address: <input type="text" name="address"><br>
Type: <input type="text" name="type"><br>
<input type="Submit">
</form>
get_xml2.phpあなたが
<?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'];
// Opens a connection to a MySQL server
$connection=mysql_connect (localhost, $username, $password);
if (!$connection) {
die('Not connected : ' . mysql_error());
}
// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mysql_error());
}
// Select all the rows in the markers table
$query = sprintf(
"SELECT name, address, type FROM markers WHERE name = '%s' AND address = '%s' AND type = '%s'",
mysql_real_escape_string($name),
mysql_real_escape_string($address),
mysql_real_escape_string($type)
);
$result = mysql_query($result);
if($result == false) {
die(mysql_error() . "<br />\n$query");
}
if(mysql_num_rows($result) == 0) {
user_error("No rows returned by:<br />\n$query");
}
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 'type="' . parseToXML($row['type']) . '" ';
echo 'lat="' . $row['lat'] . '" ';
echo 'lng="' . $row['lng'] . '" ';
echo '/>';
}
// End XML file
echo '</markers>';
?>
:
今ここにコード自体です検索は、あなたは、あなたがこれを取得します見ることができます:
> Query was empty
SELECT name, address, type
FROM markers
WHERE name = 'The Melting Pot'
AND address = '14 Mercer St, Seattle, WA'
AND type = 'restaurant'
しかし、私は
$query = "SELECT * FROM markers WHERE 1";
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
The xml happily retrieves ALL data in from the database, as seen hereにXMLのコードを変更したとき。
ありがとうございました!
の
3210は、しかし、あなたはもう一つのことで私を助けることができ、ありがとうございましたか! xmlは、すべてのフィールドを正しく入力した場合にのみ結果を返します。私は、例えば、TYPEかNAMEを記入すると、対応する行を返すようにスクリプトを修正できますか?ありがとう:) – pufAmuf
条件付きでwhere句を追加したいですか?条件文とチェックをSQlの周りに置くだけです。 $ nameClause = "name =" "。}次に、$ nameClauseをSQL文の$ nameのどこに置くかを指定します。そのようにして、変数が何かを持っているときに条件チェックが行われます。 –
hmmmm私はこれを試しました。(空($ name)){ $ nameClause = ''; } else { $ nameClause = "name = '"。$ name。 "'"; }でも、これを実行してもすべてのフィールドに入力する必要があります:mysql_real_escape_string($ nameClause)。私はあなたにもっと気にしますが、このテキストボックスでやりとりするのは難しいので、新しい質問のもとにファイルを書きます。再度、感謝します :)! – pufAmuf