Получение данных из базы данных - PullRequest
0 голосов
/ 23 декабря 2010

Пожалуйста, помогите мне получить данные из базы данных и показать их.

Я учусь, и это удерживает меня от продвижения: (

У меня есть:

    $result = mysql_query($sql);
    $num_reg = mysql_num_rows($result); 
    echo $num_reg; // this shows 3 

    while($row = mysql_fetch_assoc($result))
      {  

        foreach($row as  $value)
       {  


    //Now I need to operate with the rows values.

echo $row['PHONE'];

Но это вместо того, чтобы печатать телефонные номера, печатает их 5 раз каждый

Что я делаю не так?

Большое спасибо

Ответы [ 4 ]

3 голосов
/ 23 декабря 2010

Удалить foreach петля

while($row = mysql_fetch_assoc($result))
{  
 echo $row['PHONE'];
 echo $row['NAME'];
 echo $row['OTHER_FIELD'];
}
1 голос
/ 23 декабря 2010

Вам не нужен второй цикл foreach () внутри цикла while () для работы со значениями. То, что вы делаете здесь - это циклическое перемещение по строкам, а затем повторение по значениям, но если у вас уже есть доступ к значениям через переменную $ row, вам не нужно повторять цикл снова. Тот факт, что вы получаете номер телефона 5 раз, говорит о том, что в вашей таблице 5 столбцов.

Пример - удалить цикл foreach ():

while($row = mysql_fetch_assoc($result)){
    echo $row['PHONE'];
    echo $row['NAME'];
    echo "<br />";
}

Я предполагаю, что у вас есть переменная с именем "name", но если не просто поменять ее на ту, которая у вас есть. Последний эхо просто печатает новую строку, чтобы было легче читать.

1 голос
/ 23 декабря 2010

сделайте print_r ($ row) в вашем цикле while и print_r ($ value) в вашем цикле foreach.Затем спросите, почему вы выводите $ row в цикле на элементы $ row.

1 голос
/ 23 декабря 2010

вам не нужен foreach в этом случае

while($row = mysql_fetch_assoc($result))
{  
    echo $row['PHONE'];
}

Возможно, ваш $row имеет 2 элемента, а внутри foreach ваш echo $row['PHONE'] вызывается один раз для каждого элемента

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...