За последние 24 часа нас посетили 20350 программистов и 1090 роботов. Сейчас ищут 720 программистов ...

Запрос в sqlsrv И вывод данных в таблицу HTML

Тема в разделе "MSSQL", создана пользователем gomerof, 5 авг 2014.

  1. gomerof

    gomerof Новичок

    С нами с:
    5 авг 2014
    Сообщения:
    7
    Симпатии:
    0
    Код (Text):
    1.  
    2. $serverName = "blabla, 31580";
    3. $connectionInfo = array("UID" => "site_user", "PWD" => "pwd", "Database" => "prices");
    4. $conn = sqlsrv_connect( $serverName, $connectionInfo);
    5.  
    6. if( $conn )
    7. {
    8. echo "всё хорошо";
    9. }
    10. else
    11. {
    12. echo "Connection could not be established.\n";
    13. die( print_r( sqlsrv_errors(), true));
    14. }
    15.  
    16.  $sql = 'exec num "01000"';
    17. $par = array (0);
    18. $res = sqlsrv_query ( $conn, $sql);
    Есть запрос в Базу данных MSsql 2008
    Код (Text):
    1. $res = sqlsrv_query ( $conn, $sql);
    PHP Изучаю 3 понедельника... (((
    Есть Задание выводить данные в HTML Виде на сайте.... *(адовое задание)

    Примера и мануала не нашла...

    P.S В sql по данному запросу получаю то что нужно..

    В PHP Пишет при попытке вывести
    Код (Text):
    1. echo $res;
    [/code]Resource id #3
    Код (Text):
    1.  
    2. Прошу понять и простить...
    3. Если уж страшно тупой вопрос... Хотелось бы в примере И на пальцах...
     
  2. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    ну все верно там находиться ресурс ИД
    терь его надо
    $res = sqlsrv_fetch_array($res)
    print_r($res);

    example
    Код (PHP):
    1. $sql = "SELECT FirstName, LastName FROM SomeTable";
    2. $stmt = sqlsrv_query( $conn, $sql );
    3. if( $stmt === false) {
    4.     die( print_r( sqlsrv_errors(), true) );
    5. }
    6.  
    7. while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
    8.       echo $row['LastName'].", ".$row['FirstName']."<br />";
    9. }
    10.  
    11. sqlsrv_free_stmt( $stmt); 
     
  3. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Я бы сделал так (хз, сколько там строк в ответе):
    Код (Text):
    1. while ($row = sqlsrv_fetch_array($res, SQLSRV_FETCH_ASSOC)) {
    2.   $data[]= $row;
    3. }
    4. print_r($data);
     
  4. gomerof

    gomerof Новичок

    С нами с:
    5 авг 2014
    Сообщения:
    7
    Симпатии:
    0
    Код (Text):
    1.  
    2. $sql = 'exec num "01000"';
    3. $res = sqlsrv_query ( $conn, $sql);
    4.  
    5. while( $row = sqlsrv_fetch_array( $res, SQLSRV_FETCH_ASSOC) ) {
    6. echo $row['sp_num'].", ".$row['sup_name']."<br />";
    7. }
    8.  
    9. sqlsrv_free_stmt( $res);
    Всё работает но Какой то бред с кодировкой.. Русские буквы отображаются знаками ??????

    Так работает но считаю Это не верным
    Код (Text):
    1. while( $row = sqlsrv_fetch_array( $res, SQLSRV_FETCH_ASSOC) ) {
    2.     echo iconv("windows-1251", "utf-8", $row ['sup_name']). "  ".$row ['test']."<br />";
    Подскажите как Сделать правильно
     
  5. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    проблема в кодировках!!!
    во 1 глянуть в самой базе какая там кодировка!
    во 2 в самом файле сделать header('Content-Type: text/html; charset=utf-8');
    в 3 sqlsrv_query("SET NAMES utf8");
    Суть что все должно біть в УТФ 8
     
  6. gomerof

    gomerof Новичок

    С нами с:
    5 авг 2014
    Сообщения:
    7
    Симпатии:
    0
    1. юникод
    2. header('Content-Type: text/html; charset=utf-8'); Пишет Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\zap\info.php:7)
    3. $res = sqlsrv_query ($conn, "SET NAMES utf8", $sql); Пишет
    Warning: sqlsrv_query() expects parameter 3 to be array, string given in Z:\home\localhost\www\zap\info.php on line 27

    Warning: sqlsrv_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\localhost\www\zap\info.php on line 30

    Warning: sqlsrv_free_stmt() expects parameter 1 to be resource, boolean given in Z:\home\localhost\www\zap\info.php on line 39
     
  7. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    переделать в утф.
    header('Content-Type: text/html; charset=utf-8') - должен БЫТЬ САМОЙ ПЕРВОЙ СТРОКОЙ!
    Код (PHP):
    1. $serverName = "MyServer";
    2. $connectionInfo = array( "Database"=>"AdventureWorks", "CharacterSet" => "UTF-8");
    3. $conn = sqlsrv_connect( $serverName, $connectionInfo);
    4.  
    5. if ( $conn === false ) {
    6.    echo "Could not connect.<br>";
    7.    die( print_r( sqlsrv_errors(), true));
    8. }
    и не спиши ОШИБКИ ДОЛЖНЫ ТЕБЕ ГОВОРИТЬ(ТАК СКАЗАТЬ НАПРАВЛЯТЬ ТЕБЯ,если их нету то тогла не поймешь где ошибка)
    НАПРИМЕР просто переаеди sqlsrv_query() expects parameter 3 to be array
    ну а
    Warning: sqlsrv_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\localhost\www\zap\info.php on line 30

    Warning: sqlsrv_free_stmt() expects parameter 1 to be resource, boolean given in Z:\home\localhost\www\zap\info.php on line 39
    это уже ошибки каторые подтянулись!
     
  8. gomerof

    gomerof Новичок

    С нами с:
    5 авг 2014
    Сообщения:
    7
    Симпатии:
    0
    Код (Text):
    1.  
    2. <?php
    3.  
    4. $serverName = "server-files, 31580"; //если instance и port стандартные, то можно не указывать
    5. $connectionInfo = array("UID" => "site_user", "PWD" => "9801234", "Database" => "prices", "CharacterSet" => "UTF-8");
    6. //$connectionInfo = array( "Database"=>"AdventureWorks", "CharacterSet" => "UTF-8");
    7. $conn = sqlsrv_connect( $serverName, $connectionInfo);
    8.  
    9.  
    10. if( $conn )
    11. {
    12. echo "Заебись ты подрубился"."</br>";
    13. }
    14. else
    15. {
    16. echo "Connection could not be established.\n";
    17. die( print_r( sqlsrv_errors(), true));
    18. }
    19.  
    20.  $sql = "exec num '010%'";
    21. $res = sqlsrv_query ($conn, $sql);
    22. echo '<table>';
    23.  
    24. while( $row = sqlsrv_fetch_array( $res, SQLSRV_FETCH_ASSOC) ) {
    25.      //echo iconv("windows-1251", "utf-8", $row ['sup_name']) .$row ['sp_num']."<br />";
    26.      
    27. }
    28. echo '<input type="search"><input type="button" value="Поиск">';
    29. echo '</table>';
    30.  
    31. sqlsrv_free_stmt( $res);
    32.  
    33. /*
    34. $i = sqlsrv_fetch_assoc ($res) ;
    35.  
    36. echo $i;
    37. */
    38.  
    39.  
    40.  
    41. // Free the query result
    42.  
    43.  
    44.  
    45.  
    46. /* Close the connection. */
    47. sqlsrv_close( $conn);
    48.  
    49. ?>
    Всё отлично работает...
    Теперь подскажите как Сделать мне строку поиска и кнопку (ну это я сделал).
    Подскажите.. Как Мне сделать так чтобы в строке поиска я вводил цифры для поиска по базе.. и при нажатии кнопки поиск выдавался результата в HTML Теги...


    P.S Прошу понять и простить если вопрос уж очень примитивный..
     
  9. gomerof

    gomerof Новичок

    С нами с:
    5 авг 2014
    Сообщения:
    7
    Симпатии:
    0
    Вот так делаю ошибок не выдаёт... Но и не работает... (
    Код (Text):
    1. <html>
    2. <head>
    3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    4. </head>
    5. <title></title>
    6. <body>
    7. <input type="search" name="query" value="Привет"><input type="button" value="Поиск">
    8.  
    9. <?php
    10.  
    11.  
    12. $serverName = "server-files, 31580"; //если instance и port стандартные, то можно не указывать
    13. $connectionInfo = array("UID" => "site_user", "PWD" => "9801234", "Database" => "prices", "CharacterSet" => "UTF-8");
    14. //$connectionInfo = array( "Database"=>"AdventureWorks", "CharacterSet" => "UTF-8");
    15. $conn = sqlsrv_connect( $serverName, $connectionInfo);
    16.  
    17.  
    18. if( $conn )
    19. {
    20. // echo "Заебись ты подрубился"."</br>";
    21. }
    22. else
    23. {
    24. echo "Connection could not be established.\n";
    25. die( print_r( sqlsrv_errors(), true));
    26. }
    Код (Text):
    1. ?>
    2. <?php
    3.  $query = trim($query);
    4.     //$query = sqlsrv_real_escape_string ($query);
    5.     $query = htmlspecialchars($query);
    6.     echo $query;
    7.  
    8.     if (!empty($query))
    9.     {
    10.         if (strlen($query) < 2) {
    11.             $text = '<p>Слишком короткий поисковый запрос.</p>';
    12.         } else if (strlen($query) > 128) {
    13.             $text = '<p>Слишком длинный поисковый запрос.</p>';
    14.         } else {
    15.             $q = "exec num ".$query."'%'";
    16.  
    17.             $result = sqlsrv_query($q);
    18.  
    19.             if (sqlsrv_affected_rows() > 0) {
    20.                 $row = sqlsrv_fetch_assoc($result);
    21.                 $num = sqlsrv_num_rows($result);
    22.  
    23.                 $text = '<p>По запросу <b>'.$query.'</b> найдено совпадений: '.$num.'</p>';
    24.  
    25.                 do {
    26.                     // Делаем запрос, получающий ссылки на статьи
    27.                     $q1 = "<p>'$row[sup_name]'</p>";
    28.                     $result1 = sqlsrv_query($q1);
    29.  
    30.                     if (sqlsrv_affected_rows() > 0) {
    31.                         $row1 = sqlsrv_fetch_assoc($result1);
    32.                     }
    33.  
    34.                     $text .= "'$row[sp_num]'";
    35.  
    36.                 } while ($row = sqlsrv_fetch_assoc($result));
    37.             } else {
    38.                 $text = '<p>По вашему запросу ничего не найдено.</p>';
    39.             }
    40.         }
    41.     } else {
    42.         $text = '<p>Задан пустой поисковый запрос.</p>';
    43.     }
    44.  
    45.     return $text;
    46.     sqlsrv_close( $conn);
    47. ?>
    48. <?php
    49. if (!empty($_POST['query'])) {
    50.     $search_result = search ($_POST['query']);
    51.     echo $search_result;
    52. }
    53. ?>
    54.  
    55. </body>
    56. </html>

    Что не так почему не работает?

    Добавлено спустя 11 минут 46 секунд:

    С этим разобрался.. Теперь помоги как Поиск исполнить! (((
     
  10. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    если делаешь через форму! то примерно так! (просто направляю!)
    <form name="form" action="" method="post">
    <input type="search" name="query" value="Привет">
    <input type="submit"/>
    </form>
    и теперь в $POST['query'] будет значение каторое ты вёл! НАПРИМЕР 1
    ДЛЯ НАЧАЛА ДОБЕЙСЯ ЧТО БЫ print_r($_POST) после нажатие летели данные
    и теперь $ var = trim(strip_tags( $POST['query']));
    и загоняй переменую в запрос типо SELECT * FROM tbl WHERE id = {$var}

    и если не выходить давай по пунктам!

    ну и еще чето не вижу запроса!
     
  11. gomerof

    gomerof Новичок

    С нами с:
    5 авг 2014
    Сообщения:
    7
    Симпатии:
    0
    Код (Text):
    1. <form name="search" method="post">
    2.     <input type="search" name="query" placeholder="Поиск">
    3.     <button type="submit">Найти</button>
    4. </form>
    Форма

    Код (Text):
    1. $serverName = "server-files, 31580"; //если instance и port стандартные, то можно не указывать
    2. $connectionInfo = array("UID" => "site_user", "PWD" => "blabla", "Database" => "prices", "CharacterSet" => "UTF-8");
    3. $conn = sqlsrv_connect( $serverName, $connectionInfo);
    Подключились...

    Код (Text):
    1. $sql = "exec num 'что то.. что написано в поиске%'";
    2. $res = sqlsrv_query ($conn, $sql);
    Запрос

    Помоги организовать вывод данных в
    Код (Text):
    1. echo $res[sp_num];
    Я совсем не Догоняю.. (((
     
  12. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    $row = sqlsrv_fetch_array($res);
    print_r($row);
    Документацию читаем, ага.
     
  13. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    Базы у меня такой нет! так что попробавать не могу!
    $res[sp_num] - что это такое???? правильно наверно так $res['sp_num']
    $sql = "exec num 'что то.. что написано в поиске%'"; что это такое????
    что иммено не выходит?!
    когда ты сделал запрос то в ответ приходить ХРЕНЬ , ее надо переделать в данные sqlsrv_fetch_array(даные записываються в МАССИВ)

    выводить масивы можно print_r();


    $row = sqlsrv_fetch_array($res);
    print_r($row);

    Добавлено спустя 46 минут 28 секунд:
    $sql = "exec num 'вот сюда я хочу как то добавить то что забью в поиске'";
    в запросе не должно юыть не чего ЛЕВОГО!!!!!
    Должно быть только сам запрос например "ТРА-ТА-ТА ЗАПРОС {$peremenaya}"
    если переменая страка то засовывай в '' если число то можно без ковычек!!!
    И Я ЧЕСНО НЕ ПОНИМАЮ ЧТО ЭТО это такие запросы в МС СЮЛ "exec num '{$var}'";

    Добавлено спустя 3 минуты 13 секунд:
    ВОТ ПРИМЕР РАБОТЫ ТОЛЬКО ПОДМЕНИ НА СВОИ ДЕРЕКТИВЫ НУ И тут работа с другой базой ну я думмаю наглятно понятно!
    Код (PHP):
    1. <?php
    2. $con=mysqli_connect("example.com","peter","abc123","my_db");
    3. // Check connection
    4.   echo "Failed to connect to MySQL: " . mysqli_connect_error();
    5. }
    6. //ГДЕ ТО ФОРМА ГДЕ ЕСТЬ ПОЛЕ НАПРИМЕР ПОЛУЧИЛИ $_POST['name']
    7. //отфильтровали $name = trim($_POST['name'])
    8. $result = mysqli_query($con,"SELECT * FROM Persons WHERE name = '{$name}'");
    9.  
    10. while($row = mysqli_fetch_array($result)) {
    11.   echo $row['FirstName'] . " " . $row['LastName'];
    12.   echo "<br>";
    13. }
    14.  
    15. ?>
     
  14. gomerof

    gomerof Новичок

    С нами с:
    5 авг 2014
    Сообщения:
    7
    Симпатии:
    0
    всё просто
    есть <input type='text' name="query" placeholder="Поиск"> с именем query

    Вводимые данные в данное поле нужно запихнуть в переменную $zapros = '';

    А как Создать запрос и вывести Я знаю.. но как из HTML Формы не понимаю.

    exec num (запрос в sql 2008)
     
  15. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    <form name="form" action="" method="post">
    <label>
    <input type="text" name="query">
    <input type="submit"/>
    </label>
    </form>
    <?php print_r($_POST);
    echo $_POST['query'];
    создай 1 файл.пхп зачунь этот код в него и запусти!!!!
    ?>