Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP][MySQL] Jak znaleźć wiersz w tabeli Mysql
muumiin
post 5.11.2014, 13:59:20
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.
Go to the top of the page
+Quote Post
Randallmaster
post 5.11.2014, 14:03:44
Post #2





Grupa: Zarejestrowani
Postów: 677
Pomógł: 11
Dołączył: 18.11.2009

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


Zapytanie:

  1. SELECT * FROM pages WHERE name=$entered


Potrzebować będziesz takie komendy:
mysql_query
mysql_fetch_array

PS. oczywiście musisz mieć połączenie z bazą danych

Ten post edytował Randallmaster 5.11.2014, 14:05:10
Go to the top of the page
+Quote Post
ilidir
post 5.11.2014, 14:22:56
Post #3





Grupa: Zarejestrowani
Postów: 183
Pomógł: 14
Dołączył: 27.09.2014

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


  1. mysql_connect('localhost', 'uzytkownik', 'haslo') or
  2. die('Nie można się połączyć: ' . mysql_error());
  3. mysql_select_db('baza');
  4.  
  5. $zmienna = SELECT * FROM pages WHERE name=$entered
  6.  
  7. $sql = mysql_query($zmienna);
  8. while ($tabela = mysql_fetch_array($sql, MYSQL_NUM)) {
  9. printf (tabela[0], tabela[1]);
  10. }


coś takiego może ci pomoże

Ten post edytował ilidir 5.11.2014, 14:23:31
Go to the top of the page
+Quote Post
grzes999
post 5.11.2014, 14:25:53
Post #4





Grupa: Zarejestrowani
Postów: 305
Pomógł: 29
Dołączył: 5.07.2011

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


Cytat(ilidir @ 5.11.2014, 14:22:56 ) *
  1. mysql_connect('localhost', 'uzytkownik', 'haslo') or
  2. die('Nie można się połączyć: ' . mysql_error());
  3. mysql_select_db('baza');
  4.  
  5. $zmienna = SELECT * FROM pages WHERE name=$entered
  6.  
  7. $sql = mysql_query($zmienna);
  8. while ($tabela = mysql_fetch_array($sql, MYSQL_NUM)) {
  9. printf (tabela[0], tabela[1]);
  10. }


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ć.
Go to the top of the page
+Quote Post
muumiin
post 6.11.2014, 13:18:50
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
Go to the top of the page
+Quote Post
aniolekx
post 6.11.2014, 14:38:51
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 wink.gif ?

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
Go to the top of the page
+Quote Post
muumiin
post 6.11.2014, 14:42:16
Post #7





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 17.09.2014
Skąd: Kraków

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


chętnie wink.gif wiem,że cms-a powinny pisać osoby, które się znają na rzeczy, ale niestety mój szef od praktyk jest innego zdania wink.gif
Go to the top of the page
+Quote Post
aniolekx
post 6.11.2014, 14:48:04
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 smile.gif
Go to the top of the page
+Quote Post
slash^
post 6.11.2014, 15:18:19
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
Go to the top of the page
+Quote Post
aniolekx
post 6.11.2014, 16:04:02
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.
Go to the top of the page
+Quote Post
muumiin
post 6.11.2014, 22:14:56
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 wink.gif

@slash^ a pomógłbyś mi napisać takie zapytanie?

skleciłam taki kod, ale niestety nie działa...
  1. $stmt = $db->prepare("SELECT * FROM pages WHERE name=?");
  2. $stmt->execute(array($entered));
  3. $row = $stmt->fetch(PDO::FETCH_ASSOC);
  4. if($stmt->rowCount()>0){
  5. echo 'Strona' . $entered. 'odnaleziona';
  6.  
  7. }
  8. else{
  9. global $entered;
  10. echo 'Strona '.$entered. ' nie odnaleziona<br/>';
  11. }


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ć wink.gif

Ten post edytował muumiin 6.11.2014, 22:15:57
Go to the top of the page
+Quote Post
mmmmmmm
post 6.11.2014, 22:20:33
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
Go to the top of the page
+Quote Post
muumiin
post 6.11.2014, 22:30:32
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
Go to the top of the page
+Quote Post
trueblue
post 6.11.2014, 22:38:55
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:
  1. $stmt = $db->prepare("SELECT 1 FROM pages WHERE name=?");
  2. $stmt->execute(array($entered));
  3. $istnieje=$stmt->fetchColumn(0);
  4. $stmt->closeCursor();
  5. if(empty($istnieje)){
  6. //nie istnieje
  7. }
  8. else{
  9. //istnieje
  10. }


--------------------
Go to the top of the page
+Quote Post
muumiin
post 6.11.2014, 22:51:37
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')
Go to the top of the page
+Quote Post
Boshi
post 6.11.2014, 22:54:20
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
Go to the top of the page
+Quote Post
muumiin
post 7.11.2014, 09:02:27
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
  1. echo 'Strona ' . $entered . ' nie istnieje';


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.
Go to the top of the page
+Quote Post
trueblue
post 7.11.2014, 09:27:58
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);


--------------------
Go to the top of the page
+Quote Post
muumiin
post 7.11.2014, 10:37:20
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"
Go to the top of the page
+Quote Post
trueblue
post 7.11.2014, 10:48:33
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'?


--------------------
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 14:43