SQL PHP dizi olmayan bir değer döndürür

4 Cevap php
    $request = 'SELECT * FROM flight WHERE Id = \''.$_SESSION['LFLightRadio'].'\'';
    $data = mysql_fetch_array(mysql_query($request, $SQL));
    echo '<table class="table">';
    foreach($data as $key => $value) {
        echo '<th class="head" align="center" height="19">'.$key.'</th>';
    }
    echo '<tr>';
    foreach($data as $key => $value) {
        echo '<td class="cell" align="center" height="19">'.$value.'</td>';
    }
    echo '</tr></table>';

Ben LFlightRadio değer ayarlanır olduğunu biliyorum, ve uçuş veritabanından önceden döndürülen satırın Id değeri tarafından döndürülen bir değerdir. Yani "uçuş" kapsamında, rekor kesinlikle bu kimliği ile var. Ki ben bunun üzerinde foreach kullanmaya çalıştığınızda, o hataları dışarı ama, bu yine de, bana bir dizi olmayan bir sonuç verir. Önerileriniz?

4 Cevap

önce echo '<table class="table">';, ekleyin:

echo '<br>$_SESSION[\'LFLightRadio\']="'.$_SESSION['LFLightRadio'].'"<br>';

aslında sorguda flight.Id karşılaştırmak için bir değer olduğundan emin olmak için. Bu yapıyorsun yolu olmasını bekleyen büyük bir SQL injection saldırı! Bu soruya bakın: http://stackoverflow.com/questions/2122522/mysql-real-escape-string-for-session-variables-necessary

EDIT

önce bu eklemek echo '<table class="table">';:

echo '<br>$request="'.$request.'"<br>';

veritabanında bu sorguyu çalıştırmak, herhangi bir satır döndürülür?

Kullanmak kastettiniz

mysql_fetch_assoc

yerine mysql_fetch_array mi? Dizi 0,1,2 gibi tuşları olurdu ...

    $var = $_SESSION['LFlightRadio'];
    $request = "SELECT * FROM flight WHERE Id = '$var'";
    $data = mysql_fetch_array(mysql_query($request, $SQL));

Bu çalışır! Ben düz bir birleştirilmiş Nedense, aslında dizeye değişkeni eklemek vermedi. Bunu yaptık Ama ne zaman koymak var ve ben beklenen var.

Eğer kodda bir mis-harf var.

$_SESSION['LFLightRadio'], büyük olasılıkla olması amaçlanmıştır $_SESSION['LFlightRadio']

Dizi anahtarlar harf duyarlıdır.