Ben "tanımsız değişken" olsun

2 Cevap php

Ben daha önce bir milyon kez yaptığım şeylerin bir hata alıyorum neden olarak merak ediyorum ama bir hata alıyorum belli bir senaryo üzerinde aniden duyuyorum 'Tanımsız değişken: satır'

Yine satır bana tanımlanmış görünüyor ...

$sql = 'SELECT * FROM table WHERE id="1" LIMIT 1 ';

$res = mysql_query($sql);

    if(mysql_num_rows($res) != FALSE) {

    $row = mysql_fetch_array($res);

    }

Yukarıdaki sözde sql ... ama ben bu sql deyimini kontrol ettik ve ben onun bir sonucu getirerek biliyorum. Ben de gitmek, çünkü eğer $ satır veri depolama biliyorum

echo $row[0];

Ben doğru veri almak.

Bilgime Yani, $ satır değişkeni tanımlanır. Ancak yine de - bir hata. Ben aklımı yoksa ben burada ne eksik? $ Satır olmasaydı bu hata / ilan sadece ortaya çıkmaz?


edit

Üzgünüm çocuklar tüm eğer deyim İÇ oluyor onun:

$sql = 'SELECT * FROM table WHERE uID="' . $ID . '" LIMIT 1 ';

$res = mysql_query($sql);

if(mysql_num_rows($res) != FALSE) {

    $row = mysql_fetch_array($res);

$firstName = $row[0];

$lastName = $row[1];

$email = $row[2];

}


düzenlemek 2

i print_r ($ row) yoksa ben şu olsun:

Array
(
[0] => Robert
[firstName] => Robert
[1] => Nibbles
[lastName] => Nibbles
[2] => robert@nibbles.com
[email] => robert@nibbles.com
)
Undefined variable: row

2 Cevap

Eğer $row bu deyim eğer, o zaman tanımlanmamış olması dışında bir şey başlatmak yoksa.

Eğer (tamamen mantıksız değil) $row null değerini çeşit başlatmak istemiyorsanız Yoksa, $row {[dışında denetleyen herhangi bir kod çevreleyen isteyebilirsiniz gibi bir şey ile (2)]} beyanı

if (isset($row))
  doSomething();

Bu bir acı, ama sadece kodda bir rvalue olarak başvurulan varsa değişkenler [(0) {dışında (hatta null, açıkça tanımlamak tanımsız ve bir çalışma zamanı hatası yol açabilir olmadığını hatırlamak lazım }] vs.) Yani genel olarak, ya da her zaman değişkenlerini başlatmak veya liberal yukarıdaki gibi kod uygulamak.

Bu sorun değil dışarı çıkarsa ben özür dilerim, ama ben kodunuzu görmeden bu fazla bir şey düşünemiyorum.

EDIT: Üzgünüm, "tanımlı" değil "isset" oluyor. Ben aslında PHP ile çalıştım çünkü bir süre oldu. Ben bir kavram değil, sözdizimi ile soruyu cevaplamaya çalıştım. Benim hatam.

Offtopic, ama bunun yerine mysql_fetch_array ki, sonra yerine bazı keyfi numaraları, kodunuzda gerçek alan adları kullanabilirsiniz mysql_fetch_assoc() kullanmanızı öneririz.

print $row[2]

vs

print $row['email];