За последние 24 часа нас посетили 20007 программистов и 1709 роботов. Сейчас ищут 1494 программиста ...

Извлечение информации с базы данных

Тема в разделе "PHP для новичков", создана пользователем mango1988, 12 сен 2014.

  1. mango1988

    mango1988 Новичок

    С нами с:
    12 сен 2014
    Сообщения:
    6
    Симпатии:
    0
    Помогите новичку. Не получаеться извлечь из базы данных информацию категории товара, ничего не происходит на главной странице

    Вот код: DB_FNS

    <?php

    function db_connect ()
    {

    $host = 'localhost';
    $user = 'shopuser';
    $pswd = '123';
    $db = 'shop';

    $connection = mysql_connect($host, $user, $pswd);
    mysql_query("SET NAMES utf8");
    if(!$connection || !mysql_select_db($db,$connection))

    {
    return false;
    }
    return $connection;
    }

    function db_result_to_array($result)
    {
    $res_array = array();

    $count = 0;

    while($row = mysql_fetch_array($result))
    {
    $res_array[$count] = $row;
    $count++;
    }

    return $res_array;
    }

    function get_products ()
    {
    db_connect();

    $query = "SELECT * FROM products ORDER BY id DESC";

    $result = mysql_query($query);
    $result = db_result_to_array($result);

    return $result;
    }

    function get_cat ()
    {
    db_connect();

    $query = "SELECT * FROM categories ORDER BY id DESC";

    $result = mysql_query($query);

    $result = db_result_to_array($result);

    return $result;
    }


    ?>

    Код: SHOP.PHP

    <html>
    <head>
    <META http-equiv="content-type" content="text/html; charset=windows-1251">
    <title>Магазин</title>
    <link rel="stylesheet" type="text/css" href="style/style.css" />
    </head>

    <body>

    <div id="container">
    <div id="header">Шапка сайта

    </div>

    <div id="navigation">Блок навигации

    </div>

    <div id="menu">

    <div><a href="index.php">Главная</a></div>
    <?php
    $categories = get_cat();
    foreach($categories as $item):
    echo "ok"
    ?>

    <div><a href="#"><? $item['name'];?></a></div>
    <?endforeach;?>



    </div>

    <div id="content">Контент

    <?php include($_SERVER['DOCUMENT_ROOT'].'/shop/views/pages/'.$view.'.php'); ?>


    </div>
    <div id="clear">

    </div>

    <div id="footer">Подвал сайта

    </div>
    </div>

    </body>
    </html>

    База данных:

    [​IMG]
     
  2. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    как насчет за вардампить здесь внутри цикла
    Код (Text):
    1.  
    2. function db_result_to_array($result)
    3. {
    4. $res_array = array();
    5.  
    6. $count = 0;
    7.  
    8. while($row = mysql_fetch_array($result))
    9. {
    10. $res_array[$count] = $row;
    11. $count++;
    12. }
    $row ??? (var_dump($row))
     
  3. mango1988

    mango1988 Новичок

    С нами с:
    12 сен 2014
    Сообщения:
    6
    Симпатии:
    0
    Еще бы знать как это сделать

    Добавлено спустя 26 минут 48 секунд:
    Исправил ошибку.

    Как было:
    <div><a href="#"><? $item['name'];?></a></div>
    <?endforeach;?>

    После правки:
    <div><a href="#"><?PHP echo $item['name'];?></a></div>
    <?endforeach;?>

    И все заработало, но теперь проблема с кодировкой пробовал UTF-8 и windows-1251, категории на страницу выводятся в таком виде: ????????? ??????

    $connection = mysql_connect($host, $user, $pswd);
    mysql_query("SET NAMES utf8");
    if(!$connection || !mysql_select_db($db,$connection))

    Добавлено спустя 5 минут 9 секунд:
    Подошла кодировка cp1251, почему не работает UTF-8 и windows-1251?Это может быть из-за версии Mysql?
    Если сделать так:
    $connection = mysql_connect($host, $user, $pswd);
    mysql_query("SET NAMES utf8, windows-1251, cp1251");
    if(!$connection || !mysql_select_db($db,$connection))

    Это правильно?
     
  4. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    mysql_query("SET NAMES utf8, windows-1251, cp1251"); - конечно же НЕ ПРАВИЛЬНО!

    что бы избавиться от непонятной "абры-кадабры", надо устанавливать в браузере такую же кодировку, что и в БД.
     
  5. mango1988

    mango1988 Новичок

    С нами с:
    12 сен 2014
    Сообщения:
    6
    Симпатии:
    0
    Себе допустим я установлю кодировку, а как другие будут заходить если у них такой же браузер как у меня щас
     
  6. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    когда заходят другие на сайт и им нужно отсылать header() c кодировкой. и это делается ч/з PHP..
     
  7. mango1988

    mango1988 Новичок

    С нами с:
    12 сен 2014
    Сообщения:
    6
    Симпатии:
    0
    Приведите пример как это сделать
     
  8. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    Код (Text):
    1. <?php header("Content-Type: text/html; charset=utf-8");?>
     
  9. mango1988

    mango1988 Новичок

    С нами с:
    12 сен 2014
    Сообщения:
    6
    Симпатии:
    0
    Спасибо