2013-10-15 2 views
0

Я здесь большой noob, поэтому я пытаюсь понять это как иду.Хранить вывод SQL в переменной

Я хочу взять запрос SQL для «id, fist и last» и сохранить каждый из них в переменной. следующая половина кода будет делать вещи с этими переменными.

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

$newIDs = mysql_query("SELECT per_ID, per_FirstName, per_LastName FROM person_per WHERE DATE_SUB(NOW(),INTERVAL 6 MONTH)<per_FriendDate ORDER BY per_FriendDate DESC") or die(mysql_error()); 



while($row = mysql_fetch_assoc($newIDs)){ 
    echo $row ['per_ID'] = $per_ID; 
    echo $row ['per_FirstName'] = $per_FirstName; 
    echo $row ['per_LastName'] = $per_LastName; 
    //below is for testing purposes only 
    echo $per_FirstName; 
    echo "<br/>"; 

} 

print $per_ID; 
echo $per_LastName; 
+0

реверса ваших заявлениям. $ per_id = $ row ['per_ID']; затем попробуйте повторить его – Jim

+0

Вы не должны использовать 'mysql_' запросы! Это все, что я могу сказать. – samayo

ответ

1

Я думаю, что вы хотели что-то больше, как это для теста:

while ($row = mysql_fetch_assoc($newIDs)) { 
    $per_ID = $row['per_ID']; 
    $per_FirstName = $row['per_FirstName']; 
    $per_LastName = $row['per_LastName']; 
    // below is for testing purposes only 
    echo $per_FirstName; 
    echo "<br/>"; 
} 

Когда вы на самом деле хотите сохранить все результаты из вашего запроса, вам нужно сделать что-то вроде:

$rows = array(); 
$i = 0; 

while ($row = mysql_fetch_assoc($newIDs)) { 
    $rows[$i] = $row; 
    // below is for testing purposes only 
    echo $rows[$i]['per_LastName']; 
    echo "<br/>"; 

    $i++; 
} 

Кроме того, следует отметить, что mysql_fetch_assoc() фактически устаревшая функция PHP, согласно справочной странице: http://php.net/manual/en/function.mysql-fetch-assoc.php

0
echo $row ['per_ID'] = $per_ID; 

должен быть

$per_ID=$row['per_ID']; 

вы ЭХО $per_ID; должны работать

В качестве ее в цикле вы перезаписать $ per_ID каждый раз, и в конечном итоге остроумие последнее значение.

0

Похоже, ваша проблема в этих утверждениях:

echo $row ['per_ID'] = $per_ID; 
echo $row ['per_FirstName'] = $per_FirstName; 
echo $row ['per_LastName'] = $per_LastName; 

знак равенства есть присваивает значение переменной $per_ID (который в то время не назначается) в массиве. Это не то, что вы хотите.

Вместо этого вы, вероятно, хотите что-то вроде этого:

$per_ID = $row ['per_ID']; 

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

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