![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 17.09.2014 Skąd: Kraków Ostrzeżenie: (0%)
|
Potrzebuję znaleźć w tabeli pages wiersz, którego wartość name=$entered i wczytać zawartość tego wiersza do jakiejś tablicy.
|
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 183 Pomógł: 14 Dołączył: 27.09.2014 Ostrzeżenie: (0%)
|
coś takiego może ci pomoże Ten post edytował ilidir 5.11.2014, 14:23:31 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 305 Pomógł: 29 Dołączył: 5.07.2011 Ostrzeżenie: (0%)
|
coś takiego może ci pomoże Wszystkie funckje z mysql chyba uważane są już za przestażałem i powinno stosować się mysqli. Ale wszystko inne to tak jak kolega napisał powinno działać. |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 17.09.2014 Skąd: Kraków Ostrzeżenie: (0%)
|
wolałabym nie używać przestarzałych metod
http://php.net/manual/en/function.mysql-query.php Piszę CMS-a i zależy mi na solidnie napisanym kodzie, z którego będę mogła w przyszłości korzystać. Z bazą danych łączę się za pomocą biblioteki PDO Ten post edytował muumiin 6.11.2014, 13:19:31 |
|
|
|
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 340 Pomógł: 46 Dołączył: 31.07.2009 Skąd: A Ostrzeżenie: (0%)
|
Tyle osób na forum pisze własnego CMSa ze możne powinniśmy napisać wspólnego
A wracając do twojego pytania zamiast się męczyć z czystym sql'em możesz użyć czegoś takiego: Medoo Ten post edytował aniolekx 6.11.2014, 14:44:48 |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 17.09.2014 Skąd: Kraków Ostrzeżenie: (0%)
|
chętnie
|
|
|
|
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 340 Pomógł: 46 Dołączył: 31.07.2009 Skąd: A Ostrzeżenie: (0%)
|
ah tak pamiętam ten watek, to chyba raczej pomysł z Medoo nie przejdzie
|
|
|
|
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 278 Pomógł: 36 Dołączył: 9.04.2003 Skąd: Płock Ostrzeżenie: (0%)
|
Mamy 2014 rok, PHP w wersji 5.6 a ludzie mysql_query polecają....
Tu masz dokładnie opisane jak to zrobić przez PDO: http://pl.wikibooks.org/wiki/PHP/Biblioteka_PDO -------------------- d(^^)b
|
|
|
|
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 340 Pomógł: 46 Dołączył: 31.07.2009 Skąd: A Ostrzeżenie: (0%)
|
@slash^ nie ma się co dziwić, w obiegu jest pewnie sporo przeterminowanych książek do PHP / tutoriali, z których ludzie się uczą i nie wiedza jakie są standardy.
|
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 17.09.2014 Skąd: Kraków Ostrzeżenie: (0%)
|
I dlatego wujek google często zawodzi w tych kwestiach... Co wpiszę pytanie, to wyskakują mi odpowiedzi sprzed kilku lat... Szukanie ma sens jak się ustawi filtr na świeże daty
@slash^ a pomógłbyś mi napisać takie zapytanie? skleciłam taki kod, ale niestety nie działa...
mam połączenie z biblioteką, zmienna $entered też jest w porządku, bo wyświetla mi się napis o tym, że strona o tej nazwie nie została odnaleziona... w bazie mam jeden wiersz jak na razie (później ma być ich więcej), name='rejestracja', ale gdy $entered='rejestracja', to i tak wyświetla się, że nie odnaleziono... Jak komuś chce się czytać wszystkie kody z moich plików, to mogę wrzucić, ale nie chcę Was tak zanudzać Ten post edytował muumiin 6.11.2014, 22:15:57 |
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%)
|
Zauważ, że zmienną $entered inicjujesz w linii 15 - tuż przed wyświetleniem komunikatu. Dlatego możesz mieć wrażenie, że wcześniej równiez ma prawidłową wartość. A tak nie jest... Przenieś ten global ... do pierwszej linii.
EDIT: Jak ty zedytowałaś, to ja również muszę... lini 9, nie 15. Ten post edytował mmmmmmm 6.11.2014, 22:22:02 |
|
|
|
Post
#13
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 17.09.2014 Skąd: Kraków Ostrzeżenie: (0%)
|
przeniosłam i dalej to samo...
zmienna entered jest zdefiniowana wcześniej, tutaj tylko wpisuje global $entered, bo ten kod jest w środku funkcji |
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
global nie jest potrzebne, bo tam nie ma żadnej funkcji (w sensie warunku if).
Sprawdź co masz w $entered, może pokaż var_dump($entered); Nie musisz zaciągać wszystkich kolumn i całego wiersza:
-------------------- |
|
|
|
Post
#15
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 17.09.2014 Skąd: Kraków Ostrzeżenie: (0%)
|
w $entered mam tekst wpisany po ukośniku, czyli jeśli wpiszę adres np. localhost/test/rejestracja to $entered ="rejestracja".
w tabeli 'pages' mam wiersz dotyczący tej strony i potrzebuję go po prostu wczytać. Szukam go przez nazwę w kolumnie ('name') |
|
|
|
Post
#16
|
|
|
Grupa: Zarejestrowani Postów: 342 Pomógł: 15 Dołączył: 30.08.2011 Ostrzeżenie: (0%)
|
Wyświetl zawartość $entered.
Co jest trzymane w $entered przed wysłaniem zapytania? W necie jest sporo poradników, z tym, że większosć jest bezużyteczna. Nauczysz się czegoś a za chwilę dowiadujesz się, że są inne standardy. Ten post edytował Boshi 6.11.2014, 23:50:17 |
|
|
|
Post
#17
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 17.09.2014 Skąd: Kraków Ostrzeżenie: (0%)
|
Zrobiłam tak jak mówi @trueblue po if dałam
Gdy wpiszę adres_mojej_strony/rejestracja wyskakuje napis: Strona rejestracja nie istnieje. Ale w bazie danych ona jest. Połączenie z bazą mam na pewno, bo logowanie na stronie działa. |
|
|
|
Post
#18
|
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
Pokaż co daje wynik:
var_dump($entered); -------------------- |
|
|
|
Post
#19
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 17.09.2014 Skąd: Kraków Ostrzeżenie: (0%)
|
@trueblue
przy wpisaniu adres_mojej_strony/rejestracja: string(11) "rejestracja" |
|
|
|
Post
#20
|
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
Jesteś pewna, że istnieje wiersz dokładnie z taką wartością?
Jakiego typu jest kolumna 'name'? -------------------- |
|
|
|
Post
#21
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%)
|
Pokaż kod po zmianach
|
|
|
|
Post
#22
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 17.09.2014 Skąd: Kraków Ostrzeżenie: (0%)
|
jestem pewna, sprawdzałam kilka razy. Typ kolumny name to text
|
|
|
|
Post
#23
|
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
To sprawdź czy nie ma enter na końcu wartości w tym polu.
-------------------- |
|
|
|
Post
#24
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 17.09.2014 Skąd: Kraków Ostrzeżenie: (0%)
|
@turson
w bazie mam dwa wiersze, w jednym name='rejestracja', w drugim name='strona'. I nie chce się wczytać nawet jak $entered='rejestracja' lub 'strona'. @trueblue właśnie sprawdziłam, nie ma żadnych białych znaków... |
|
|
|
Post
#25
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%)
|
Nazwy kolum bierze się w ` a nie '
Wystarczyłoby obsługiwać błędy zapytań PDOException i od razu wiadomo. Ten post edytował Turson 7.11.2014, 11:18:22 |
|
|
|
Post
#26
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 |
@Turson akurat to co wskazales, nie generuje bledu zapytania, wiec jesli o to chodzi nadal by nie bylo nic wiadomo.
Ale tak, warto by włączyc rzucanie wyjatkow i sprawdzic czy w ogole połączylo się z bazą lub czy w ogole wykonalo sie poprawnie zapytanie. Wiele rzeczy po drodze moglo pojsc nie tak, a nikt tego tutaj nie sprawdza. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
|
Post
#27
|
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
Turson,
ale to nie spowoduje błędu. A tym bardziej, powinno jej dać wynik pozytywny, choć niekoniecznie zgodny z prawdą. -------------------- |
|
|
|
Post
#28
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 17.09.2014 Skąd: Kraków Ostrzeżenie: (0%)
|
Dzięki @Turson, wychodzą moje braki w podstawowej wiedzy...
poprawiłam, ale dalej nie działa |
|
|
|
Post
#29
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%)
|
Nie generuje a powinno...
|
|
|
|
Post
#30
|
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
Nie:) Bo wyciąga stałe bez aliasów.
-------------------- |
|
|
|
Post
#31
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 |
Cytat Nie generuje a powinno... Widac nie tylko autorka tematu ma tu luki w podstawach @muumiin ustaw w PDO by rzucalo wyjątkami gdy cos bedzie nie tak. To moze wkoncu cos na ekranie sie pojawi -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
|
Post
#32
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%)
|
Acha
możesz sprawdzić co siedzi w $istnieje i $entered dla pewnosci za wykonaniem zapytania, czyli var_dump |
|
|
|
Post
#33
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 17.09.2014 Skąd: Kraków Ostrzeżenie: (0%)
|
@turson
w entered jest to co wpiszę w adresie po / (już używałam tej funkcji do sprawdzenia,czy aby na pewno) istnieje jest puste (bo wykonuje się to co w pętli if) @nospor wyskakuje: Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected' in C:\WebServ\httpd\startuj\templates\include\dbpages.php:17 Stack trace: #0 C:\WebServ\httpd\startuj\templates\include\dbpages.php(17): PDOStatement->execute(Array) #1 C:\WebServ\httpd\startuj\index.php(9): dbPages('rejestracja') #2 {main} thrown in C:\WebServ\httpd\startuj\templates\include\dbpages.php on line 17
|
|
|
|
Post
#34
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 |
No brawo, w koncu...
Invalid catalog name: 1046 No database selected' Chyba nie trzeba tego tlumaczyc? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
|
Post
#35
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 17.09.2014 Skąd: Kraków Ostrzeżenie: (0%)
|
może się nie znam, ale dla mnie brzmi to, jak gdyby nie było połączenia z bazą...
Problem w tym, że mam takie połączenie, bo logowanie się działa... Chyba że jednak o co innego chodzi? Przed logowaniem i przed szukaniem strony mam identyczny kod:
|
|
|
|
Post
#36
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 |
Ileż to razy ja już na tym forum slyszalem: "mam identyczny kod" ....
Komunikat bledu mowi, że nie wybrano bazy. Sprawdz wszystkie zmienne dokładnie. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
|
Post
#37
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 17.09.2014 Skąd: Kraków Ostrzeżenie: (0%)
|
Chyba mi łeb ukręcicie... Na początku każdego pliku załączałam config.php, a tutaj zapomniałam...Więc rzeczywiście nie było połączenia z bazą... Dzięki za pomoc i cierpliwość Ten post edytował muumiin 7.11.2014, 12:27:35 |
|
|
|
Post
#38
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 |
Cytat a tutaj zapomniałam... Aby unikac tak glupich bledow, nalezy wyswietlac wszystkie bledyTu masz napisane jak Temat: Jak poprawnie zada pytanie zastosuj sie do tego obowiązkowo -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
|
![]() ![]() |
|
Aktualny czas: 20.08.2025 - 01:38 |