Birden sol nasıl php çıkışı, katıldı

2 Cevap php

Ben katılmak için gereken 3 tablolar var. Sözleşmeler tablo ana tablo, 'iş' ve 'şirketlerin tablo sözleşmeleri masaya ilişkili olabilir ekstra bilgi vardır.

Ben 'sözleşmeleri' tablosundan tüm girdileri ve 'iş' ve varsa yalnızca 'şirketlerin verilerini istiyorum çünkü yani, ben böyle sorgusu yazdı ....

$sql = "SELECT * FROM contracts
        LEFT JOIN jobs ON contracts.job_id = jobs.id
        LEFT JOIN companies ON contracts.company_id = companies.id
        ORDER BY contracts.end_date";

Şimdi nasıl PHP I çıkışı bu ki? Ben bu denedim ama tanımlanmamış bir hata "Notice: Undefined index: contracts.id" olmaya devam etti ...

$sql_result = mysql_query($sql,$connection) or die ("Fail.");

if(mysql_num_rows($sql_result) > 0){

    while($row = mysql_fetch_array($sql_result))
    {
       $contract_id = stripslashes($row['contracts.id']);
       $job_number = stripslashes($row['jobs.job_number']);
       $company_name = stripslashes($row['companies.name']);
    ?>
        <tr id="<?=$contract_id?>">
           <td><?=$job_number?></td>
           <td><?=$company_name?></td>
        </tr>
    <?  
    }
}else{
    echo "No records found";
}

Herhangi bir yardım takdir edilmektedir.

2 Cevap

Sütun adları bu gibi öneki olmayacak - ve her tablo "id" adında bir sütun sahip belada olabilir. Açıkça yerine "SELECT *" kullanarak daha geri istiyorum sütunları belirlemek gerekir, ve sonra sadece öneki adı un ile sütun almak (örneğin, $row['job_number']).

Aşağıda sizin sorununuzu çözecektir.

$sql = "SELECT contracts.id AS contract_id, jobs.job_number, companies.name FROM contracts
        LEFT JOIN jobs ON contracts.job_id = jobs.id
        LEFT JOIN companies ON contracts.company_id = companies.id
        ORDER BY contracts.end_date";

Senin sorunun mysql as fıkra kullanarak bir takma ad olarak seçmelisiniz neden id bu size alanına sahip iki tabloları kullanıyorsanız aslında realted olması muhtemeldir.

Ayrıca alanları için bir adlandırma kuralı kullanarak ve onunla yapışmasını içine bakmak isteyebilirsiniz. Örneğin, Hungarian Notation, bu arrissing gelen bu gibi sorunları durdurmak teorisini göz atın.