За последние 24 часа нас посетили 16495 программистов и 1562 робота. Сейчас ищут 2079 программистов ...

выборка из базы, простой скрипт, но запутался

Тема в разделе "PHP и базы данных", создана пользователем aziz, 30 окт 2008.

  1. aziz

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

    С нами с:
    1 фев 2006
    Сообщения:
    194
    Симпатии:
    0
    Адрес:
    Ташкент
    Доброго всем времени суток, я только учусь и поэтому прошу не пенайте ногами...
    Имеется скрипт в который из базы mysql заводим данные для создания ссылок я использовал поля id и mail для названия ссылки всё это работает отлично но вот данные выводить не получается в поле data то есть нажимаю ссылку в url браузера id меняется но переход не происходит выдаёт ошибку, ткните пожалуйста носом где я ошибся, заранее всем Спасибо! Вот код:
    PHP:
    1. <?php
    2. $link=mysql_pconnect('localhost','mail','123456');
    3. if(!$link){
    4. print "Соединение с сервером не установлено";}
    5. $db=mysql_select_db('mail', $link);
    6. if(!$db){
    7. print "Соединение с базой не установлено";}
    8.  
    9.  
    10.     $result = mysql_query("SELECT id, email, data FROM mailrec");
    11.  
    12.     while ($row = mysql_fetch_array($result)) {
    13.         printf ('<a href=?id='.$row["id"].'>'.$row["email"].'</a>', $row["data"]);// берём из таблицы id для выборки и заголовок title для отображения в ссылке
    14.         print "<br>";
    15.         // printf ($row["data"]); //проверка подключиласьли data, всё в порядке данные есть  
    16.          }
    17.    
    18.      
    19. ?><table width="200" border="1">
    20.   <tr>
    21.     <td><?
    22.   $arr = array("1", "2","3","4","5");
    23.   if (!isset($_GET['id']))
    24.    print "пока пусто"; //если страница открыта выдаём сообщение
    25.  elseif (in_array($_GET['id'],$arr))
    26.    printf ($row["data"]); //если была выбрана ссылка выдаём данные из таблицы
    27.    
    28. ?>
    29. </td>
    30.   </tr>
    31. </table>
     
  2. aziz

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

    С нами с:
    1 фев 2006
    Сообщения:
    194
    Симпатии:
    0
    Адрес:
    Ташкент
    Сделал так всё заработало но правильно ли, дайте пожалуйста совет
    PHP:
    1. <?php
    2. $link=mysql_pconnect('localhost','mail','123456');
    3. if(!$link){
    4. print "Соединение с сервером не установлено";}
    5. $db=mysql_select_db('mail', $link);
    6. if(!$db){
    7. print "Соединение с базой не установлено";}
    8.  
    9.  
    10.     $result = mysql_query("SELECT id, email FROM mailrec");
    11.  
    12.     while ($row = mysql_fetch_array($result)) {
    13.         printf ('<a href=?id='.$row["id"].'>'.$row["email"].'</a>');// берём из таблицы id для выборки и заголовок title для отображения в ссылке
    14.         print "<br>";
    15.          
    16.          }
    17.     mysql_free_result($result);
    18.      
    19. ?><table width="200" border="0" align="center">
    20.   <tr>
    21.     <td><?
    22.    
    23.  
    24.   if (!isset($_GET['id']))
    25.    print "Добро пожаловать";
    26.  elseif ($_GET['id']>1)
    27.      $anything = intval(@$_GET['id']);
    28. $query = "select * from mailrec where id='$anything'";
    29. $result = mysql_query($query);
    30. while ($row = mysql_fetch_assoc($result)) {
    31.   echo "{$row['data']}";
    32. }
    33. ?>
    34. </td>
    35.   </tr>
    36. </table>
     
  3. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    PHP:
    1. <?php
    2. elseif (is_numeric($_GET['id']) and $_GET['id'] > 1){
    3.     $anything = intval(@$_GET['id']);
    4.  
    5. // тут запрос
    6.  $query = "select * from mailrec where id='$anything'";
    7.  $result = mysql_query($query);
    8.  while ($row = mysql_fetch_assoc($result)) {
    9.    echo "{$row['data']}";
    10.  }
    11. }
    Во-первых, $_GET['id'] будет больше одного, если даже будет '123sss'. Во-вторых, будет лишний запрос к базе даже, если !isset($_GET['id']).