| 
    
            
         
         | 
    
  | 
Помогите с MySQL запросом и кодировкой ( Осторожно PHP код! ) | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        D_Pavel    
     04.09.15 
            ✎
    09:38 
 | 
         
        mysqli_query($link, "set character_set_results='UTF8'");
 
        mysqli_query($link, "set character_set_client='UTF8'"); $res = mysqli_query($link, "SELECT * FROM `kladr` WHERE id = 1564 ");//AND city = '$city' "); $row=$res -> fetch_assoc(); print_r ( $row['city'] == $city ); // выдает 1, то есть они равны !!!!! если добавить условие " AND city = '$city'", то запрос ничего не находит. Почему так и как исправить?  | 
|||
| 
    1
    
        beaver1971    
     04.09.15 
            ✎
    09:43 
 | 
         
        а что в PHP происходит с переменными в одинарных и двойных кавычках?     
         | 
|||
| 
    2
    
        D_Pavel    
     04.09.15 
            ✎
    09:45 
 | 
         
        (1) Используются только двойные.     
         | 
|||
| 
    3
    
        D_Pavel    
     04.09.15 
            ✎
    09:46 
 | 
         
        (1) Кодировка от кавычек не зависит     
         | 
|||
| 
    4
    
        beaver1971    
     04.09.15 
            ✎
    09:46 
 | 
         
        (2) AND city = '$city'?     
         | 
|||
| 
    5
    
        D_Pavel    
     04.09.15 
            ✎
    09:47 
 | 
         
        (4) " AND city = '$city'"     
         | 
|||
| 
    6
    
        beaver1971    
     04.09.15 
            ✎
    09:47 
 | 
         
        +(4) по всей видимости у тебя в базе нет города с названием $city     
         | 
|||
| 
    7
    
        salat-production    
     04.09.15 
            ✎
    09:48 
 | 
         
        Какая задача то? Что должно выводиться?     
         | 
|||
| 
    8
    
        D_Pavel    
     04.09.15 
            ✎
    09:48 
 | 
         
        (6) Есть. Если текст запроса вывести на экран, потом его скопировать в phpMyAdmin, то запрос срабатывает правильно.     
         | 
|||
| 
    9
    
        D_Pavel    
     04.09.15 
            ✎
    09:50 
 | 
         
        (7) Запрос с условием по городу должен был выдать ту же самую запись что и без условия.     
         | 
|||
| 
    10
    
        salat-production    
     04.09.15 
            ✎
    09:50 
 | 
         
        И что это вообще за муть?)) Что ты хотел этим проверить?
 
        print_r ($row['city'] == $city) Может быть: <? $row['city'] == $city ? print_r ('Идентичны') : print_r('Не совпадают'); ?>  | 
|||
| 
    11
    
        D_Pavel    
     04.09.15 
            ✎
    09:51 
 | 
         
        (10) Да, именно это и хотел проверить. Они идентичны.     
         | 
|||
| 
    12
    
        D_Pavel    
     04.09.15 
            ✎
    09:51 
 | 
         
        Почему муть? Просто более короткая запись, для отладки сгодится     
         | 
|||
| 
    13
    
        beaver1971    
     04.09.15 
            ✎
    09:54 
 | 
         
        (9) 
 
        $gorod = 'Moscow'; $gr1 = "$gorod"; $gr2 = '$gorod'; $gr1 = $gr2?????? $res = mysqli_query($link, "SELECT * FROM `kladr` WHERE id = 1564 AND city = '" . $city . "'");  | 
|||
| 
    14
    
        salat-production    
     04.09.15 
            ✎
    09:58 
 | 
         
        У тебя класс мускула исключения выбрасывает?
 
        Если нет, вывеби через try catch. Что дебаг говорит? Лично мне например из вопроса ничего не ясно, кроме того, что запрос не проходит из функции, а из майадмина все ок.  | 
|||
| 
    15
    
        salat-production    
     04.09.15 
            ✎
    10:04 
 | 
         
        И зачем кодировку в двух запросах втыкать, достаточно одного при подключении к базе.
 
        mysqli_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'");  | 
|||
| 
    16
    
        D_Pavel    
     04.09.15 
            ✎
    10:05 
 | 
         
        (14) Нет никаких исключений, просто в условии город не в той кодировке, а как ее задать правильно не знаю.     
         | 
|||
| 
    17
    
        D_Pavel    
     04.09.15 
            ✎
    10:09 
 | 
         
        (13) Я же писал уже, в двойных кавычках надо, а у тебя в одинарных.
 
        Вместо: $gr2 = '$gorod'; Сделай так: $gr2 = "'$gorod'"; получится $gr2 = "'Moscow'" В общем ты мне не то пишешь.  | 
|||
| 
    18
    
        D_Pavel    
     04.09.15 
            ✎
    10:09 
 | 
         
        (15) Спасибо, помогло. Куда деньги слать?
 
        Темку можно закрыть.  | 
|||
| 
    19
    
        beaver1971    
     04.09.15 
            ✎
    10:25 
 | 
         
        (17) $gr1 = $gr2??????     
         | 
|||
| 
    20
    
        D_Pavel    
     04.09.15 
            ✎
    11:21 
 | 
         
        (19) ну не задавай глупых вопросов. Понятно же все     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |