Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Pobieranie danych i modyfikacje na grupie
Lelek919
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 28.08.2009

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


Witajcie,

mam do was prośbę o pomoc w nakierowaniu na rozwiązanie problemu.
Posiadając bazę danych o takiej strukturze:

id nazwa
1 ala
2 ala
3 kot
4 pies
5 buda
6 buda
7 kotek

chciałbym pobrać te wyniki zapytaniem mysql, stworzyć grupę z kolumny nazwa, dopisać tekst do pobranych danych, a następnie wyświetlić aby otrzymać taką formę:

ala - grupa 1
ala - grupa 1
kot - brak grupy
pies - brak grupy
buda - grupa 2
buda - grupa 2
kotek - brak grupy

Ten post edytował Lelek919 31.12.2016, 13:25:23
Go to the top of the page
+Quote Post
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


A gdzie są "teksty", które chcesz przypisać do grup?


--------------------
Go to the top of the page
+Quote Post
Lelek919
post
Post #3





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 28.08.2009

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


Teksty, które chcę dopisać z poziomu php po pobraniu danych z bazy.
Są to przykładowe teksty bardziej chodzi mi o to w jaki sposób wykonać zapytanie aby po nazwie stworzyć grupę(
SELECT nazwa FROM przeszukiwanaTabela GROUP BY nazwa
) i na niej wykonać operację dopisania tekstu z poziomu php.
Go to the top of the page
+Quote Post
trueblue
post
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Jeśli chcesz uzyskać wynik jaki podałeś wyżej, to nie jest potrzebne GROUP BY.
Z GROUP BY lub bez, zapytanie jest poprawne.


--------------------
Go to the top of the page
+Quote Post
Lelek919
post
Post #5





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 28.08.2009

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


Jeżeli znasz odpowiedź możesz mnie nakierować w jaki sposób do takich samych nazw dopisać jakiś tekst (dla danej grypy coś dopisać tekst nie gra roli może to być test1 test2 itp. ważne aby dla wyników pojedynczych nie był dopisywany test1/2/3/4/itp)
Go to the top of the page
+Quote Post
trueblue
post
Post #6





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


W MySQL potrzeba jest do tego odrębna tabela, wtedy łączysz obydwie tabele poprzez LEFT JOIN.
W PHP nazwy i teksty możesz przechowywać w tabeli asocjacyjnej, a wynik otrzymasz obrabiając dane w pętli lub przez array_walk.


--------------------
Go to the top of the page
+Quote Post
Lelek919
post
Post #7





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 28.08.2009

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


Dzięki za chęć pomocy, rozwiązałem to w taki sposób (piszę dla tych co może kiedyś będą mieć podobny banalny problem ale się na nim zawieszą smile.gif )

zapytaniem pobrałem dane i w pętli dodawałem je do tablicy poprzez array_push();

następnie w pętli przeszukiwałem tablice po jednym elemencie i porównywałem z n+1 elementem tablicy jeżeli wyniki były sobie równe to dopisywałem do nich tekst dodatkowo aby złapać ostatni element tablicy porównywałem z elementem n-1

Przykład:
  1. for($i=0; $i<count($tab); $i++){
  2. if($tab[$i]==$tab[$i+1] || $tab[$i-1]==$tab[$i]){
  3. echo $tab[$i].' - grupa<br/>';
  4. }else{
  5. echo $tab[$i].' - brak grypy<br/>';
  6. }
  7. }


pozdrawiam
Go to the top of the page
+Quote Post

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 Aktualny czas: 20.08.2025 - 01:07