Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak skleic kilka rekordow w jeden
Forum PHP.pl > Forum > Przedszkole
Krisss
Siedze caly dzien nad tym i juz wyczerpaly mi sie pomysly :/
Mam cos takiego po wywolaniu zapytania sql:

id_ksiazki ..... tytul ......nazwisko ..... imie ......wydawnictwo ....nazwa_kategorii

33 ..... hehehe ........ Mickiewicz ....... Adam ...... Wydawnictwo ...... Dla m?odzie?y

33 ..... hehehe ...... Balanescu ....... Emilian ...... Wydawnictwo ..... Dla m?odzie?y

33 ..... hehehe ....... Brzęczysz ....... Grzegorz ...... Wydawnictwo ...... Dla m?odzie?y


jak sprawic zeby wyswietlil mi sie tylko jeden wiersz w ktorym Nazwiska i Imienia autorow byly wstawione po prostu po <br> ?

$wynik zwraca mi tytuly kolumn a $wynik1 zawartosc tabeli w bazie

  1. <?php
  2. $wartosc=mysql_num_rows($wynik1); 
  3.  if ($wartosc==0) print "Brak rekordów";
  4.  else 
  5. {
  6.  
  7.  print "<p> Zwrócono rekordów: ";
  8.  print "<p> <FORM method='post'>
  9. <table border='2' cellspacing='2' class='tabela'> <tr>";
  10.  
  11.  $wiersz=mysql_fetch_row ($wynik);
  12.  
  13.  
  14. for ($k=0;$k<count($wiersz);$k++)
  15. {
  16. $nazwa=mysql_field_name($wynik,$k);
  17. print "<td> <b>" . $nazwa . "</b> </td>";
  18. }
  19. for ($i=0;$i<$wartosc;$i++)
  20. {
  21. print "</tr>";
  22. $wiersz=mysql_fetch_row ($wynik1);
  23. for ($j=0;$j<mysql_num_fields($wynik1);$j++)
  24. {  
  25.  
  26.  if ($j==0) $nr=$wiersz[$j]; 
  27.  
  28. print "<td> $wiersz[$j]</td>";
  29.  
  30. }
  31. print "<td><INPUT type='radio' name='row' value='$nr'></td>";
  32. print "</tr>";
  33. }
  34.  
  35.  print "</table>";
  36. }
  37. ?>



EDIT:

Zalacze jeszcze selecta bo moze skonstruowalem niepoprawna relacje (problem jest z relacja wiele do wiele pomiedzy ksiazka i autorzy, wiec mam nowa tabele autorstwo gdzie sa tylko 2 kolumny: id_ksiazki oraz id_autora):
  1. SELECT k.id_ksiazki, k.tytul, a.nazwisko_autora, a.imie_autora, w.nazwa_wydawnictwa, kat.nazwa_kategorii, k.rok_wydania, k.ISBN, k.strony
  2. FROM ksiazka k, autorzy a, wydawnictwo w, kategoria kat, autorstwo aut
  3. WHERE k.id_kategorii=kat.id_kategorii AND k.id_ksiazki=aut.id_ksiazki AND k.id_wydawnictwa=w.id_wydawnictwa AND a.id_autora=aut.id_autora ORDER BY id_ksiazki;
jekyl
ogolnie to zadanie nie wydaje mi sie zeby bylo takie latwe samo w sobie winksmiley.jpg
troche klaniaja sie struktury drzewisate i tablice php

ogolnie ja to robie tak dal malych partii danych, pobierz sobie co tam chcesz i dal postgresa uzyj

  1. <?php
  2. $gm = pg_fetch_all($result);
  3. ?>

to wrzuci Ci caly wynik do tablicy nie pam,etam jak to wyglada w mysql ale to se poszukasz winksmiley.jpg

nastepnie mala jazda z grupowaniem po id_ksiazki wiec robisz to tak

  1. <?php
  2. foreach ($gm as $k=>$v) {
  3. $b = $v['id_ksiazki'];
  4. $q++;
  5. if ($q == 1) {
  6. if ($b != "") { 
  7. $autor[$b][] = array('autor' => $gm[$k]['autor']);
  8. } else {
  9.  return 0;
  10. }
  11. } elseif (array_key_exists($b,$autor)) {
  12.  array_push($autor[$b],array('autor'=>$gm[$k]['autor'])); 
  13. } else {
  14. $autor[$b][] = array('autor'=>$gm[$k]['autor']);
  15. }
  16. }
  17. ?>


u mnie dziala zrobilme to na swiezym przykladzie takze powinno chulac wynik wydrukuj sobie najpierw print_r zeby sprawdzic jak sie po nim poruszac winksmiley.jpg mozesz sobie dopisac reszte pobieranych danych w miejscu $gm[$k]['autor'] kolejna dana do autora itd powodzenia smile.gif mam nadzieje ze pomoze smile.gif
kamiseq
nie rozumiem cie chcesz zeby sql zwrocil ci wynik typu:
nazwisko imie <br> nazwisko2 imie2 <br>.......
co jest bez sensu

a jesli nie to dlaej nie rozumiem
czy nie wystarczy zwykla petla
//nie wiem czemu drugi " jest zamieniany na \". w kazdym razie wiesz o co chodzi:D
  1. <?php
  2. $rslt = mysql_query('select imie, nazwisko from tabela order by id_ksiazki, nazwisko');
  3. $id='';
  4. while( ($row = mysql_fetch_assoc($rslt)) != null)
  5. {
  6. if($id != $row['id_ksiazki'])
  7. {
  8. //masz posortowane id wiec nie zdazy sie ze gdzies nizej bedziesz mial juz przetwa
    rzany id
  9. if($id !='')echo $html_line;
  10. $html_line='';
  11. $id = $row['id_ksiazki'];
  12. }
  13. $html_line .= $row['imie'].' '.$row['nazwisko'].'<br />';
  14. }
  15. echo $html_line;
  16. ?>


ale moze nie rozumiem pytania.
radzilbym tez ci zrobic sobie widok zeby nie babarac sie za kazdym razem z jakims zlozonym selectem
Krisss
Dzieki za sugestie.
Rozwiazanie znalazlem troszke na skroty. Po prostu w moim zapytaniu to co miesza to autorzy. Wyrzucilem ich do osobnego zapytania i pozniej tylko wkleilem w odpowiednim miejscu tabeli wynik tego osobnego zapytania.
Chodzilo mi o to zeby gdy uzytkownik przegladal katalog ksiazek mial wypisana dana pozycje tylko raz, ale z wszystkimi autorami ksiazki czyli:

tytul...................autorzy................wydawnictwo...........liczba...st
ron........itd


przykladowy......egon....................moje wydawnictwo.........1054.....................
..........................edek..................................................
..................................
..........................mietek................................................
.................................
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.