Veritabanı girişleri ayrı ve PHP kullanarak bireysel kayıtları gibi onları görüntülemek nasıl?

3 Cevap php

Ben $ her iki tarafta benim girdileri saklanması karar verdi ve ve ben işareti (&) ile ayrılmış veritabanı girdileri için kullanılır, ancak bu bazı arama sorunları neden oldu semboller gibi:

Bu & $

Ama bireysel kayıtları gibi sorun bir hücrenin tüm girişlerini görüntüleyen yaşıyorum. Ben kullanmadan önce:

$unsplitItems = $row['files'];

$files = explode("@", $unsplitItems);

foreach ($files as $file) {

   if(strlen($file)) {

      echo "<li>$file</li>";

   }

}

Benim kayıtları bölmek ve bireysel girdileri gibi dizideki tüm öğeleri görüntülemek nasıl herhangi bir fikir?

3 Cevap

You shouldn't do that! Make your records separate db entries.

Üst kayıt ve giriş alanının id - 2 alanları ile başka bir db tablo yapın. Yani tek bir sorgu ile, veritabanı özelliklerini kullanarak arama yapmak mümkün olacak

Eğer gerçekten bu daha sonra bir ayırıcı olarak one sembolü kullanmak ve bu sembolü ayıran dizeleri kullanılan olmadığından emin yapmak istiyorum.

Normalde olsa da, 3 tablo oluşturmak olacaktır:

post (id, post_text, ...)   
tag (id, tag_name, ...)
post2tag (post_id, tag_id)

Son tablo istediğiniz gibi herhangi bir mesaja sayıda etiket atamak sağlar.

Bu, SQL ilişki denir çok-çok; onun kullanım örneklerini görebilirsiniz here.

Bu deneyin:

$unsplitItems = $row['files'];

$files = explode("@", $unsplitItems);

foreach ($files as $file) {

   if(empty($file)) continue;

   $sub_record = explode('&', $file);

   foreach($sub_record as $sr) {
      if(empty($sr)) continue;
      $sr = substr($sr, 1);
      echo "<li>$sr</li>";
   }

}