Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [sql]
Forum PHP.pl > Forum > Przedszkole
monika777
mam zapytanie

  1. <?php
  2. $sql = "SELECT * FROM polisy_z WHERE nr_polisy in ('13,14,17,19') AND id_menager='$_SESSION[id_menager]'";
  3. ?>


wyswietlaja sie nr polis tylko tych zawartych w nawiasie oraz tylko dla zalogowanego menagera.. co zrobić jeśli chce by te numery nie byly na sztywno? Zalozmy ze uzytkownik ma formularz gdzie wpisuje sobie numery polis oddzielajac przecinkami a zmienna ta jest wysylana jakos $_POST[polisy]. Mam tak i nie dziala:

  1. <?php
  2. $sql = "SELECT * FROM polisy_z WHERE nr_polisy in ($_POST[polisy]) AND id_menager='$_SESSION[id_menager]'";
  3. ?>
kszychu
A echo $sql co Ci pokazuje?
nevt
Brakuje ci apostrofów, zamień na:
  1. <?php
  2. $sql = "SELECT * FROM polisy_z WHERE nr_polisy in ('".$_POST['polisy']."') AND id_menager='".$_SESSION['id_menager']."';";
  3.  
  4. // albo prościej...
  5.  
  6. $polisy = $_POST['polisy'];
  7. $manager = $_SESSION['id_menager'];
  8. $sql = "SELECT * FROM polisy_z WHERE nr_polisy in ('$polisy') AND id_menager='$manager';";
  9. ?>


Powinno działać. Jesli pole id_menager jest typu liczbowego, to wskazane jest wywalić apostrofy, bo następuje niepotrzebna konwersja typów, czyli samo id_menager=$manager ...

Na marginesie: manager = kierownik, dyrektor, menedżer, itp... a menagerie = menażeria - zmień, bo jeszcze ktoś z szefostwa się na ciebie obrazi smile.gif

Pozdrawiam, powodzenia.
monika777
dzieki, działa juz... i tego mEnagera tez zmienie snitch.gif mam teraz nastepny problem zwiazany z wyswietlaniem okreslonych numerow polis. Jak wpisuje 12,13,14,18,19 to te polisy mi sie wyświetlaja wiec jest ok, ale zalozenie jest takie ze nr polis mam w pliku excel i jak je zaznacze i skopiuje do okienka to wszystko sie rozwala i nie ma przecinków a przeciez w in(..,..,..) sa przecinki.. jak to obejść? Przeciez nie zmusze osob, zeby recznie wpisywaly nr polis i wstawialy przecinki sad.gif
no_face
W sumie nie trzeba recznie wpisywac przecinkow, jesli to nie sprawia problemu mozna z exela exportowac (zpisac) do pliku txt z dodanymi przecinkami miedzy danymi. Musisz uwazac na spacje i tabulatory, ktore trzeba byloby usunac w tym przypadku.

Jesli jednak ma to byc robione wlasnie w taki sposob o jakim wspominasz to mozesz obejsc to po przez zamiane spacji/tabulatorow wystepujacych pomiedzy nr na przecinki i taki ciag podstawisz do zapytania.
nevt
Dodaj linijkę (przed $sql = ...)
  1. <?php
  2. $polisy= preg_replace('/s+?/', ',', $polisy);
  3. ?>

i powinno pomóc...
monika777
z excela zapisuje jako csv rozdzielany przecinkami..rozdziela srednikami ale tego podobno nie da sie zmienic, wiec otwieram sobie notatnik i robie znajdz i zamien ';' na ','.. moze byc, ale mnie to nie zadowala...

zrobiłam tak:
  1. <?php
  2. $polisy = $_POST['polisy'];
  3. $polisy = preg_replace('/ss+/', ', ', $polisy);
  4. ?>


prawie dobrze dziala, tylko ze musza byc 2 spacje lub 2 tabulatory a ja chce zeby dawal przecinki od razu jak widzi jedna spacje lub tab.. gdzie mam zle?

to co kolega wyzej napisal niestety nie dziala.. blad w linii wyswietla dry.gif

rozwiazałam juz, taki szczegól ale dzieki chlopaki za pomoc snitch.gif
nevt
Działa - jednego przecinka brakowało - czy komunikaty o błędach w kodzie są dla ciebie zrozumiałe? Na formum nie ma parsera składni, często literówki się zdażają...
monika777
tak, literowki to norma.. juz wszystko dziala
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.