Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Nie dziala sumowanie
di@blo
post
Post #1





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 9.03.2005

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


Mam 2 problemy:

Pierwszy to taki ze mam zapytanie a w nim funkcjes SUM ktora ma mi zliczyc wartosci w kolumnie Przyjalem wariant wszedzie przedstawiany

  1. SELECT SUM(kolumna) AS suma FROM tabela


i wyskrobalem cos takiego

  1. mysql_query("SELECT odp, ilosc, SUM(ilosc) AS suma FROM $odpowiedzi") OR die(mysql_error());


niestety wywala mi blad "Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause"
Niby po dodaniu GROUP BY odp dziala ale zalezy mi na jak najwiekzej poprawnosci kodu Pozatym wyswietla w kolejnosci alfabetycznej a nie w takiej jak dodano do bazy

Drugi to problem z zapytaniem

  1. .
  2. mysql_query("SELECT pytanie, odpowiedzi FROM sonda WHERE id = (SELECT wartosc FROM ustawienia WHERE ust = 'sonda') ")
  3. .


Wywala blad "Something is wrong in your syntax obok 'sonda' )'' w linii 1" Probuje roznych kombinacji cudzysloow i komunikat sie zmienia ale ogolnie o to samo zgasza blad a Jak rozbije to na 2 zapytania dziala ok

Z gory dziekuje za pomoc
Go to the top of the page
+Quote Post
JoShiMa
post
Post #2





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


No przecież masz odpowiedź:
Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause

Założę się, że jak zapiszesz:
  1. mysql_query("SELECT SUM(ilosc) AS suma FROM $odpowiedzi") OR die(mysql_error());

to zadziała.

A tak zadziała?
  1. mysql_query("SELECT pytanie, odpowiedzi FROM sonda WHERE id IN (SELECT wartosc FROM ustawienia WHERE ust = 'sonda') ")
Go to the top of the page
+Quote Post
di@blo
post
Post #3





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 9.03.2005

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


co do
  1. .
  2. mysql_query("SELECT pytanie, odpowiedzi FROM sonda WHERE id IN (SELECT wartosc FROM ustawienia WHERE ust = 'sonda') ");
  3. .

rezultat jest taki "Something is wrong in your syntax obok 'SELECT wartosc FROM ustawienia WHERE ust = 'sonda')' w linii 1"

a co do
  1. mysql_query("SELECT SUM(ilosc) AS suma FROM $odpowiedzi") OR die(mysql_error());

jak najbardziej dziala ale jak dorzuce ine kolumy to sie wysypuje
  1. mysql_query("SELECT odp, ilosc, SUM(ilosc) AS suma FROM $odpowiedzi")

ten sam blad co na poczatku

mam jeszcze jedno pytanko czy da sie zrobic autoinkrementacje pola?
  1. mysql_query("UPDATE $sonda SET ilosc=ilosc+1 WHERE odp='$odp' ")

cos w tym stylu tylko zamiast ilosc=ilosc+1 cos co by incrementowalo wartosc tej kolumny
Go to the top of the page
+Quote Post
JoShiMa
post
Post #4





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Przecież masz czarno na białym napisane że połączenie SUM z innymi typami kolumn "is illegal' no tak trudno zrozumieć, że nie wolno? Co do drugiego problemu to upewnij się, czy masz prawidłowo wpisane wartości tabel i kolumn, oraz, że podzapytanie nie zwraca przypadkiem NULL.



Cytat(di@blo @ 2.04.2008, 18:06:18 ) *
mam jeszcze jedno pytanko czy da sie zrobic autoinkrementacje pola?
  1. mysql_query("UPDATE $sonda SET ilosc=ilosc+1 WHERE odp='$odp' ")

cos w tym stylu tylko zamiast ilosc=ilosc+1 cos co by incrementowalo wartosc tej kolumny

Tak, w tabeli trzeba ustawić że to pole ma mieć autoinkrementację, wtedy nie ustawiasz jego wartości w zapytaniu tylko zamo się ustawia na kolejną wartość.

Teraz ja z kolei mam pytanie. Zaglądałeś w ogóle do jakiegokolwiek kursu SQLa albo do manuala? Bo zadajesz tak podstawowe pytania, że to aż boli.

Ten post edytował JoShiMa 2.04.2008, 19:12:37
Go to the top of the page
+Quote Post
di@blo
post
Post #5





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 9.03.2005

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


Po pierwsze wystarczylo napisac ze sum() nie moze wystepowac z innymi polami a w zadnym kursie sie tego nie doszukalem Nie zadaje pytan tutaj bo nie chce mi sie szukac

Co do podzapytania to juz dawno sprawdzilem to. Jak calosc podziele na 2 zapyatnia
  1. mysql_query("SELECT wartosc FROM ustawienia WHERE ust = 'sonda' ") OR die(mysql_error());
  2. mysql_query("SELECT pytanie, odpowiedzi FROM sonda WHERE id='$sond'") OR die (mysql_error());

dziala bez zarztu

a co o inkrementacji to nie jestem az tak tepy zeby tego nie wiedziec ze da sie ustawic autoinkrementacje, moze nie o konca dobrze sie wyrazilem Potrzebuje takiego rozwiazania zeby po sprawdzeniu warunku zwiekszalo licznik w odpowiednim polu o jeden

Ten post edytował di@blo 2.04.2008, 19:27:21
Go to the top of the page
+Quote Post
JoShiMa
post
Post #6





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Cytat(di@blo @ 2.04.2008, 18:25:56 ) *
Po pierwsze wystarczylo napisac ze sum() nie moze wystepowac z innymi polami a w zadnym kursie sie tego nie doszukalem Nie zadaje pytan tutaj bo nie chce mi sie szukac

Co do podzapytania to juz dawno sprawdzilem to. Jak calosc podziele na 2 zapyatnia
  1. mysql_query("SELECT wartosc FROM ustawienia WHERE ust = 'sonda' ") OR die(mysql_error());
  2. mysql_query("SELECT pytanie, odpowiedzi FROM sonda WHERE id='$sond'") OR die (mysql_error());

dziala bez zarztu

a co o inkrementacji to nie jestem az tak tepy zeby tego nie wiedziec ze da sie ustawic autoinkrementacje, moze nie o konca dobrze sie wyrazilem Potrzebuje takiego rozwiazania zeby po sprawdzeniu warunku zwiekszalo licznik w odpowiednim polu o jeden


A ile rekordów zwraca Ci to pierwsze zapytanie?

Ten post edytował JoShiMa 2.04.2008, 19:36:01
Go to the top of the page
+Quote Post
di@blo
post
Post #7





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 9.03.2005

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


Mam cos takiego

  1. $wykonaj3 = mysql_query("SELECT wartosc FROM ustawienia WHERE ust = 'sonda' ") OR die(mysql_error());
  2. $tab3 = mysql_fetch_array($wykonaj3);
  3.  
  4. $wykonaj = mysql_query("SELECT pytanie, odpowiedzi FROM sonda WHERE id='$tab3[0]' ") OR die (mysql_error());
  5. while($tab = mysql_fetch_array($wykonaj))
  6. {
  7. $pytanie = $tab['pytanie'];
  8. $odpowiedzi = 'sond_'.$tab['odpowiedzi'];
  9. }


Sprawdzilem to pierwsze zwraca tylko 1 rekord
Go to the top of the page
+Quote Post
woj_tas
post
Post #8





Grupa: Zarejestrowani
Postów: 230
Pomógł: 36
Dołączył: 31.03.2006
Skąd: Zielona Góra

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


Po pierwsze.

Czy tu:
Cytat
Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause

pisze, że nie można łączyć SUM z innymi kolumnami (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Nie. Można łączyć, ale należy pogrupować (GROUP BY)

Cytat(JoShiMa @ 2.04.2008, 18:12:25 ) *
Tak, w tabeli trzeba ustawić że to pole ma mieć autoinkrementację, wtedy nie ustawiasz jego wartości w zapytaniu tylko zamo się ustawia na kolejną wartość.

Klucz główny o którym piszesz inkrementuje się podczas dodawania nowych wartosci a nie modyfikacji

Cytat(JoShiMa @ 2.04.2008, 18:12:25 ) *
Teraz ja z kolei mam pytanie. Zaglądałeś w ogóle do jakiegokolwiek kursu SQLa albo do manuala? Bo zadajesz tak podstawowe pytania, że to aż boli.


@JoShiMa: no więc jak jest z tym kursem?
Go to the top of the page
+Quote Post
di@blo
post
Post #9





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 9.03.2005

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


Co do pierwszego to zrobilem grupowanie po Id co nie wplywa na kolejnosc

Co do inkrementacji to sie mylisz to co wkleilem dziala
  1. mysql_query("UPDATE $sonda SET ilosc=ilosc+1 WHERE odp='$odp' ") ;

Poszukalem troche jeszcze i znalazlem identyczne rozwiazanie co sklonilo mnie do szukania bledu u siebie i znalazlem teraz wszystko smiga jak nalezy

Co do kursow to przeszukiwalem pod katem znalezienia konkretnej odpowiedzi a nie czytania calosci To jak czytanie calej encyklopedi zeby znalesc wiadomosci na temat jednego hasla

Poswiecilem sie i poszukalem stronki z ktorych korzystalem (bylo wiecej ale nie chce mi sie wszystkich szukac)
http://www.w3schools.com/sql/func_sum.asp
http://dev.mysql.com/doc/refman/5.0/en/gro...ml#function_sum

Najpierw sam probuje rozwiazac jak nie umiem szukam jak nie znajduje pytam

JoShiMa zajrzyj sobie nawet w manualu nie ma nic o mieszaniu sum() z innymi polami dlatego nie rozumialem o co chodzi Sam sobie lepiej poradzilem, a ty nie rozumiesz pytan a nazywasz je podstawowymi problemami

Dalej nie rozwiazalem problemu
  1. .
  2. mysql_query("SELECT pytanie, odpowiedzi FROM sonda WHERE id = (SELECT wartosc FROM ustawienia WHERE ust = 'sonda') ");
  3. .


ale bede szukal bledu (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował di@blo 2.04.2008, 21:45:33
Go to the top of the page
+Quote Post
woj_tas
post
Post #10





Grupa: Zarejestrowani
Postów: 230
Pomógł: 36
Dołączył: 31.03.2006
Skąd: Zielona Góra

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


Cytat(di@blo @ 2.04.2008, 20:39:33 ) *
Dalej nie rozwiazalem problemu
  1. .
  2. mysql_query("SELECT pytanie, odpowiedzi FROM sonda WHERE id = (SELECT wartosc FROM ustawienia WHERE ust = 'sonda') ");
  3. .

ale bede szukal bledu (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)


A jaki wynik otrzymujesz? Błąd czy złe wartości? Zapytanie wydaje sie poprawne. Najlepiej pokaż cała strukturę tabel sondy.

Ten post edytował woj_tas 2.04.2008, 22:02:45
Go to the top of the page
+Quote Post
JoShiMa
post
Post #11





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Cytat(woj_tas @ 2.04.2008, 20:18:56 ) *
@JoShiMa: no więc jak jest z tym kursem?

Mam nadzieję, że nie masz na myśli kursu konwersacji, bo co innego znajomość SQL a co innego próba zrozumienia czyjegoś problemu. No ale nie róbmy
OT.

Cytat(woj_tas @ 2.04.2008, 21:01:47 ) *
A jaki wynik otrzymujesz? Błąd czy złe wartości? Zapytanie wydaje sie poprawne. Najlepiej pokaż cała strukturę tabel sondy.


No to co z tym kursem? Tym razem na spostrzegawczość;)

Cytat
"Something is wrong in your syntax obok 'SELECT wartosc FROM ustawienia WHERE ust = 'sonda')' w linii 1"


Ten post edytował JoShiMa 3.04.2008, 09:02:41
Go to the top of the page
+Quote Post
di@blo
post
Post #12





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 9.03.2005

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


Jak wyzej blad
"Something is wrong in your syntax obok 'SELECT wartosc FROM ustawienia WHERE ust = 'sonda')' w linii 1"
jak to samo zapyanie zlozone rozbije na 2 proste to jest ok i dziala
Go to the top of the page
+Quote Post

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: 15.09.2025 - 15:43