Başka bir tablodan ilişkili dizeleri göre kimlikleri bir noktalı virgülle ayrılmış listesini sorgulamak ve sıralamak için en etkili yolu nedir?

0 Cevap php

users ve pets: Ben bir mysql veritabanında 2 tablolar var. 2;, kullanıcıların tablodaki bir kullanıcı = 1 (pet_ids olan evcil bir noktalı virgülle ayrılmış listesini içeren bir alan var 3, 4 ;). Bu kimlikleri evcil hayvan ismi (1 = rex, 2 = goldie, 3 = gıcırtı, 4 = kabarcık) içeren hayvan tabloda benzersiz kimlikleri (anahtarlar) karşılık gelmektedir.

Ben alfabetik sırayla bir PHP sayfasında bu hayvan bir listesini sunmak ama evcil hayvanınızın adı tıklandığında başka bir sayfaya değişken olarak geçmek için hayvan adının kimliği korumak istiyoruz.

Bunu başarmak için en etkili yolu nedir.

Şimdiye kadar ben oluşturmak liste hayvan eklenen alfabetik sırayla ama sırayla değil -

Veritabanı sorgulama için Fonksiyonlar

function getUserPets($user_id) {    
  $query= "SELECT pet_ids FROM users WHERE id='$user_id'";  
  $result = @mysql_query ($query);
  if (!$result) {
      die('Invalid query: ' . mysql_error());
  }
  while($row = mysql_fetch_array($result)) {
          $the_pets = $row['pet_ids'];
  }
  return $the_pets; //1;2;3;4;
} 
function getPetName($id) {
$name = "";
    $query= "SELECT name FROM pets WHERE id='" . $id . "' ";
$result = @mysql_query ($query);
if (!$result) {
    die('Invalid query: ' . mysql_error());
}
while($row = mysql_fetch_array($result)) {
    $name = $row['name'];
}
return urldecode($name);
}

Listesini üretmek için kod ...

$petstring = getUserPets($userid);
$petsarray = explode(";", $petstring);
foreach ($petsarray as $pet_id) {
    echo("<li><h4><a href=\"pet.php?id=$pet_id\">" . writeListPetName($pet_id) . "</a></h4></li>");     
}

Alfabetik bir listesini elde etmek için en etkili yolu nedir - Ben aynı veritabanı yapısını tutmak gerekir.

teşekkürler bütün

0 Cevap