Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Pobieranie danych i modyfikacje na grupie
Forum PHP.pl > Forum > PHP
Lelek919
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
trueblue
A gdzie są "teksty", które chcesz przypisać do grup?
Lelek919
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.
trueblue
Jeśli chcesz uzyskać wynik jaki podałeś wyżej, to nie jest potrzebne GROUP BY.
Z GROUP BY lub bez, zapytanie jest poprawne.
Lelek919
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)
trueblue
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.
Lelek919
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.