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

question-closed Problem z zapytaniem mysql

Object Storage Arubacloud
–1 głos
180 wizyt
pytanie zadane 10 listopada 2015 w SQL, bazy danych przez jaca121212 Nałogowiec (40,760 p.)
zamknięte 13 listopada 2015 przez jaca121212
if($kategoria == '1'){
		$resultat = $polaczenie->query(sprintf("INSERT INTO `sport` (`login`, `tresc`, `zdjecie`, `data`, `ip`,  `temat`) VALUES ( '%d', '%s','%d', '%s', '%s', '%s')",
	 $_SESSION['id'], $tresc, $_SESSION['image'], $data, $ip, $temat));
	 $dodaj = $polaczenie->query(sprintf("UPDATE uzytkownicy SET punkty=punkty+1 where login=(%d)",
	 $_SESSION['id']));
	 echo"Wybrałeś kategoriię Sport";

Kiedy wybiore kategorię 1 dodaje wpis do bazy ale  nie aktualizuje w bazie uzytkownicy punktów nie wyświetla błędu  i czy ktoś może mi podpowiedzieć jak takie zapytanie zrobić prawidłowo i czy wogóle można połączyć te zapytania w jedno całość jeśli tak jakby to wyglądało . Z góry dzieki za pomoc.

 

 

komentarz zamknięcia: Problem rozwiązany

3 odpowiedzi

+1 głos
odpowiedź 10 listopada 2015 przez Comandeer Guru (601,550 p.)

A po co te nawiasy wokół %d w drugim zapytaniu?

A gdzie obsługa błędów? A gdzie prepared statements? sprintf NIE SŁUŻY do wstawiania danych do zapytania.

komentarz 10 listopada 2015 przez jaca121212 Nałogowiec (40,760 p.)
ok dzieki błąd był w update po where zamiast login dałem id  i wszystko jest ok
0 głosów
odpowiedź 13 listopada 2015 przez jaca121212 Nałogowiec (40,760 p.)

Jako że jest już przeze mnie założony wcześniej temat to napiszę tutaj mój problem.

1. Dobrze robiąc zapytanie do mysql nie pokazuje się żaden błąd tylko problem polega na tym że na stronie jak wyświetlam to pokazuje się tylko jeden wpis z tabeli sport a z tabeli swiat nic się nie pokazuje na stronie ale dziwi mnie to bo jak daje zapytanie do sql w myadmin to  pokazuje się jeden wpis tylko w tym wpisię są wyciągnięte informacje z dwóch tabel jak to można rozdzielić albo jak powinno wyglądać zapytanie  

$resultat = $polaczenie->query(sprintf("SELECT uzytkownicy.user, uzytkownicy.image, swiat.*, uzytkownicy.user, uzytkownicy.image,sport.* from uzytkownicy, swiat, sport where uzytkownicy.id=swiat.login and uzytkownicy.id=sport.login"));

 


user	image	id	login	tresc	zdjecie	data	ip	temat	user	image	id	login	tresc	zdjecie	data	ip	temat
jaca121212	http://ocdn.eu/images/pulscms/NDM7MDA_/b5c5fb9cdc2...	68	46	jjjjjj	0	2015-11-11 20:21:33	37.190.141.217	saddasasd	jaca121212	http://ocdn.eu/images/pulscms/NDM7MDA_/b5c5fb9cdc2...	101	46	test1	0	2015-11-12 08:33:53	37.190.130.86	tews

 

0 głosów
odpowiedź 13 listopada 2015 przez event15 Szeryf (93,790 p.)
Powiedz mi, z jakiej książki się uczysz PHP?
komentarz 13 listopada 2015 przez jaca121212 Nałogowiec (40,760 p.)
Nie ucze się z książek  php  z internetu zdobywam wiedze a pozatym  oglądajac film Pana Mirosława zrobiłem to na jego wzór zapytanie https://youtu.be/P2YT9PvflUM?t=27m54s
komentarz 13 listopada 2015 przez efiku Szeryf (75,160 p.)
Aha, to wszystko jasne ^^ -> http://phptherightway.com
komentarz 13 listopada 2015 przez jaca121212 Nałogowiec (40,760 p.)
Dzięki za lekturę temat do zamknięcia rozwiązałem już problem.
komentarz 13 listopada 2015 przez event15 Szeryf (93,790 p.)
Bardziej chodziło mi o tego sprintfa, którego nie powinno się używać w PHP.
komentarz 13 listopada 2015 przez jaca121212 Nałogowiec (40,760 p.)
A tak na marginesie używa się jeszcze tej funkcji sprintfa
komentarz 13 listopada 2015 przez efiku Szeryf (75,160 p.)
Tak, ale nie do zapytan sql.
komentarz 13 listopada 2015 przez jaca121212 Nałogowiec (40,760 p.)
oki dzieki za info
komentarz 13 listopada 2015 przez event15 Szeryf (93,790 p.)

Nie używa się - jest to z kilku względów złe - chociażby dlatego, że brudzi kod i sprawia, że jest mniej czytelny i zrozumiały. A dodatkowo sprawdza czy napis w niej nie zawiera zmiennych, pod które mógłby podstawić wartości. 

Poza tym to nie C, żeby pisać jak w C. 

W PHP najlepiej jest używać echo:

  • echo ' ' - jeżeli nie mamy zmiennej w apostrofach.

$nowa = 'stara';
echo 'Zmienna $nowa'; // wyświetli dokładnie: Zmienna $nowa

  • echo " " - jeżeli mamy zmienną do wyświetlenia

$nowa = 'stara';
echo "Zmienna $nowa"; // wyświetli dokładnie: Zmienna stara

A już w ogóle było by pięknie tak zapisane:
$nowa = 'stara';
echo "Zmienna {$nowa}";

 

 

komentarz 13 listopada 2015 przez event15 Szeryf (93,790 p.)
No, chyba, że piszesz w PHP CLI. To sobie stosuj.

Podobne pytania

0 głosów
2 odpowiedzi 133 wizyt
pytanie zadane 4 października 2017 w SQL, bazy danych przez Mavimix Dyskutant (8,390 p.)
0 głosów
3 odpowiedzi 166 wizyt
pytanie zadane 27 listopada 2015 w SQL, bazy danych przez michal Mądrala (5,560 p.)
0 głosów
1 odpowiedź 100 wizyt
pytanie zadane 28 grudnia 2016 w PHP przez jarek9244 Gaduła (3,430 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...