Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Beberapa kotak daftar pilihan Negara tidak menampilkan semua Kota di kotak daftar lain (Php, mysql, ajax)

Itu' karena permintaan mysql salah. Anda memberikan beberapa angka dalam persamaan sederhana.

Seharusnya:

$g = $_GET['g'];    
$sql="SELECT * FROM city WHERE state_id IN (".$g.")";
$result = mysqli_query($con,$sql);

jika $g adalah daftar angka yang dipisahkan koma. Jika tidak, Anda harus membuatnya.

Jadi jika $g adalah array, Anda harus melakukan implode() di atasnya dan kemudian Anda dapat menggunakannya dalam kueri

$g = $_GET['g'];    
$g = implode(',', $g);
$sql="SELECT * FROM city WHERE state_id IN (".$g.")";
$result = mysqli_query($con,$sql);

jika itu adalah string dan katakanlah angka dipisahkan spasi saya daripada Anda mengganti spasi dengan koma:

$g = $_GET['g'];    
$g = str_replace(' ', ',', $g);
$sql="SELECT * FROM city WHERE state_id IN (".$g.")";
$result = mysqli_query($con,$sql);

Jadi dalam kasus Anda, kueri MySQL seharusnya seperti ini:

$sql="SELECT * FROM state WHERE country_id = '".$q."'";
$result = mysqli_query($con,$sql);
    echo "<select name='try[]' onchange='showSecondUser(this)' multiple>";
    //                            there is a change here ^
    while($row = mysqli_fetch_array($result)){
       echo "<option value='".$row['id']."'>".$row['state_name']."</option>";
    }
    echo" </select>";
/*######################################################*/
$g = $_GET['g'];    
$sql="SELECT * FROM city WHERE state_id IN (".$g.")";
$result = mysqli_query($con,$sql);

Dan javascriptnya harus seperti ini:

function showSecondUser(str){
    var xmlhttp;
    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    } else {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
            document.getElementById("txtHint2").innerHTML = xmlhttp.responseText;
        }
    }

    var values = new Array();
    for (var i=0; i < str.options.length; i++) {
        cur = sel.options[i];
        if (cur.selected) {
            values.push(cur.value);
        }
    }
    if (values.length) {
        values = values.join(",");
    } else {
        values = null;
    }

    xmlhttp.open("GET","loadData.php?g="+values,true);
    xmlhttp.send();
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Identitas (pada pembuatan basis data) kesalahan kunci yang ditentukan terlalu panjang

  2. Kesalahan Kerangka Entitas MySQL - Penyedia toko yang ditentukan tidak dapat ditemukan dalam konfigurasi, atau tidak valid

  3. Versi vs nomor Distribusi MySQL

  4. Model Django:nilai default untuk kolom

  5. tidak dapat meningkatkan batas file terbuka di mariadb 10 di centos7