Есть база с перечнем товаров. База состоит из ID,namenovanie, cena,tip,p_tip В p_tip много типов , соответственно в namenovanie перечень товаров. Делаю так $query="select * from `test` where (`p_tip`='%ATX_%' or `naimenovanie` like '%Microtech%' )order by `id`"; $result = mysql_query($query) or die("ошибка"); И всебы ничего , но в наименованиях в других p_tipe встречается слово Microtech неподскажете как мне выбирать только нужные строки.
p_tip делится к примеру на категории case и kolonki в обоих есть наименование Microtech немогу понять как мне построить запрос чтобы в результат выводилось только из case а kolonki неучитывались. Предполагаю что это делается по следством AND но неуверен
where `p_tip`='%ATX_%' AND `naimenovanie` like '%Microtech%' И еще пара замечаний: 1. Если в запросе нет необходимости использовать скобки, не используй их 2. Надеюсь ты знаеш что первое сравнение вернет 1 только для строки '%ATX_%', т.е. не будет поиска подстроки 3. Кстати о поиске подстроки, вместо `naimenovanie` like '%Microtech%' используй INSTR(`naimenovanie`,'Microtech'). Будет работать быстрее
where `p_tip`='%ATX_%' AND `naimenovanie` like '%Microtech%' такое пробывал неработает либо у хостера чтот неподдерживается или даже незнаю чего. Естьли другие пути ?????
`p_tip`='%ATX_%' будет выполнено, если есть точное совпадение со строкой "%ATX_%" (% будут пониматься именно как символ, а не любые символы). Используй LIKE вместо равно
Like попробывал эффекта ноль. Есть мысль, можноли канить выбрать сначала p_tip с case а уже из полученного результата выбрать Microtech ????
тnaimenovanie| p_tip | ----------------------------- Microtech | case | Microtech | case | Microtech | kolonki | таблица выглядит приперно так. Мне надо чтобы при фильтрации отбирались только из p_tip case , kolonki игнорировались
если поставиш WHERE p_tip='case' AND naimenovanie='Microtech', то выберется на хостера кивать ета предпоследнее дело. последнее - танцевать с бубном
Если у прова есть панель управления, а в ней mysql admin, то можеш попробовать поиграться с запросами там. вапервых он тебе напишет ошибку если ты ее сделаеш, вовторых там скорей всего будет мастер составления запроса, с помощью которого ты сможеш таки сделать свой вопрос. а уж если там всплывет аномалия (например, запрос который у тебя локально работает, там не хочет), то предъявляеш это прову
Я локально непробывал , поставил локально MySql вообще жуть получилась я не специалист в этой области )))) Жизнь заставила
Чтот я запутался вот как я пишу ))))) А вот результат http://www.evgen.blend.ru/case/case.php <td><font color='blue' size='3px'><center>MICROTECH</center></font></td> </tr>"; echo "<tr>"; echo "<td>"; $query="select * from `test` where (`tip`='case' AND `naimenovanie`='inwin') order by `id`"; $result = mysql_query($query) or die("Неправильно"); if (mysql_num_rows($result)==0) { echo "<table width='99%' height='99%' border='7'>"; echo "<tr>"; echo "<td background='http://www.fraktal.ru/img/menu.gif'><font color='red' size='3px'><center>Временно отсутствует</center></font></td>"; echo "</tr>"; echo "</table>"; } else // незабываем открывать и закрывать фигурные скобки { echo "<table width='99%' height='99%' border='7'>"; echo "<tr>"; echo "<td width='50%' background='http://www.fraktal.ru/img/menu.gif'><center>Наименование</center></td><td width='10%' background='http://www.fraktal.ru/img/menu.gif'><center>Цена</center></td><td width='2%' background='http://www.fraktal.ru/img/menu.gif'><center>Описание</center></td></tr>"; while ($line = mysql_fetch_array($result,MYSQL_ASSOC)) { echo "<tr>"; echo "<td background='http://www.fraktal.ru/img/tire.gif'><font size='2px'>$line[naimenovanie]</font></td><td background='http://www.fraktal.ru/img/tire.gif'><font size='2px'><center>$line[cena]</center></font></td><td background='http://www.fraktal.ru/img/tire.gif'><font size='2px'><a href ='$line[namber]'>Характеристики</a></font></td>"; echo "</tr>"; } echo "</table>"; } echo "</td>";
судя по всему он у тебя действительно возвращает 0 результатов. убедись что данные запрашиваются в нужной базе из нужной таблицы, и что там действительно есть строки с такими значениями
Попробывал вот результат SQL-запрос : $query = SELECT * FROM test WHERE tip = 'case' AND naimenovanie LIKE '%inwin%' ORDER BY id Ответ MySQL: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '$query = SELECT * FROM test WHERE tip = 'case' AND naimenov По синтаксису вроде все правильно.
Evgenmi, olo имел ввиду, что пора начать думать. А еще бы хорошо прочитать что все-таки MySQL написал.
Народ в SQL и PHP я новичек еще и месяца нет как занимаюсь ими. И я так пониамю что эта версия MySQL непонимает какого оператора ????
Да, как и все остальные версии MySQL и других SQL-баз. Это оператор PHP. Почитай про синтаксис PHP и MySQL, а потом занимайся сложной фильтрацией. http://www.php.net http://www.mysql.ru http://www.phpfaq.ru
при таком запросе MySql невыдает сообщение об ошибке, но всеравно неработает ((((( Как это выглядит в MySql SELECT * FROM `test` WHERE `tip`='case' and `naimenovanie`='%inwin%' order by id; Как это выглядит в файле $query="SELECT * FROM `test` WHERE `tip`='case' and `naimenovanie`='%inwin%' order by id";