Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak zrobić funkcję funkcję wykonującą zapytania na bazie z opcjonalnymi argumentami
nowy_pehapowiec
post
Post #1





Grupa: Zarejestrowani
Postów: 220
Pomógł: 0
Dołączył: 24.08.2009

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


Głupie i pewnie proste ale nie wiem.

Potrzebuje przerobić cześć swoich funkcji tak aby nie wszystkie ich argumenty były wymagane. I nie mam dobrego pomysłu. Chodzi o to, żeby np warunek WHERE był opcjonalny. Tylko, że nie bardzo wiem co wstawić jako warunek żeby zawsze był prawdziwy.

Np
jak wymusić opcjonalność $con i $ord w poniższym zapytaniu?
SELECT * FROM $tab
WHERE $con
ORDER BY $ord

Poratuje ktoś podpowiedzią?

pozdro
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ale może napisz do czego praktycznie to chcesz wykorzystac, bo moze cos za bardzo kombinujesz.

Tu pisalem o opcjonalnych warunkach:
http://nospor.pl/wyszukiwarka-zapytanie-za...runkow-n31.html

order by zrobic nalezy analogicznie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
nowy_pehapowiec
post
Post #3





Grupa: Zarejestrowani
Postów: 220
Pomógł: 0
Dołączył: 24.08.2009

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


OK widzę, że tak samo rozwiązaliśmy ten problem. Myślałem, że w SQL są jakieś dodatkowe mechanizmy zapewniające opcjonalność fragmentów zapytania.

A przy okazji czy wiesz coś na temat:
http://forum.php.pl/index.php?showtopic=133781&hl=

pozdro

Jeszcze jedno pytanko.

Czemu dostaje błąd przy takim warunku
"SELECT * FROM $t WHERE id = $tab['index']"

ale po wstawieniu
SELECT * FROM $t WHERE id = $a
gdzie $a = $tab['index']
wszystko jest już ok

pozdro

Ten post edytował nowy_pehapowiec 27.10.2009, 13:54:46
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




podstaw obslugi stringow
przeczytaj dokladnie 2 razy to:
http://pl.php.net/manual/pl/language.types.string.php

a znajdziesz rozwiązanie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
nowy_pehapowiec
post
Post #5





Grupa: Zarejestrowani
Postów: 220
Pomógł: 0
Dołączył: 24.08.2009

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


OK, widzę, że rozwiązania sa trzy albo nawiasy albo łączenie stringów za pomocą kropki albo wpisywanie indeksów bez apostrofów czy innych znaków. Która z tych opcji najlepiej się tobie sprawdziła w praktyce?

Teraz pytanie czemu tak jest? Co takiego jest w $q = "SELECT * FROM $t WHERE id = $tab['index']" że nie może być poprawnie sparsowane?

pozdro
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Która z tych opcji najlepiej się tobie sprawdziła w praktyce?
jakos nie zwracalem na to uwagi szczegolnie

Cytat
Teraz pytanie czemu tak jest?
To sie pytaj tych od php. Co tam jest? No tam jest apostrof smile.gif

ps: cieszę się, ze przestudiowałeś link dokładnie smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
nowy_pehapowiec
post
Post #7





Grupa: Zarejestrowani
Postów: 220
Pomógł: 0
Dołączył: 24.08.2009

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


No wiem, że apostrof, ale nie wiem czemu miałby powodować jakieś niejednoznaczności i błędy? Przecież jeśli otwieram string znakiem" i w środku mam zmienną z indeksem to czemu u licha nie może być w apostrofach ten indeks - nie rozumiem. Nospor a czy jest jakaś ogólnie przyjęta umowa jaki zapis stosować? Mi najbardziej intuicyjne wydaje się łączenie stringów za pomocą kropki ale to mało wygodne jest, więc albo brak apostrofów albo nawiasy - jak radzisz?

PS
nie mogę sobie poradzić z: http://forum.php.pl/index.php?showtopic=133781&hl=
pomógłbyś mi? Nie wiem co to może być

pozdr
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
ale nie wiem czemu miałby powodować jakieś niejednoznaczności i błędy
pewnie z tego samego powodu co brak srednika na koncu instrukcji powoduje bledy - bo tak.

Cytat
Nospor a czy jest jakaś ogólnie przyjęta umowa jaki zapis stosować
Nie kombinujesz za bardzo? Stosuj tak jak ci wygodnie. Ja w wiekszosci wypadkow stosuje łączenie stringow - bo tak. Choć gdy mam dużo zmiennych wstawic do tekstu to wstawiam bez łączenia.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
nowy_pehapowiec
post
Post #9





Grupa: Zarejestrowani
Postów: 220
Pomógł: 0
Dołączył: 24.08.2009

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


Cytat(nospor @ 28.10.2009, 20:05:11 ) *
pewnie z tego samego powodu co brak srednika na koncu instrukcji powoduje bledy - bo tak.

Cytat(nospor @ 28.10.2009, 20:05:11 ) *
To jedyna rzecz jakiej nie lubię w PHP: średniki i zabawy z " i '
Nie kombinujesz za bardzo? Stosuj tak jak ci wygodnie. Ja w wiekszosci wypadkow stosuje łączenie stringow - bo tak. Choć gdy mam dużo zmiennych wstawic do tekstu to wstawiam bez łączenia.


Pytałem przez ciekawość, zawsze można się czegoś dowiedzieć:)
Np wczoraj widziałem kod znajomego który funkcje w PHP zawsze wywołuje w podobny sposób:

1 Kopiuje z pliku z funkcją jej nazwę i argumenty.
2 Wkleja do skryptu i po znaku = przypisuje każdemu argumentowi wartość.
Twierdzi, że w ten sposób nigdy nie myli argumentów bo zawsze ma ich nazwy w kodzie i są one identyczne jak te w kodzie funkcji. Dla mnie to jest ekstremalnie nienaturalne ale co najmniej osobliwe i interesujące biggrin.gif

pozdro

Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 01:45