Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> pętla i mysql
Smoker
post
Post #1





Grupa: Zarejestrowani
Postów: 101
Pomógł: 5
Dołączył: 15.10.2008
Skąd: Wrocław

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


no to najpierw opisze problem... tak w skrócie: pętlą typu while wyciągam dane z bazy danych i wyświetlam je za pomocą echo... ale jak to teraz zrobić że jeśli te dane się powtarzają to żeby wypisał to tylko raz ?

moja baza wygląda tak: id | nazwa | kategoria i jak się domyślacie w kategorii powtarzają się wyniki a na ekranie chce otrzymać coś takiego:

kategoria 1
nazwa1
nazwa2
kategoria 2
nazwa3
nazwa4

a z normalnej pętli wyszlo mi tak, ze kategoria 1 i wszystko co w niej pokazał mi 2 razy dlatego ze są 2 nazwy z tą samą kategorią i nie wiem jak wyeliminowac to powtarzanie się


--------------------
http://streetonline.pl/?gback=1 - Kliknij i daj się podwieźć
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




a dopiero co pare dni temu pisalem o grupowaniu wynikow:
http://nospor.pl/grupowanie-wynikow-n35.html
smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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





Grupa: Zarejestrowani
Postów: 16
Pomógł: 3
Dołączył: 14.01.2009

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


Kod
$kategoriaq = "SELECT kategoria FROM katalog ORDER BY kategoria DESC";
    $katq = mysql_query($kategoriaq);
    
    while($results = mysql_fetch_assoc($katq)){
    $kt2[] = $results['kategoria']);
    }
    
    for($i=0;$i<count($kt2);$i++){
    $f = $kt2[$i];
    
    if(!empty($kt2[$i+1])){
    
    $ch = $kt2[$i+1];
    $t = ereg($f, $ch);
    
    if($t==false)$kt1[] = $kt2[$i];
    }
    }
    
    for($i=0;$i<count($kt1);$i++) {
    
    $name_q = "SELECT nazwa FROM katalog WHERE karegoria='$kt1[$i]' ";
    $name_r_q = mysql_query($name_q);
    
    $string_out .= 'Kategoria : '.$kt1[$i]."\n"';
    
    while($res = mysql_fetch_array($name_r_q)){
$nazwy[] = $res[0];
     }
for($i=0;$i<count($nazwy);$i++){
    $f = $nazwy[$i];
    
    if(!empty($nazwy[$i+1])){
    
    $ch = $nazwy[$i+1];
    $t = ereg($f, $ch);
    
    if($t==false)$out[] = $nazwy[$i];
    }
    }
for($i=0;$i<count($out);$i++){
$string_out .= $i.' Nazwa : '.$out[$i];
  
}
  }


Ten post edytował robar12 1.04.2009, 13:04:05
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@robar12 w linku co podalem, masz napisane ze takie rozwiązanie jak Twoje jest bardzo nieoptymalne winksmiley.jpg

ps: uzywaj wlasciwego bbcode


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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: 19.08.2025 - 18:04