Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak tu to zmienic?
Forum PHP.pl > Forum > PHP
k_uba
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
misieq
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 winksmiley.jpg

// prosze pamietac o bbcode -- tym razem dodalem
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.