За последние 24 часа нас посетили 18763 программиста и 1702 робота. Сейчас ищут 910 программистов ...

Выборка с базы даных MySQL

Тема в разделе "PHP и базы данных", создана пользователем nike90, 25 май 2011.

  1. nike90

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

    С нами с:
    25 май 2011
    Сообщения:
    3
    Симпатии:
    0
    У меня есть у БД таблица "DATA":
    у неё 4 поля:
    1. id ... 2.title.....3.cat.....4.os....
    ....1...... Poker......1..........3.....
    ....2...... Shark......1..........2.....
    ....3...... Tetris......2..........3.....
    ....4...... Tenis...... 2..........1.....
    ....5...... Shiter......3..........1.....
    ....6...... Crysis......3..........2.....


    Я сформулировал запрос выборки:

    Переменные $cat и $os приходят из другой страници методом GET
    К ПРИМЕРУ передались переменные $cat =1 а $os=2:

    А в этой странице сформулирован запрос:

    if (isset($_GET['os'])) {$os = $_GET['os'];}
    if (isset($_GET['cat'])) {$cat = $_GET['cat'];}

    $result=mysql_query ("SELECT * FROM data WHERE cat=$cat and os=$os",$db)
    $myrow=mysql_fetch_array($result)

    echo $myrow['title'];

    С этого запроса мне нада что бы вывелось поле:
    SHARK где $cat=1 и $os=2,
    а выводится:
    все поля где $cat=1 и все поля где $os=2 и в итоге выводится три поля Poker, Shark, Crysis

    Помогите пожалуйста сфомулировать запрос что бы когда в этот файл пришли $cat=1 и $os=2 то что бы выборка ишла только где $cat=1 и $os=2, а не выводилось все поля где $cat=1 и все поля где $os=2
     
  2. runner

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

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    Если
    1)в DATA хранятся именно такие данные
    2) по GET пришли переменные os и cat и они равны 2 и 1 соответственно:
    $_GET['os']=2
    $_GET['cat']=1

    то результат выполнения кода
    PHP:
    1.  
    2. if (isset($_GET['os'])) {$os = $_GET['os'];}
    3. if (isset($_GET['cat'])) {$cat = $_GET['cat'];}
    4.  
    5. $result=mysql_query ("SELECT * FROM data WHERE cat=$cat and os=$os",$db);
    6. $myrow=mysql_fetch_array($result);
    7.  
    8. echo $myrow['title'];
    9.  
    будет
    Shark
    Почему у тебя не получается нужный результат трудно сказать- выведи на экран выполняемый запрос
    PHP:
    1.  
    2. if (isset($_GET['os'])) {$os = $_GET['os'];}
    3. if (isset($_GET['cat'])) {$cat = $_GET['cat'];}
    4. $q="[sql]SELECT * FROM data WHERE cat=$cat and os=$o[/sql]s";
    5. echo $q.'<br>';
    6. $result=mysql_query ($q,$db);
    7. $myrow=mysql_fetch_array($result);
    8.  
    9. echo $myrow['title'];
    10.  
    и сравни с требуемым

    [sql]
    SELECT * FROM data WHERE cat=1 and os=2
    [/sql]
     
  3. nike90

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

    С нами с:
    25 май 2011
    Сообщения:
    3
    Симпатии:
    0
    спс за проверку, я теперь уже это понял...