Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [MySQL][PHP]Ucinanie pierwszego rekordu
bercow
post
Post #1





Grupa: Zarejestrowani
Postów: 156
Pomógł: 11
Dołączył: 25.12.2005

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


Pytam o wszystkie, a nie wiedzieć czemu, i mając 3 rekordy w bazie pokazuje mi tylko 2 o.O. Wynik jak niżej. Pytanie why ?

Numer: 2Autor: user2Data: 2011-04-18 00:40:49
Numer: 3Autor: user3Data: 2011-04-20 01:11:34

  1. <?php
  2.  
  3. require "connection.php";
  4. connection();
  5.  
  6. $query = mysql_query("SELECT * FROM greetings WHERE visible = True");
  7. $g = mysql_fetch_assoc($query);
  8. if(mysql_num_rows($query) > 0) {
  9. while($g = mysql_fetch_assoc($query)) {
  10. $query2 = mysql_query("SELECT username FROM user WHERE id_user='".$g['id_user']."'") or die('Błąd zapytania');
  11. $u = mysql_fetch_assoc($query2);
  12. echo "Numer: ".$g['id_greetings'];
  13. echo "Autor: ".$u['username'];
  14. echo "Data: ".$g['date'];
  15. echo "<br />";
  16. }
  17. }
  1. --
  2. -- Struktura tabeli dla `greetings`
  3. --
  4.  
  5. CREATE TABLE `greetings` (
  6. `id_greetings` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  7. `id_user` int(10) UNSIGNED DEFAULT NULL,
  8. `text` text,
  9. `date` datetime DEFAULT NULL,
  10. `visible` tinyint(1) DEFAULT NULL,
  11. PRIMARY KEY (`id_greetings`)
  12. ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=4 ;
  13.  
  14. --
  15. -- Zrzut danych tabeli `greetings`
  16. --
  17.  
  18. INSERT INTO `greetings` (`id_greetings`, `id_user`, `text`, `date`, `visible`) VALUES
  19. (1, 1, 'Pozdrowienia 1', '2011-04-17 00:40:38', 1),
  20. (2, 2, 'Pozdrowienia 2', '2011-04-18 00:40:49', 1),
  21. (3, 3, 'Pozdrowienia 3', '2011-04-20 01:11:34', 1);

Go to the top of the page
+Quote Post
Bags_Bunny
post
Post #2





Grupa: Zarejestrowani
Postów: 262
Pomógł: 39
Dołączył: 12.04.2004

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


W linii 8 pobierasz pierwszy rekord i nic z nim nie robisz. Usuń tę linię.

Ponadto, poczytaj o instrukcji JOIN, ponieważ niepotrzebnie wykonujesz ogrom zapytań, a wystarczy jedno.
Co więcej, nie polecam używania funkcji mysql_*, ponieważ są mocno przestarzałe. Zainteresuj się PDO lub ewentualnie mysqli.
Go to the top of the page
+Quote Post
Hpsi
post
Post #3





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


A pan królik jak zwykle tylko się wymądrza, daje wskazówki ale kodu nigdy nie napisze (IMG:style_emoticons/default/biggrin.gif) sorry stary ale musiałem w końcu Cie skomentować (IMG:style_emoticons/default/tongue.gif)

fakt faktem, Join w tym zapytaniu napewno by się prdzyał, do do funkcji mysql_*, również się zgadzam.

Co do problemu zobacz tak, pisałem to na szybko ale powinno być ok
  1. <?php
  2. require 'connection.php';
  3. connection();
  4. $query = mysql_query('SELECT `gree`.*, `u`.`username` AS `user_name` FROM `greetings` AS `gree` LEFT JOIN `user` AS `u` ON `gree`.`id_user`=`u`.`id_user` WHERE `gree`.`visible`=1');
  5. if(mysql_num_rows($query) > 0)
  6. {
  7. while($q = mysql_fetch_accoss($query))
  8. {
  9. echo 'Numer: '.$q['id_greetings'].' <br /> Autor: '.$q['user_name'] .' <br /> Data: '.$q['date'].' <br />';
  10. }
  11.  
  12. }
  13.  
  14. ?>


Ten post edytował Hpsi+ 19.04.2011, 10:23:34
Go to the top of the page
+Quote Post
modern-web
post
Post #4





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

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


Cytat
A pan królik jak zwykle tylko się wymądrza, daje wskazówki ale kodu nigdy nie napisze sorry stary ale musiałem w końcu Cie skomentować

Niektórzy trzymają się pewnych reguł - nie dają gotowców. Autor tematu przychodzi tu z pewnym problemem, który nie my mamy za zadanie rozwiązać, lecz on sam. Naszym zadaniem jest pomoc i ewentualna korekta toku myślenia.
Dając gotowe skrypty, facet przekopiuje je do swojego projektu, odpowiednio dopasuje i za godzinę przyleci z kolejnym (nie pamiętając o poprzednim)...
Bags_Bunny dobrze odpowiada - podaje zagadnienia przez co zmusza autora tematu do myślenia.
Sorry, ale musiałem skomentować (IMG:style_emoticons/default/wink.gif)

Pozdrawiam!

edit:
  1. require 'connection.php';
  2. connection();

Po co wywołujesz funkcję connection() po zaimportowaniu pliku połączenia z bazą? Nie lepiej wywołać tę funkcję w connection.php, a potem tylko używać include / require ?
Mi taki sposób wydaje się bardziej optymalny i przejrzysty - patrz powtarzalność kodu php. Przy dużych projektach ma to nieco większe znaczenie ;d

no i jeszcze literówka:
  1. while($q = mysql_fetch_accoss($query))

  1. while($q = mysql_fetch_assoc($query))


Ten post edytował modern-web 19.04.2011, 11:21:48
Go to the top of the page
+Quote Post
Hpsi
post
Post #5





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


Cytat
Bags_Bunny dobrze odpowiada - podaje zagadnienia przez co zmusza autora tematu do myślenia.

Wiem (IMG:style_emoticons/default/smile.gif) też tak uważam, po prostu zrobiłem to dlatego że to mój dobry znajomy i sobie pozwolilem (IMG:style_emoticons/default/wink.gif)

co do literówki, pisałem to na kolanie, nie sprawdzałem działaności kodu - przepraszam za to (IMG:style_emoticons/default/smile.gif)

co do reszty Twoich uwag zgadzam się z Toba, też uważam ze połaczenie w pliku connection.php powinno byc a nie w kazdym pliku koljenym
Go to the top of the page
+Quote Post
modern-web
post
Post #6





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

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


Rozumiem (IMG:style_emoticons/default/biggrin.gif)
Zauważyłem, że ostatnio coś zwiększyła się liczba tematów dot. podstaw. Szkoda, że mało kto przychodzący na forum przeczytał jakąś książkę albo tutorial tego języka.
Rozumiem, że wszyscy chcą dostać rozwiązanie najprościej jak się da (taka natura człowieka ;p) ale trochę wysiłku nie zaszkodzi ^^
Go to the top of the page
+Quote Post
Hpsi
post
Post #7





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


Cytat
Zauważyłem, że ostatnio coś zwiększyła się liczba tematów dot. podstaw.

Powód: rozoczeły się semestry w szkole i na uczelniach gdzie nauczyciele/wykładowcy wymagają tworzenia stron internetowych ... a wiadomo jaka jest natura ludzi (IMG:style_emoticons/default/smile.gif)


Cytat
Szkoda, że mało kto przychodzący na forum przeczytał jakąś książkę albo tutorial tego języka.
Rozumiem, że wszyscy chcą dostać rozwiązanie najprościej jak się da (taka natura człowieka ;p) ale trochę wysiłku nie zaszkodzi ^^

Efekt tego działania jest zaśmiecanie tego dzialu. Wg mnie ludzie którzy piszą w przedszkolu powinni mieć "jakieś" pojęcie o php ... dla ludzi którzy są zieloni i chcą gotowe rozwiązania albo pytają o rzeczy typu jak używać if'a etc, powinno byc osobne subforum, no ale (IMG:style_emoticons/default/smile.gif) mamy co mamy i cieszmy się z Tego co jest:)

dobra bo offtopic się włączył, lepiej to zakończyc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Bags_Bunny
post
Post #8





Grupa: Zarejestrowani
Postów: 262
Pomógł: 39
Dołączył: 12.04.2004

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


Cytat(modern-web @ 19.04.2011, 11:15:05 ) *
Autor tematu przychodzi tu z pewnym problemem, który nie my mamy za zadanie rozwiązać, lecz on sam. Naszym zadaniem jest pomoc i ewentualna korekta toku myślenia.
Dając gotowe skrypty, facet przekopiuje je do swojego projektu, odpowiednio dopasuje i za godzinę przyleci z kolejnym (nie pamiętając o poprzednim)...

Brakowało mi takiej wypowiedzi. Dziękuję!

A Ty Hapsiok sie do roboty zabieraj, a nie gadasz, bo mi miałeś dole odpalić (IMG:style_emoticons/default/tongue.gif) .
Swoją drogą, o USING nie słyszałeś? Po co sobie zasyfiać zapytanie niepotrzebnymi warunkami?
  1. SELECT `gree`.*, `u`.`username` AS `user_name` FROM `greetings` AS `gree` LEFT JOIN `user` AS `u` ON USING(`user_id`) WHERE `gree`.`visible`=1

I jeśli już się czepiamy całości kodu to polecam UTF8 zamiast Latin2. Zużywa co prawda trochę więcej miejsca, ale jest uniwersalniejszy; nie będziesz mieć problemów, jeśli zechcesz dodać inne języki (IMG:style_emoticons/default/smile.gif) .

Co do znajomych, to i tak Hpsi nie jest zły. Wczoraj od innego znajomego dostałem następujące życzenia urodzinowe:
Cytat
Happy Birthday, mofo!

Bywa; miło, że pamietał (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
modern-web
post
Post #9





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

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


Miałeś wczoraj urodziny?
  1. $birth_day = "18.04";
  2. if ($birth_day == true) {
  3. echo "Najlepszego!";
  4. } else {
  5. echo "Innym razem ;d";
  6. }
Go to the top of the page
+Quote Post
Bags_Bunny
post
Post #10





Grupa: Zarejestrowani
Postów: 262
Pomógł: 39
Dołączył: 12.04.2004

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


Dziękuję, dwudzieste pierwsze. Bardzo ładne złożenie dwóch liczb pierwszych.
Go to the top of the page
+Quote Post
modern-web
post
Post #11





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

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


(IMG:style_emoticons/default/smile.gif) Dobra; nie zaśmiecajmy forum. Warn nikomu się nie uśmiecha (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
bercow
post
Post #12





Grupa: Zarejestrowani
Postów: 156
Pomógł: 11
Dołączył: 25.12.2005

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


Widzę, ze się rozrosło wiec, wypada odpowiedzieć (IMG:style_emoticons/default/biggrin.gif)

Cytat(Bags_Bunny @ 19.04.2011, 01:25:31 ) *
Ponadto, poczytaj o instrukcji JOIN, ponieważ niepotrzebnie wykonujesz ogrom zapytań, a wystarczy jedno.
Co więcej, nie polecam używania funkcji mysql_*, ponieważ są mocno przestarzałe. Zainteresuj się PDO lub ewentualnie mysqli.


Własnie czytam klik, ale narazie ciężkie to dla mnie, może masz/macie jakieś inne ciekawe linki dotyczące tego zagadnienia. Co do PDO i mysqli najciekawsze wydaje mi sie link 1 i link 2. Poczytam i postaram sie przyswoić. Stwierdzenie ewentualnie mysqli oznacza, ze lepdzym wyjsciem jest PDO ?

Cytat(modern-web @ 19.04.2011, 11:15:05 ) *
  1. require 'connection.php';
  2. connection();

Po co wywołujesz funkcję connection() po zaimportowaniu pliku połączenia z bazą? Nie lepiej wywołać tę funkcję w connection.php, a potem tylko używać include / require ?
Mi taki sposób wydaje się bardziej optymalny i przejrzysty - patrz powtarzalność kodu php. Przy dużych projektach ma to nieco większe znaczenie ;d


Faktycznie mozna, chociaz chcialem zrobic to troche inaczej, zabijac polaczenie, jezli adres nie ma postaci index.php?...., a np. ...pl/folder/file.php

Cytat(modern-web @ 19.04.2011, 11:37:36 ) *
Zauważyłem, że ostatnio coś zwiększyła się liczba tematów dot. podstaw. Szkoda, że mało kto przychodzący na forum przeczytał jakąś książkę albo tutorial tego języka.


Obecnie opieram sie na tym co pokaze google, PHP5. Bezpieczne programowanie. i PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty, a ostatnia pozycja jest dosyc stara ksiazka.


Cytat(Hpsi+ @ 19.04.2011, 11:45:36 ) *
... dla ludzi którzy są zieloni i chcą gotowe rozwiązania albo pytają o rzeczy typu jak używać if'a etc, powinno byc osobne subforum, no ale (IMG:style_emoticons/default/smile.gif) ...


Myślisz nad utworzeniem sub forum żłobek ? ;)


A tak btw. to w ramach czasu wolnego, przysposobienia wiedzy, i bez innych szczególnych powodów, zacząłem pisać własny CMS, dedykowany pod radia internetowe, wiec wyposażony w pozdrowienia, ramówkę, top listę, statystyki prezenterów et cetera

Ten post edytował bercow 19.04.2011, 14:04:52
Go to the top of the page
+Quote Post
modern-web
post
Post #13





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

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


PDO z zasady jest lepsze bo ma lepszy mechanizm obsługi błędów. MySQLi jest bardziej rozbudowaną wersją MySQL. Ogólnie lepiej od początku ucz się na PDO - łatwiej ogarnąć to za pierwszym razem (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
bercow
post
Post #14





Grupa: Zarejestrowani
Postów: 156
Pomógł: 11
Dołączył: 25.12.2005

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


I może jeszcze jedno, mając jakiś tam większy projekt (2k+ linijek) wiele podstron, warto wszystkie zapytania wywalić od osobnych plików i jedynie lądować je i odwoływać się do jakiś obiektów?

Ten post edytował bercow 19.04.2011, 14:19:17
Go to the top of the page
+Quote Post
Hpsi
post
Post #15





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


Cytat
I może jeszcze jedno, mając jakiś tam większy projekt (2k+ linijek) wiele podstron, warto wszystkie zapytania wywalić od osobnych plików i jedynie lądować je i odwoływać się do jakiś obiektów?

poczytaj sobie o wzrocach mva/mvc
ogolnie przydatne wg mnie jest rozdzielenie kodu na bibliteke / modul / wyswietlanie - bardzo wygodne w dalszej edycji
Go to the top of the page
+Quote Post
modern-web
post
Post #16





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

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


Ogólnie większe serwisy stawia się na frameworkach (Zend Framework / Kohana / Symfony / Cake). Nie warto wymyślać koła na nowo (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
bercow
post
Post #17





Grupa: Zarejestrowani
Postów: 156
Pomógł: 11
Dołączył: 25.12.2005

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


I pewnie z nich skorzystam, ale jak zacząłem czytać o CakePHP to po paru stronach sobie darowałem, na razie czytam co znajdę o OOP w PHP. Musiał bym chyba znaleźć naprawdę dobry poradnik/książkę od A do Z. Większość poradników tłumaczy "jak pogrubić tekst, ale już nie jak podkreślić", są niby od podstaw, ale tłumaczone są banały (dla mnie), a części które nie rozumiem pomijane, chodź to chyba normalne, ciężko się pisze o czymś co jest dla autora oczywistością. Ale damy rade (IMG:style_emoticons/default/tongue.gif)

Na razie pisze, aby działało, pomijając bezpieczeństwo (kod był by dla mnie zbyt nieczytelny), potem zacznę wszystko przekładać w klasy, i ew. zainteresuje się jakimś frameworkiem.

Jak ktoś by chciał zobaczyć, ew. jakieś uwagi to na razie wygląda to tak (IMG:style_emoticons/default/smile.gif)
http://bercow.viphost.pl/radiocms/ strona user1/user1
http://bercow.viphost.pl/radiocms/radiocms.rar kod PHP+SQL

Ten post edytował bercow 19.04.2011, 18:57:38
Go to the top of the page
+Quote Post
mat-bi
post
Post #18





Grupa: Zarejestrowani
Postów: 690
Pomógł: 92
Dołączył: 6.02.2011

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


a czytałeś cookbook? - angielski, ale łatwo zrozumieć

tak samo, jak możesz przeczytać najnowszą książkę do SF 2, też po angielsku, ale jeśli chcesz być programistą to bez angielskiego to jak bez ręki
Go to the top of the page
+Quote Post
Hpsi
post
Post #19





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


Cytat
Ogólnie większe serwisy stawia się na frameworkach (Zend Framework / Kohana / Symfony / Cake). Nie warto wymyślać koła na nowo

szczeże ja nie podzielam tego sposobu myslenia (IMG:style_emoticons/default/smile.gif) ale może dlatego, że cały czas pracuje na "kole" ktore stworzłem (IMG:style_emoticons/default/smile.gif) i jest przystosowane w 100% do moich celów ... i jeszcze jedno jeśli nie zna się php, wchodzic w frameworka to wg mnie sie nie nauczysz porzadnie programować - czasem trzeba coś stworzyć samemu by poczuć to - dopiero potem można przenieś się na frameworki - ale to moje zdanie
Go to the top of the page
+Quote Post
bercow
post
Post #20





Grupa: Zarejestrowani
Postów: 156
Pomógł: 11
Dołączył: 25.12.2005

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


EN nie jest taki problemem, raczej natłok możliwości, i jak zacznę nawet coś, efekt będzie dopiero za miesiąc (IMG:style_emoticons/default/tongue.gif) wiem wiem, inaczej się nie da, ale tak już człowiek ma, ze chciał by tutaj i teraz.

Piszesz o http://book.cakephp.org/ ?
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 00:52