2011-09-02 5 views
-1

Я знаю, что было много вопросов об ассоциативных массивах, но я не видел того, что объясняет, что мне нужно сделать, чтобы извлечь данные из этого способа его создания. Предположим, что я выбрал несколько записей из того же поля в базе данных.Чтение php и ассоциативный массив из нескольких записей базы данных

while ($Row = mysql_fetch_array($mySQLData)) 
    { 
    $assocarraydata[]= array('field1'=>$Row["field1"]); 
    }; 

Я знаю, что могу сделать это таким образом, используя индекс:

//Put Data into an regular array 
    while ($Row = mysql_fetch_array($mySQLData)) 
    { 
    $field1[] = $Row[field1]; 
    } 

    echo $field1[1]; 

Но я не знаю, как это сделать для ассоциативного массива в первом примере. Может кто-нибудь помочь?

+2

Я не уверен, что понял вопрос. Вы пытаетесь получить ассоциативный массив, который представляет вашу строку в форме массива ($ field => $ value)? Вы пробовали [mysql_fetch_assoc()] (http://www.php.net/manual/en/function.mysql-fetch-assoc.php)? –

+0

Ни один из способов не является точным. И оба примера не используют ассоциативный массив, они всего лишь индексированный массив. – ajreal

+0

'mysql_fetch_array()' может делать и то, что 'mysql_fetch_assoc()' и 'mysql_fetch_row()' do, и это поведение по умолчанию. – Narf

ответ

1

Трудно понять, что вы спрашиваете, но если речь идет о том, как тот же самый результат из первого примера, ответ:

// echo the value of field1 from the second (index 1) row of data 
echo $assocarraydata[1]['field1']; 
+0

, поэтому мне все равно нужен индекс – T9b

0

Вы должны иметь индекс в результирующее array - в противном случае вы не сможете получить доступ к разным строкам. Подумать только индексы, как номера строк:

while ($row = mysql_fetch_assoc($result)) 
    $array[] = $row; 

... а затем вы можете получить доступ к данным, как это:

$array[0]['field1'] - первая строка, столбец «field1» $array[5]['field5'] - шестая строка, столбец " field5 '

... и т.д.

Смежные вопросы