PHP sorgu birden masalar

4 Cevap php

Ben sorun bu sorgudan görüntülemek için herhangi bir bilgi almak yaşıyorum. Ben yanlış gidiyorum nereye herkes biliyor musun?

Teşekkür ederiz!

 $query =   "SELECT * ".
			"FROM comments, users ".
			"WHERE comments.user_id = users.user_id ".
			"ORDER BY comments.date DESC ".
			"LIMIT 10";

$result = mysql_query($query) or die(mysql_error());

   while ($row = mysql_fetch_array($result)) {


  echo $row['users.user_id'];
  echo $row['comments.comment'];


 }

4 Cevap

Eğer sorguda bulunmayan bir alanda (ORDER BY) tasnif edilir çünkü muhtemelen hatayı alıyoruz.

Bu "SELECT *" sorgulama kullanmak için iyi bir uygulama olurdu. Ihtiyacınız olan tüm özel değerler varsa, bunları belirtin. Veri alırken bu da yardımcı olur ...

$query =   "SELECT users.user_id, comments.comment, comments.date ".
                        "FROM comments, users ".
                        "WHERE comments.user_id = users.user_id ".
                        "ORDER BY comments.date DESC ".
                        "LIMIT 10";

$result = mysql_query($query) or die(mysql_error());

   while ($row = mysql_fetch_array($result)) {


  echo $row['user_id'];
  echo $row['comment'];
  echo $row['date'];


 }

use mysql_fetch_assoc() instead of mysql_fetch_array(). In your loop use the column name as the array key:

while ($row = mysql_fetch_assoc($result)) {

  echo $row['column_name1'];
  echo $row['column_name1'];

}

Sorgunuzda * kullanmamaya çalışın, select deyimi hakkında daha fazla spesifik olmaya çalışıyorum.

Bazı veritabanları üzerinde bir performans etkisi yoktur ve tüm ilgili bu tablo değişiklikleri kadar kırpma beklenmeyen davranışları önler - Oldukça * kullanarak daha bir sorguda sütun adlarını belirtmek için iyi bir uygulamadır.

Örnekte ben sorunu kullandığınız dizi tuşları arsing düşünüyorum - sadece sütun adı, onlara tablo adını eklemek gerekmez:

  echo $row['user_id']; 
  echo $row['comment'];

Iyi uygulama sadece bu gibi sql sorgusu ne ihtiyaç alanları yazmak için:

$query =   "SELECT u.user_id uid, c.comment comment ".
                    "FROM comments c, users u ".
                    "WHERE comments.user_id = users.user_id ".
                    "ORDER BY comments.date DESC ".
                    "LIMIT 10";

Eğer sorgu yürütme ve php komut veritabanı sunucusu veri iletim süresini azaltmak sorguları yüzden türünü kullanarak. : Bu değişiklik sonra döngüsü dönüştürdü

while ($row = mysql_fetch_array($result)) {
 echo $row['uid'], $row['comment'];

}