2016-04-05 20 views
0

Ben bir liste kutu var ve 2 soru var.Php mysqli Liste Kutusu

1. nasıl bir ülke seçebilirim? Güncelleştirmemin sayfasında 2 bu uygun ülkeyi görüntüler ancak, düzenleme sayfasının

<?php 
     $sql = "SELECT countries.country_id, countries.country_name, users.user_country FROM countries, users 
     WHERE users.user_country = countries.country_id"; 
     $result = query($sql); 
     ?> 
     <select class="form-control input-lg box" id="country" name="country"> 
     <?php 
     $i = 0; 
     while (($row = mysqli_fetch_assoc($result)) != false) { 
      ?> 
     <option value="<?=$row["country_id"];?>"><?=$row["country_name"];?></option> 
     <?php 
      $i ++; 
     } 
     ?> 

+0

(1) ekleyin ". (2) sorununuzu güncelleme sayfasındaki kodu görmeden belirlemenize yardımcı olamayız. Büyük olasılıkla, yayınlanan "ülke" (/ 'country_id') değeriyle bir" SELECT "sorgusu yapıyor olmanıza rağmen, bu değeri yalnızca siz seçersiniz. Bunun yerine, bu gibi bir seçim yapabilir ve sadece seçilen "ülke" (/ 'country_id') değeriyle eşleşen satırda" selected = "selected" 'seçeneğini ayarlayabilirsiniz. – Sean

cevap

0

Eh diğer ülkelerin herhangi listelemek olmayacak bir varsayılan seçeneği sahip olması değişikliği olmasına izin vermez veritabanı çağrı tarafından sağlanmayan, sadece

<option value="">Select a country</option> 

gibi

sağ <select> deyimi altında bir HTML açıklama gerekiyor.

Tablo tanımlamalarınızı göremiyoruz, ancak SQL kodunuz kullanıcının ilişkilendirildiği belirli ülkeyi seçiyor gibi görünüyor, böylece listede yalnızca bir ülke var. Muhtemelen iki sorguya ihtiyacınız vardır: Kullanıcının mevcut ülkesini alan ve tüm ülkelerin listesini alan bir saniye.

İlk sorgudan sonra, kullanıcının geçerli ülke kimliğini bir değişkene kaydedin - $usercountryID.

Ardından ülkeleri aracılığıyla döngü içinde, bu gibi kullanıcının ülkeye her countryID karşılaştır:

while (($row = mysqli_fetch_assoc($result)) != false) { 
    if ($usercountryID == $row["country_id"]) $selected = " selected"; 
    else $selected = ""; 

    echo "<option value='{$row['country_id']}$selected>{$row['country_name']}</option>\n"; 
} 

koşullu atama açıklamada dahil, tabii ki, birçok yol tanımlanabilir seçilen $. Burada gerekmeyen $ i sayacını ihmal ettim, ama tabi ki daha sonra buna ihtiyacın olabilir.

+0

Teşekkür ederim Robin Richmond –

+0

Çalışırken süre döngü alamadım ama devam eden bir çalışma var –