PHP DÜŞEYARA (koşullu maçı) Alternatif?

2 Cevap php

Her satır için contracts.id üzerinde koşullu böylece nasıl provision_id sütun için sonuçlar dönmek? Sağ şimdi, ben her satırda aynı sonucu alırsınız. İstenen etki çeşit Excel'de DÜŞEYARA gibidir. Değil, başka / SQL değerleri olsa PHP bunu başarmak için eğer kullanmak nasıl emin.

İlgili kodu:

<?php
global $wpdb;
$contents = $wpdb->get_results( $wpdb->prepare("SELECT id, name, remaining, contract_value FROM salaries"));
$contracts = $wpdb->get_results( $wpdb->prepare("SELECT contracts.id,source,provision,provision_id FROM contracts LEFT JOIN salaries ON contracts.id = salaries.id"));

 ?>

   [table header stuff...]

foreach ($contents as $content) {
    ?>   
         <tr>
                <td><?php echo $content->name ?></td>
                <td><?php echo $content->remaining ?></td>
                <td><?php echo $content->contract_value ?></td>
                <td><?php foreach ($contracts as $contract) { echo $contract->provision_id }; ?> 
               </td>

Akım Çıkışı

Name               Remaining         Contract_Value    Provision_ID
--------------     ---------------   --------------    --------------
Adam               100               300               A1 B1 C1
Bill               200               400               A1 B1 C1
Chad               200               400               A1 B1 C1

İstenilen Çıktı

Name               Remaining         Contract_Value    Provision_ID
--------------     ---------------   --------------    --------------
Adam               100               300               A1
Bill               200               400               B1
Chad               200               400               C1

A1, B1, C1, her Sütun1'deki kişinin adına karşılık gelen bir depolanan veri hücreyi temsil etmektedir. Ben kimliği php çıktı gösterilmesini istemiyorum ama ben, Adem, Bill ve Çad kimlikleri değil, isimler dayalı provision_id koşullu yapmaya çalışıyorum.

Esasen, ben istiyorum PHP "arama" ID (aka üye id) ve gelen provision_id yazdırın. Ben de, vb A1, B1, C1, bir mouseover etkisi olarak tablosundan "Balon" çekiyorum olarak katılma tablolar muhtemelen bu durumda çalışmaz

EK 1 - aka ne de olay olmuştur. Ben Adam Bill ve Çad her birden fazla hüküm kimliği var (basit tutmak için benim girişimi) açıklamak için başarısız oldu. A1, A2, A3 ve örneğin: Adam hüküm kimlikleri vardır. Ben sorunu önlemek için çalışıyorum (GROUP_CONCAT işe yarayabilir ama ben her sağlanması için bir mouseover araç ipucu var çünkü öyle düşünmüyorum) aşağıda.

Name               Remaining         Contract_Value    Provision_ID
--------------     ---------------   --------------    --------------
Adam               100               300               A1
Adam               100               300               A2
Adam               100               300               A3
Bill               200               400               B1
Bill               200               400               B2
Chad               200               400               C1

2 Cevap

Aşağıdaki sorguyu deneyin. Sonra veritabanına tek isteği ile her şeyi yapabilirsiniz.

SELECT salaries.id AS salaries_id, salaries.name, salaries.remaining, 
salaries.contract_value, contracts.provision_id AS provision_id 
FROM salaries LEFT JOIN contracts ON contracts.id=salaries.id

Ben hala kendine-öğretim kulüpler olarak bunun için profesyonel yardım aramak zorunda kaldı. $ Sözleşmeleri sorgu sadece 'id' iki tablo arasında eşleşen hangi satırlar için çalışmaya gitti ki Başardı koşullu kestirme denilen bir teknik kullanılır.

Kod parçacığını Kazanma:

     foreach ($contracts as $contract)
                    {
                        echo ( $content->id == $contract->id ) ?
                             '<a href="' . $contract->source . '" tooltip="' . $contract->provision . '">' . $contract->provision_id . " " . '</a>' : '';
                     } 
                   ?>
                </td>

<?php };

He sent me this link: http://www.bradino.com/php/ternary-operator-conditional/ You can find him at http://travisballard.com/.

Şerefe!