Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak: funkcja drukuj. zawartość różnych tablic?
Forum PHP.pl > Forum > PHP
herbatniczek
cześć//

mam dane przechowywyane w tablicach, każda ma inne pola. Ponieważ są to produkty - monitory, drukarki utp około 15 tabel, nie chce pisać wyświetlania dla każdej z nich. Czy ktoś wie, jak napisać funkcje, której przekazujemy w parametrze nazwe konkretny rekord tablicy (i jej nazwe jeśli trzeba) i która sama policzy ile jest kolumn w tablicy, i zrobi echo po każdej kolumnie z jednego rekordu - tego w argumencie. W monitorach jest np kolumna przekątna i chce żeby funkcja pobrałą nazwe kolumny - przekątna i wyświetliła zawartość pola w rekordzie, np 17 cali.

Jak wy wyświetlacie informacje o produktach z różnych kategorii? Przecież ilość pól do wyświetlenie zmienia się, a jeśli tabel jest 30, to chyba nie obsługujecie 30 wyświetleń?

DZIKI
herbatniczek
mógłbyś prosze sprecyzować? bo walcze z tym ale nic nie drukuje na ekranie

mam tablice mysql monitory
  1. $zapytanie = "select * from monitory where typ=1";
  2. $wynik = @mysql_query($zapytanie);
  3. $wynik =@mysql_fetch_array($wynik);

teraz mam konkretny rekord i konkretny monitor.

nie podam ile i jakie pola ma tabela monitor.

można teraz jakoś wydrukować dane monitora, w pętli - nazwę kolumny i wartość pola w rekordzie? oczywiście tak aby kod działał na różnych tabelach, dlatego w pętli.
Kod
[B]coś mam
foreach($rekord_opisu as $klucz=>$w){
                  echo $w;}

to dopiero początek, tzn $klucz zawiera nazwy kolumn, ale i tak sie kiełbasi. samo echo $w; wyśiwetla zawartosć rekordu, ale podwójnie każdą daną... czemu/.
rogrog
używaj BB CODE!! mad.gif

dag podał ci rozwiązanie...

  1. <?php
  2.  
  3. $zapytanie = &#092;"select * from monitory where typ=1\";
  4. $wynik = @mysql_query( $zapytanie );
  5.  
  6.  
  7. echo '<table>';
  8. while( $wynik = @mysql_fetch_array( $wynik ) ){
  9.  
  10.  echo '<tr>';
  11.  foreach( $wynik as $key => $value ){
  12. echo '<td>'.$value.'</td>';
  13.  }
  14. echo '</tr>';
  15.  
  16. }
  17. echo '</table>'; 
  18.  
  19.  
  20. ?>
herbatniczek
tak, spoko coś się ruszyło, ale powyższy kod wstawiłem niezmieniony i jest to samo - wyświetla mi podwójnie zawartość rekordu. jest coś w stylu
Kod
Monitory LCD 127''
Monitory LCD 127''
1280 x 1024 px
1280 x 1024 px
450:1
450:1


zamiast <td> używam <br>
rogrog
Cytat(herbatniczek @ 2004-10-23 22:20:05)
wyświetla mi podwójnie zawartość rekordu

no więc albo coś schrzaniłeś gdzie indziej, albo coś źle zmieniłeś w kodzie albo masz podwójnie wpisane w bazie, bo kod jest ok
herbatniczek
zadziałało:
Kod
if (!is_int($key)){
//i tu dopiero echo
}


a swoją drogą, przy tym rozwiązaniu nazwy kolumn będą ze spacjami, i polskimi znakami, np. 'Przekątna obrazu' - czy taka nazwa dla kolumny jest z teorii mysql poprawna?
rogrog
raczej tak, tylko musisz mieć ustawione odpowiednie kodowanie w configu mysql (raczej masz) i pamiętać o zamykaniu nazw kolumn w apostrofy `tabela`.`pole tralala ąśżćół`
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.