Foreach döngü döngü döngü doğru olmasa da

2 Cevap php

Ben bir okul projesi için bir very temel php ORM yapmaya çalışıyorum. Ben çalışan hemen hemen her şeyi var, ama ben bir diziye sonuçlarını eşleştirmek çalışıyorum. Burada umarım benim açıklama yardımcı olmak için bir kod parçacığı var.

$results = array();

foreach($this->columns as $column){

    $current = array();

    while($row = mysql_fetch_array($this->results)){
        $current[] = $row[$column];
        print_r($current);
        echo '<br><br>';
    }

    $results[$column] = $current;

}

print_r($results);

return mysql_fetch_array($this->results);

Bu çalışır, ancak while döngüsü sadece birinci sütun üzerinde çalışıyor. The print_r($results); şunu gösterir:

Array ( [testID] => Array ( [0] => 1 [1] => 2 ) [testName] => Array ( ) [testData] => Array ( ) )

Can anybody shed some light? Thanks in advance!

2 Cevap

It's because you already fetched every row, and the internal pointer is at the end. The next while, mysql_fetch_array() will immediately return false. You can reset the pointer to the first row:

mysql_data_seek($this->results, 0);

Hemen önce bu koymak

while($row = mysql_...

Bir değişken adı> operatörü - Sana kullanabilirsiniz emin değilim. Eğer array $ sütunların dışında anahtar ve değer almak için çalışıyor gibi? Eğer öyleyse, böyle bir şey istiyorum:

foreach($columns as $k => $v) {
//in here, $k is the name of the field, and $v is the associated value

}