Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyrażenia regularne
kilofmar
post
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 29.11.2006

Ostrzeżenie: (0%)
-----


Witam
Czy da się za pomocą wyrażenia regularnego wyświetlić rekord w którym nie wystąpiło szukane wyrażenie.
Chodzi mi o to że gdy nie ma szukanego ID w polu to wyświetl ten rekord.

Np. Mam tabele i w niej pole "status" i tam sa ID "12,23,232,123,33" a moje ID jest np. 100 i nie występuje w tym polu więc chciałbym wyświetlić ten rekord

Bo aby wyświetlić rekord gdy występuje ID to robię to tak:

  1. <?php
  2. $query2 = sprintf("SELECT *  FROM `sklep`
  3.                       WHERE `stsud` REGEXP '(,%s,|^%s,|,%s$|^%s$)' LIMIT 0,1",
  4.                      $dane['id'], $dane['id'], $dane['id'], $dane['id']);
  5. ?>


Ale jak to odwrócić?
Go to the top of the page
+Quote Post
fragles
post
Post #2





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 14.12.2008

Ostrzeżenie: (0%)
-----


Jeśli to jest tekst i jeśli po każdym ID występuje przecinek to wystarczy użyć LIKE, negacji i warunku np '%100,%'

SELECT x FROM y WHERE ID NOT LIKE ('%id,%');

poza tym czy nie lepiej, wygodniej szybciej by było zrobić tabelę na ID - zrobić klucz i zamiast grzebać w tekście zrobić złączenia?
Go to the top of the page
+Quote Post
alegorn
post
Post #3





Grupa: Zarejestrowani
Postów: 341
Pomógł: 40
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----


nie do konca jestem pewny czy dobrze rozumiem co masz w tych polach...
ale ja raczej bym polecil
  1. SELECT * FROM `sklep` WHERE id NOT IN ( 12,23,232,123,33) /* not in `stsud`(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) */


choc jak pisalem, nie jestem pewny czy dobrze zrozumialem jak i co maszz w tych tabelach...

Ten post edytował alegorn 3.07.2009, 11:15:17
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.09.2025 - 20:09