За последние 24 часа нас посетили 17852 программиста и 1658 роботов. Сейчас ищут 1220 программистов ...

Не получается запрос в БД MySQL из PHP скрипта

Тема в разделе "MySQL", создана пользователем b_vlad25, 2 июн 2017.

  1. b_vlad25

    b_vlad25 Новичок

    С нами с:
    2 июн 2017
    Сообщения:
    4
    Симпатии:
    1
    Вопрос в том что запрашиваемые числовые данные проходят, а вот текстовые нет.
    Запрос посылается из браузера, например:
    http://domofonkg.com/2.php?id=Подключён
    Это сам код скрипта:

    Код (Text):
    1. <?php
    2. //Sample Database Connection Syntax for PHP and MySQL.
    3.  
    4. //Connect To Database
    5.  
    6. $hostname="00.00.00.00";
    7. $username="dfgfdgfg";
    8. $password="gfgfdghdfgfdgfdgfd";
    9. $dbname="dgfdgfgfgfgf";
    10. $usertable="internetshop_users";
    11. $yourfield = "mail_index"; //лицевой счет
    12. $yourfield1 = "address_of_delivery"; //адрес
    13. $yourfield2 = "fax";  //тариф
    14. $yourfield3 = "country_id"; //абонплата
    15. $yourfield4 = "url"; //льгота
    16. $yourfield5 = "phone"; //долг
    17. $yourfield6 = "company"; //статус
    18. $yourfield7 = "icq"; //дата
    19. //$zapros = $_GET['id'];
    20.  
    21. if (isset($_GET['id'])) $string = $_GET['id']; // Если в GET запросе передается параметр id, то записать его в переменную $string
    22.  
    23. $link = mysql_connect($hostname,$username, $password) or die ("<html><script language='JavaScript'>alert('Ошибка соединения с базой! Пожалуйста попробуйте позже.'),history.go(-1)</script></html>");
    24. mysql_set_charset('cp1251',$link);// твоя кодировка, чтобы сервер тебя  правильно понял
    25. mysql_select_db($dbname);
    26.  
    27. # Check If Record Exists
    28.  
    29. $query = "SELECT mail_index, address_of_delivery, fax, country_id, url, phone, company, icq FROM $usertable WHERE $yourfield6 = $string";
    30.  
    31. if($result)
    32. {
    33. if(mysql_num_rows($result) > 0){
    34. while($row = mysql_fetch_array($result, MYSQL_ASSOC))
    35. {
    36.   $row=mysql_fetch_array($result);
    37.    printf ("%s; %s; %s; %s; %s; %s; %s; %s", $row["$yourfield"], $row["$yourfield1"], $row["$yourfield2"], $row["$yourfield3"], $row["$yourfield4"], $row["$yourfield5"], $row["$yourfield6"], $row["$yourfield7"]);}
    38. }
    39. else{
    40.         echo 'Соответсвия не найдено!';
    41.     }
    42. mysql_free_result($result);
    43. }
    44. else{
    45. echo 'Дискрипттор соединения не установлен!';
    46. }
    47. mysql_close($link);
    48. ?>
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  3. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    Я думал mysql_* уже никто не использует
     
  4. b_vlad25

    b_vlad25 Новичок

    С нами с:
    2 июн 2017
    Сообщения:
    4
    Симпатии:
    1
    Проверил кодом, ошибок сейчас нет, но и данных по поиску пишет не найдено, хотя в базе они точно есть.
    Предполагаю, что кодировка в запросе через GET не правильная приходит, вот и не может найти. А поменять ее перед вставкой в запрос можно?
     
  5. b_vlad25

    b_vlad25 Новичок

    С нами с:
    2 июн 2017
    Сообщения:
    4
    Симпатии:
    1
    Вставил такой код
    Код (Text):
    1. $string=iconv("utf-8", "windows-1251", $string);
    запрос уходит, но приходит вот так: ; ; ; ; ; ; ; пустые переменные
     
  6. b_vlad25

    b_vlad25 Новичок

    С нами с:
    2 июн 2017
    Сообщения:
    4
    Симпатии:
    1
    Вопрос снят, всем спасибо, разобрался
     
    denis01 нравится это.
  7. umbabaraumba

    umbabaraumba Новичок

    С нами с:
    18 июн 2017
    Сообщения:
    100
    Симпатии:
    17
    Напишите как разобрались, может потом кому поможет.
     
    denis01 нравится это.