• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zaawansowana kwerenda w PHP

VPS Starter Arubacloud
0 głosów
1,514 wizyt
pytanie zadane 27 grudnia 2016 w PHP przez kacperdyba Gaduła (3,290 p.)

Cześć,

 

Mam problem z kwerendą w PHP wysyłaną do bazy danych MySQL.

Gdy wysyłam zwykłą kwerendę ( SELECT xxx From yyy WHERE ccc=aaa ) wszystko działa poprawnie. Problem pojawia się w momencie gdy próbuje wyciągnąć dane z kilku tabel. Fragment kodu:

  $result = $connect->query(
    sprintf('SELECT "preference.MinHour", "preference.MinMin", "preference.MaxHour", "preference.MaxMin", "preference.MeetTime", "users.Name", "users.LastName"
       FROM preference, users WHERE UserID="%s" AND "preference.UserID" = "users.UserID"',
    $id));

    $check= $result->num_rows;

 

W momencie wejścia na stronę wyskakuje błąd:

Notice: Trying to get property of non-object in C:\xampp\htdocs\appmeetings\meetings.php on line 50

odnosi się on do lini:

 $check= $result->num_rows;

 

Czy wiecie może gdzie jest problem?

1 odpowiedź

+1 głos
odpowiedź 27 grudnia 2016 przez hoktaur Pasjonat (22,250 p.)
wybrane 27 grudnia 2016 przez kacperdyba
 
Najlepsza

wydaje mi się że błąd jest w zapytaniu co wyświetla za błędy apache?

W ogóle co wy z tym łączeniem tabel po przecinku może trzeba zainteresować się JOIN i relacjami pomiędzy tabelami

https://www.youtube.com/watch?v=P2YT9PvflUM&index=2&list=PLOYHgt8dIdoymv-Wzvs8M-OsKFD31VTVZ

daj var_dump'a z

sprintf('SELECT "preference.MinHour", "preference.MinMin", "preference.MaxHour", "preference.MaxMin", "preference.MeetTime", "users.Name", "users.LastName"
     FROM preference, users WHERE UserID="%s" AND "preference.UserID" = "users.UserID"',
  $id)

 

komentarz 27 grudnia 2016 przez hoktaur Pasjonat (22,250 p.)
P.S. Ja zawsze zapytanie pisze w czystym SQL (zwłaszcza złożone) a potem wkładam do kodu z miejscem na zmienne ...
komentarz 27 grudnia 2016 przez efiku Szeryf (75,160 p.)
To jeszcze nauczcie się bindować parametry w zapytaniu oboje :)

a nie jakieś sprintf ;P
komentarz 27 grudnia 2016 przez hoktaur Pasjonat (22,250 p.)
a może jakiś przykładzik ?
komentarz 27 grudnia 2016 przez efiku Szeryf (75,160 p.)
http://phpmajster.blogspot.com/2015/05/php-pdo-podstawy-3-bindowanie.html

No, ale mysqli też tam gdzieś ma to ubogie bindowanie .. :)
komentarz 28 grudnia 2016 przez CzikaCarry Szeryf (75,340 p.)
Efik dobrze prawi, sprintf tylko niepotrzebnie zaśmieca zapytanie, jest ono mniej czytelne, a jak wszystko pobiedujesz to będzie git majonez.

Podobne pytania

0 głosów
1 odpowiedź 396 wizyt
+1 głos
1 odpowiedź 1,936 wizyt
pytanie zadane 24 września 2016 w SQL, bazy danych przez Cezary Kania Nowicjusz (130 p.)
0 głosów
1 odpowiedź 857 wizyt

92,453 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...