Код (Text): $serverName = "blabla, 31580"; $connectionInfo = array("UID" => "site_user", "PWD" => "pwd", "Database" => "prices"); $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn ) { echo "всё хорошо"; } else { echo "Connection could not be established.\n"; die( print_r( sqlsrv_errors(), true)); } $sql = 'exec num "01000"'; $par = array (0); $res = sqlsrv_query ( $conn, $sql); Есть запрос в Базу данных MSsql 2008 Код (Text): $res = sqlsrv_query ( $conn, $sql); PHP Изучаю 3 понедельника... ((( Есть Задание выводить данные в HTML Виде на сайте.... *(адовое задание) Примера и мануала не нашла... P.S В sql по данному запросу получаю то что нужно.. В PHP Пишет при попытке вывести Код (Text): echo $res; [/code]Resource id #3 Код (Text): Прошу понять и простить... Если уж страшно тупой вопрос... Хотелось бы в примере И на пальцах...
ну все верно там находиться ресурс ИД терь его надо $res = sqlsrv_fetch_array($res) print_r($res); example Код (PHP): $sql = "SELECT FirstName, LastName FROM SomeTable"; $stmt = sqlsrv_query( $conn, $sql ); if( $stmt === false) { die( print_r( sqlsrv_errors(), true) ); } while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) { echo $row['LastName'].", ".$row['FirstName']."<br />"; } sqlsrv_free_stmt( $stmt);
Я бы сделал так (хз, сколько там строк в ответе): Код (Text): while ($row = sqlsrv_fetch_array($res, SQLSRV_FETCH_ASSOC)) { $data[]= $row; } print_r($data);
Код (Text): $sql = 'exec num "01000"'; $res = sqlsrv_query ( $conn, $sql); while( $row = sqlsrv_fetch_array( $res, SQLSRV_FETCH_ASSOC) ) { echo $row['sp_num'].", ".$row['sup_name']."<br />"; } sqlsrv_free_stmt( $res); Всё работает но Какой то бред с кодировкой.. Русские буквы отображаются знаками ?????? Так работает но считаю Это не верным Код (Text): while( $row = sqlsrv_fetch_array( $res, SQLSRV_FETCH_ASSOC) ) { echo iconv("windows-1251", "utf-8", $row ['sup_name']). " ".$row ['test']."<br />"; Подскажите как Сделать правильно
проблема в кодировках!!! во 1 глянуть в самой базе какая там кодировка! во 2 в самом файле сделать header('Content-Type: text/html; charset=utf-8'); в 3 sqlsrv_query("SET NAMES utf8"); Суть что все должно біть в УТФ 8
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
переделать в утф. header('Content-Type: text/html; charset=utf-8') - должен БЫТЬ САМОЙ ПЕРВОЙ СТРОКОЙ! Код (PHP): $serverName = "MyServer"; $connectionInfo = array( "Database"=>"AdventureWorks", "CharacterSet" => "UTF-8"); $conn = sqlsrv_connect( $serverName, $connectionInfo); if ( $conn === false ) { echo "Could not connect.<br>"; die( print_r( sqlsrv_errors(), true)); } и не спиши ОШИБКИ ДОЛЖНЫ ТЕБЕ ГОВОРИТЬ(ТАК СКАЗАТЬ НАПРАВЛЯТЬ ТЕБЯ,если их нету то тогла не поймешь где ошибка) НАПРИМЕР просто переаеди 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 это уже ошибки каторые подтянулись!
Код (Text): <?php $serverName = "server-files, 31580"; //если instance и port стандартные, то можно не указывать $connectionInfo = array("UID" => "site_user", "PWD" => "9801234", "Database" => "prices", "CharacterSet" => "UTF-8"); //$connectionInfo = array( "Database"=>"AdventureWorks", "CharacterSet" => "UTF-8"); $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn ) { echo "Заебись ты подрубился"."</br>"; } else { echo "Connection could not be established.\n"; die( print_r( sqlsrv_errors(), true)); } $sql = "exec num '010%'"; $res = sqlsrv_query ($conn, $sql); echo '<table>'; while( $row = sqlsrv_fetch_array( $res, SQLSRV_FETCH_ASSOC) ) { //echo iconv("windows-1251", "utf-8", $row ['sup_name']) .$row ['sp_num']."<br />"; } echo '<input type="search"><input type="button" value="Поиск">'; echo '</table>'; sqlsrv_free_stmt( $res); /* $i = sqlsrv_fetch_assoc ($res) ; echo $i; */ // Free the query result /* Close the connection. */ sqlsrv_close( $conn); ?> Всё отлично работает... Теперь подскажите как Сделать мне строку поиска и кнопку (ну это я сделал). Подскажите.. Как Мне сделать так чтобы в строке поиска я вводил цифры для поиска по базе.. и при нажатии кнопки поиск выдавался результата в HTML Теги... P.S Прошу понять и простить если вопрос уж очень примитивный..
Вот так делаю ошибок не выдаёт... Но и не работает... ( Код (Text): <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <title></title> <body> <input type="search" name="query" value="Привет"><input type="button" value="Поиск"> <?php $serverName = "server-files, 31580"; //если instance и port стандартные, то можно не указывать $connectionInfo = array("UID" => "site_user", "PWD" => "9801234", "Database" => "prices", "CharacterSet" => "UTF-8"); //$connectionInfo = array( "Database"=>"AdventureWorks", "CharacterSet" => "UTF-8"); $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn ) { // echo "Заебись ты подрубился"."</br>"; } else { echo "Connection could not be established.\n"; die( print_r( sqlsrv_errors(), true)); } Код (Text): ?> <?php $query = trim($query); //$query = sqlsrv_real_escape_string ($query); $query = htmlspecialchars($query); echo $query; if (!empty($query)) { if (strlen($query) < 2) { $text = '<p>Слишком короткий поисковый запрос.</p>'; } else if (strlen($query) > 128) { $text = '<p>Слишком длинный поисковый запрос.</p>'; } else { $q = "exec num ".$query."'%'"; $result = sqlsrv_query($q); if (sqlsrv_affected_rows() > 0) { $row = sqlsrv_fetch_assoc($result); $num = sqlsrv_num_rows($result); $text = '<p>По запросу <b>'.$query.'</b> найдено совпадений: '.$num.'</p>'; do { // Делаем запрос, получающий ссылки на статьи $q1 = "<p>'$row[sup_name]'</p>"; $result1 = sqlsrv_query($q1); if (sqlsrv_affected_rows() > 0) { $row1 = sqlsrv_fetch_assoc($result1); } $text .= "'$row[sp_num]'"; } while ($row = sqlsrv_fetch_assoc($result)); } else { $text = '<p>По вашему запросу ничего не найдено.</p>'; } } } else { $text = '<p>Задан пустой поисковый запрос.</p>'; } return $text; sqlsrv_close( $conn); ?> <?php if (!empty($_POST['query'])) { $search_result = search ($_POST['query']); echo $search_result; } ?> </body> </html> Что не так почему не работает? Добавлено спустя 11 минут 46 секунд: С этим разобрался.. Теперь помоги как Поиск исполнить! (((
если делаешь через форму! то примерно так! (просто направляю!) <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} и если не выходить давай по пунктам! ну и еще чето не вижу запроса!
Код (Text): <form name="search" method="post"> <input type="search" name="query" placeholder="Поиск"> <button type="submit">Найти</button> </form> Форма Код (Text): $serverName = "server-files, 31580"; //если instance и port стандартные, то можно не указывать $connectionInfo = array("UID" => "site_user", "PWD" => "blabla", "Database" => "prices", "CharacterSet" => "UTF-8"); $conn = sqlsrv_connect( $serverName, $connectionInfo); Подключились... Код (Text): $sql = "exec num 'что то.. что написано в поиске%'"; $res = sqlsrv_query ($conn, $sql); Запрос Помоги организовать вывод данных в Код (Text): echo $res[sp_num]; Я совсем не Догоняю.. (((
Базы у меня такой нет! так что попробавать не могу! $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): <?php $con=mysqli_connect("example.com","peter","abc123","my_db"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } //ГДЕ ТО ФОРМА ГДЕ ЕСТЬ ПОЛЕ НАПРИМЕР ПОЛУЧИЛИ $_POST['name'] //отфильтровали $name = trim($_POST['name']) $result = mysqli_query($con,"SELECT * FROM Persons WHERE name = '{$name}'"); while($row = mysqli_fetch_array($result)) { echo $row['FirstName'] . " " . $row['LastName']; echo "<br>"; } mysqli_close($con); ?>
всё просто есть <input type='text' name="query" placeholder="Поиск"> с именем query Вводимые данные в данное поле нужно запихнуть в переменную $zapros = ''; А как Создать запрос и вывести Я знаю.. но как из HTML Формы не понимаю. exec num (запрос в sql 2008)
<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 файл.пхп зачунь этот код в него и запусти!!!! ?>