2017-12-07 8 views
0

私の問題は、PHPでmysqli_fetch_assocを使って列を印刷したいとき、同じ列名を使用する必要がありますが、テーブルが異なり、間違ったテーブル列が出力されています。 。MySQL + PHP

$lekerdezes2 = lekerdezes2_leker(); 

while($egySor = mysqli_fetch_assoc($lekerdezes2)) { 
    echo '<tr>'; 
    echo '<td>'. $egySor["nev"] .'</td>'; 
    echo '<td>'. $egySor["szoveg"] .'</td>'; 
    echo '<td>'. $egySor["elerheto_maxpontszam"] .'</td>'; 
    echo '<td>'. $egySor["szoveg"] .'</td>'; 
    echo '</tr>'; 
} 

mysqli_free_result($lekerdezes2); 

db_functions.php

function lekerdezes2_leker() { 
if (!($conn = moodle_csatlakozas())) { 
    return false; 
} 

$result = mysqli_query($conn,"SELECT teszt.nev, kerdesek.szoveg, kerdesek.elerheto_maxpontszam, valaszok.szoveg FROM teszt,kerdesek,valaszok WHERE teszt.ID=kerdesek.tesztID AND kerdesek.ID=valaszok.kerdesekID AND valaszok.helyes=1"); 

mysqli_close($conn); 
return $result; 
} 

は、最終結果が "valaszok.szoveg" 値は、印刷後に "kerdesek.szoveg" と同じであるが、それが必要lekerdezesek2.php

ない。

最終的な結果は次のようになります。 image link

しかし、それは、このようなルックスになる必要があります: image link

答えて

0

列名szovegがあいまいであるように見えます。

select句のカラムにエイリアス名を追加して使用することができます。

構文

SELECT 
[column_1 | expression] AS descriptive_name 
FROM table_name; 

SELECT 
kerdesek.szoveg AS kerdesek_szoveg 
FROM kerdesek; 

修正されたクエリー

SELECT 
    teszt.nev, 
    kerdesek.szoveg AS kerdesek_szoveg, 
    kerdesek.elerheto_maxpontszam, 
    valaszok.szoveg 
FROM 
    teszt, 
    kerdesek, 
    valaszok 
WHERE 
    teszt.ID = kerdesek.tesztID 
    AND kerdesek.ID = valaszok.kerdesekID 
    AND valaszok.helyes = 1 

修正コード

lekerdezesek2.php

$lekerdezes2 = lekerdezes2_leker(); 

while($egySor = mysqli_fetch_assoc($lekerdezes2)) { 
    echo '<tr>'; 
    echo '<td>'. $egySor["nev"] .'</td>'; 
    echo '<td>'. $egySor["kerdesek_szoveg"] .'</td>'; 
    echo '<td>'. $egySor["elerheto_maxpontszam"] .'</td>'; 
    echo '<td>'. $egySor["szoveg"] .'</td>'; 
    echo '</tr>'; 
} 

mysqli_free_result($lekerdezes2); 

db_functions.php

function lekerdezes2_leker() { 
    if (!($conn = moodle_csatlakozas())) { 
     return false; 
    } 

    $result = mysqli_query($conn,"SELECT teszt.nev, kerdesek.szoveg AS kerdesek_szoveg, kerdesek.elerheto_maxpontszam, valaszok.szoveg FROM teszt,kerdesek,valaszok WHERE teszt.ID=kerdesek.tesztID AND kerdesek.ID=valaszok.kerdesekID AND valaszok.helyes=1"); 

    mysqli_close($conn); 
    return $result; 
} 
+0

あなたは素晴らしいです! :D –