Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak tu to zmienic?
k_uba
post
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 13.12.2006

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


Mam zapytanie ktore pobiera dane z formularza slowo_klucz. Moj profesorek nakazal aby w formularzu <input> moglo byc wiele pojedynczych slow, ktore maja byc interpretowane w zaptaniu jako: slowo1 OR slowo2 OR ... I co jest najciekawsze nakazal aby to zrobic wbudowana funkcja php a nie zadna inna wlasna czy wyrazeniem regularnym. Ja wpadlaem na funkcje
  1. <?php
  2. ?>
i zrobilem cos takiego:
  1. <?php
  2. $tekst1 =" ";
  3. $tekst2 =" OR dokumenty.slowo_klucz = ";
  4. $baza = $slowo_klucz;
  5. $slowo = str_replace($tekst1, $tekst2, $baza);
  6. ?>


Teraz chce to wrzucic do zapytania:
  1. SELECT Id_dokumenty, Imie, Nazwisko, Nazwa, Rodzaj, Tytul, Rok_wydania, Slowo_klucz, Data_dodania,
  2. plik_nazwa FROM autorzy INNER JOIN dokumenty INNER JOIN dziedzina INNER JOIN file WHERE Id_dokumenty = Id_dziedzina AND Id_dokumenty = Id_autorzy AND id_dokumenty = id_file AND (dokumenty.slowo_klucz = '$slowo') ORDER BY id_dokumenty


I tutaj pojawia sie problem jak jest klauzura WHERE ... AND (dokumenty.slowo_klucz = '$slowo') to samo '$slowo' tez musi zostac zmienione na (dokumenty.slowo_klucz = 'slowo1' OR dokumenty.slowo_klucz= 'slowo2' OR itd)
I jak to ustawic ? Z gory dzieki za rade
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
misieq
post
Post #2





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 1.11.2006

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


Przejżyj sobie funkcję explode, która potrafi 'rozłożyć' stringa na elementy tablicy dzieląc go wg. podanego znaku. Potem przechodząc po tablicy może po kolei "dobudowywać" część zapytania

Coś na tą nutę:

  1. <?php
  2. $czescZapytania = "dokumenty.slowo_klucz = '".$tablicaExplode[0]."'";
  3. for ($i = 1; $i < count($tablicaExplode) - 1; $i++) {
  4. $czescZapytania .= " OR dokumenty.slowo_klucz = '". $tablicaExplode[$i]."'";
  5. ?>


a potem dodajesz to do zapytania sql w sposób:
AND (".$czescZapytania.")

Edit: uważaj na znaki " oraz ' bo mogą się pomylić, ale chyba wiesz co robisz (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

// prosze pamietac o bbcode -- tym razem dodalem

Ten post edytował dr_bonzo 14.01.2007, 17:30:36
Go to the top of the page
+Quote Post

Posty w temacie
- k_uba   Jak tu to zmienic?   14.01.2007, 13:25:26
- - misieq   Przejżyj sobie funkcję explode, która po...   14.01.2007, 14:04:58


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: 6.10.2025 - 07:25