Mysql SELECT / query из выпадающего меню HTML
Привет,
Я создал HTML-форму, которая будет использоваться для запроса к базе данных MySQL, результат запроса будет отображаться на моем Google Map API.
Метод SELECT работает, когда я использовал обычный текст, но не работал при использовании выпадающего меню из HTML
УСПЕШНЫЙ ЗАПРОС :
$query = "SELECT * FROM table_p WHERE nama_provinsi='JAWA TIMUR' ";
НЕУДАЧНЫЙ ЗАПРОС :
$query = "SELECT * FROM table_p WHERE nama_provinsi='$nama_provinsi' ";
Что я уже пробовал:
<?php require("koneksi.php"); $nama_provinsi = $_POST['nmprovinsi']; echo $nama_provinsi; 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; } $connection=mysqli_connect ($db_host, $db_user, $db_pass); if (!$connection) { die('Not connected : ' . mysqli_error()); } $db_selected = mysqli_select_db($connection,$db_name); if (!$db_selected) { die ('Can\'t use db : ' . mysqli_error()); } $query = "SELECT * FROM table_p WHERE nama_provinsi='$nama_provinsi' "; $result = mysqli_query($connection,$query); if (!$result) { die('Invalid query: ' . mysqli_error()); } header("Content-type: text/xml"); // Start XML file, echo parent node echo "<?xml version='1.0' ?>"; echo '<table_p>'; $ind=0; // Iterate through the rows, printing XML nodes for each while ($row = @mysqli_fetch_assoc($result)){ // Add to XML document node echo '<marker '; echo 'id="' . $row['id'] . '" '; echo 'Properti="' . parseToXML($row['Properti']) . '" '; echo 'Alamat="' . parseToXML($row['Alamat']) . '" '; echo 'Luas="' . parseToXML($row['Luas']) . '" '; echo 'Harga="' . parseToXML($row['Harga']) . '" '; echo 'status="' . parseToXML($row['status']) . '" '; echo 'Fasilitas="' . parseToXML($row['Fasilitas']) . '" '; echo 'Nama="' . parseToXML($row['Nama']) . '" '; echo 'Kontak="' . parseToXML($row['Kontak']) . '" '; echo 'lat="' . $row['lat'] . '" '; echo 'lng="' . $row['lng'] . '" '; echo '/>'; $ind = $ind + 1; } // End XML file echo '</table_p>'; ?>
Ниже приведена HTML-форма выбора, которую я использовал для этого запроса
<select name="nmprovinsi" id="idprovinsi" class="dropdown_item_select"> <option value="1" >JAWA TIMUR</option> <?php // Load file koneksi.php include "koneksi.php"; $sql = mysqli_query($konekan, "SELECT DISTINCT(nama_provinsi) AS nama_provinsi FROM table_p ORDER BY nama_provinsi"); while($data = mysqli_fetch_array($sql)){ echo "<option value='".$data['nama_provinsi']."'>".$data['nama_provinsi']."</option>"; } ?> </select>
Bryian Tan
Вывел ли echo $nama_provinsi; правильный выбор?
Member 14140112
Привет Брайан Тан, пожалуйста, смотрите на дополнительный сценарий, который я добавил к своим вопросам,
есть какие-нибудь проблемы с echo$nama_provinsi ?
Richard Deeming
PHP: SQL-инъекция - руководство пользователя[^]
РНР: Подготовленные инструкции и хранимые процедуры - руководство пользователя[^]
Chad3F
Если вы не используете полные заполнители (идеал), то, по крайней мере, избежите ваших ненадежных значений SQL:
$nama_provinsi = mysqli_real_escape_string($nama_provinsi); $query = "SELECT * FROM table_p WHERE nama_provinsi='$nama_provinsi' ";
Chad3F
Возможно, вы захотите использовать htmlspecialchars()
вместо того чтобы катать свои собственные parseToXML()
функция.
Member 10025491
mungkin maksudnya, pastikan output dari $nama_provinsi nya ada. жике $_POST, где Дари $nama_provinsi езидок ада, dapat dipastikan Калау хасил seleksi Дари запроса ня Акан косне. #CMIIW