За последние 24 часа нас посетили 17795 программистов и 1606 роботов. Сейчас ищут 1887 программистов ...

[решено]Подскажите плиз, где ошибка

Тема в разделе "PHP и базы данных", создана пользователем Ptrasi, 18 фев 2009.

  1. Ptrasi

    Ptrasi Активный пользователь

    С нами с:
    18 фев 2009
    Сообщения:
    2
    Симпатии:
    0
    Доброго времени суток! Помогите, пожалуйста, разобраться где ошибка в коде.
    Есть заполненная база данных. Я хочу получить из нее данные. Если я пишу просто запрос на выдачу - то все работает отлично. Код выглядит в этом случае так:
    Код (Text):
    1. <?php
    2. //Подключаемся к БД.
    3. $db=mysql_connect("localhost", "login", "pass") or die("Ошибка подключения");
    4. mysql_select_db("test", $db) or die("Не могу выбрать БД");
    5. @mysql_query("SET NAMES cp1251;");
    6. $q = mysql_query("SELECT * FROM gbook");
    7.  
    8. while($r = mysql_fetch_array($q)) {
    9.  
    10. echo "<a href=\"mailto:$r[email]\">$r[name]</a><br/> $r[text]<br/><br/>";
    11. }
    12. ?>
    Но я хотела бы не просто вывести содержимое базы, а еще и разместить данные в таблицу. И вот тут возникает проблема. Таблица отлично создается, но вместо содержимого базы в ячейки просто вставляются переменные. Где я допустила ошибку? Код прилагаю:
    Код (Text):
    1. <?php
    2. //Подключаемся к БД.
    3. $db=mysql_connect("localhost", "login", "pass") or die("Ошибка подключения");
    4. mysql_select_db("test", $db) or die("Не могу выбрать БД");
    5. @mysql_query("SET NAMES cp1251;");
    6. $q = mysql_query("SELECT * FROM gbook");
    7.  
    8. while($r = mysql_fetch_array($q)) {
    9.  
    10.  
    11. echo '<table width="80%" border="3">';
    12. echo  '<tr>';
    13. echo    '<th scope="col">Имя</th>';
    14. echo    '<th scope="col">Данные</th>';
    15. echo  '</tr>';
    16. echo  '<tr>';
    17. echo    '<td><a href=\"mailto:$r[email]\">$r[name]</a><br/></td>';
    18. echo    '<td>$r[text]<br/><br/></td>';
    19. echo  '</tr>';
    20. echo'</table>';
    21. }
    22. ?>
     
  2. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    PHP:
    1. <? echo '<td><a href=\"mailto:$r[email]\">$r[name]</a><br/></td>';
    1. В одинарных кавычках перепенные не парсятся.
    2. индексы ассоциативного массива тоже стоит закавычить.
    Поэтому либо
    PHP:
    1. <? echo "<td><a href=\"mailto:$r['email']\">$r['name']</a><br/></td>";
    либо
    PHP:
    1. <? echo '<td><a href=\"mailto:'.$r['email'].'\">'.$r['name'].'</a><br/></td>';
     
  3. Ptrasi

    Ptrasi Активный пользователь

    С нами с:
    18 фев 2009
    Сообщения:
    2
    Симпатии:
    0
    Большое спасибо, все работает.