Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wartość domyślna
Forum PHP.pl > Forum > Bazy danych
kpjeziorak
Witam
Posiadam w tabeli kilka pól typu INT(5) oraz jedną DATA. Gdy za pomocą formularza dodaję dane do tabeli w wyżej wymienionych polach pojawiają się albo dane które dodaję, albo wartości podpowiednio: 0 i 0000-00-00 - gdy nie podaję żdanych wartości. Przy wyświetlaniu danych z tabeli otrzymują właśnie np. 0 albo 0000-00-00 - wtedy gdy komórka jest pusta. Czy jest możliwość aby puste pola nie wyświetlały nic. A może da się w miesjscu pustych pól wyświetlić znak "?"? Próbowałem z wartościami domyślnymi ale bezskutecznie.
orson
witam

zmień domyślną wartość na NULL ... null się nie wyświetla

pozdrawiam
TomASS
Jeśli dodajesz do bazy danych rekord poleceniem:
  1. <?php
  2.  
  3. $query = "INSERT INTO tablica (Data) VALUES ('$data')";
  4.  
  5. ?>


i $data bedzie puste, albo będzie miało nieprawidłowy format, to właśnie doda się jako 0000-00-00.
kpjeziorak
Tak właśnie zrobiłem i dalej pokazuje mi 0 itp.
Poniżej struktura tabeli:
  1. CREATE TABLE `_zawodnicy` (
  2. `id` int(5) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `imie` varchar(30) NOT NULL DEFAULT '',
  4. `nazwisko` varchar(30) NOT NULL DEFAULT '',
  5. `wzrost` int(5) DEFAULT NULL,
  6. `waga` int(5) DEFAULT NULL,
  7. `data_ur` date DEFAULT NULL,
  8. `msc_ur` varchar(100) NOT NULL DEFAULT '',
  9. `pozycja` varchar(20) NOT NULL DEFAULT '',
  10. `pseudonim` varchar(20) NOT NULL DEFAULT '',
  11. `kariera` text NOT NULL,
  12. `foto` varchar(100) NOT NULL DEFAULT 'http://www.jeziorak-ilawa.pl/baza/pix/brak.jpg',
  13. PRIMARY KEY (`id`)
  14. ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=31 ;


EDIT: tomASS wieć co mogę zrobić w tym przypadku by nie wyświetlało się nic gdy dodam pusty rekord?
kszychu
Cytat(TomASS @ 2005-09-16 10:54:38)
i $data bedzie puste, albo będzie miało nieprawidłowy format, to właśnie doda się jako 0000-00-00.

A jak to się ma do pytania kolegi z pierwszego posta? On sam to zauważył.
@TomASS: proponuję chwilęzastanowić się, zanim udzielisz kolejnej "genialnej" odpowiedzi.

@kpjeziorak: zrób tak, jak podpowiedział Ci Orson, albo parsuj te zera później w php.
TomASS
ehh.....człowiek chciałby być pomocny, a tu jeby na niego lecą :/

@kpjeziorak: Pokaż zapytanie.
kpjeziorak
Poniżej cały kod, który wyświetla mi rekordy z tabeli:

  1. else
  2. {
  3. $zap = mysql_query("SELECT *
  4. FROM _zawodnicy ORDER BY nazwisko");
  5. $lp=1;
  6. echo "<div align=\"center\"><table border=\"1\" bordercolor=\"#FFFFFF\" cellspacing=\"1\" cellpadding=\"2\"><tr><td bgcolor=\"#30D0FF\"><b>L.p.</b></td><td bgcolor=\"#30D0FF\"><b>Nazwisko</b></td><td bgcolor=\"#30D0FF\"><b>Imię</b></td><td bgcolor=\"#30D0FF\"><b>Data ur.</b></td><td bgcolor=\"#30D0FF\"><b>Pozycja</b></td><td bgcolor=\"#30D0FF\"><b>Wzrost</b></td><td bgcolor=\"#30D0FF\"><b>Waga</b></td></tr>";
  7. while ( $row = mysql_fetch_array($zap) ) {
  8. $imie = $row['imie']; $id = $row['id']; $nazwisko = $row['nazwisko']; $data_ur = $row['data_ur']; $pozycja = $row['pozycja']; $wzrost = $row['wzrost']; $waga = $row['waga'];
  9. echo "<tr><td bgcolor=\"#C0E0FF\">$lp</td><td bgcolor=\"#C0E0FF\"><a href=\"zawodnicy.php?id=$id\">$nazwisko</a><br></td><td bgcolor=\"#C0E0FF\"><a href=\"zawodnicy.php?id=$id\">$imie</a></td><td bgcolor=\"#C0E0FF\">$data_ur</td><td bgcolor=\"#C0E0FF\">$pozycja</td><td bgcolor=\"#C0E0FF\">$wzrost</td><td bgcolor=\"#C0E0FF\">$waga</td></tr>";
  10. $lp++;
  11. }
  12. }
  13. echo "</table></div>";
TomASS
Chodziło mi raczej o zapytanie INSERT niż o SELECT, ale tutaj też coś można zrobić:

  1. <?php
  2.  
  3. $data_ur = $row['data_ur'];
  4. if($data_ur=='0000-00-00' OR $data_ur==NULL) $data_ur='';
  5.  
  6. ?>
kszychu
Przy wyświetlaniu tych zerowych wartości daj:
  1. <?php
  2. ((int)$row['wartosc'] != 0 ? $row['wartosc'] : '')
  3. ?>
kpjeziorak
Przykład TomASS`a zadziałał. Twojego kszychu nie próbowałem, ale i tak Wam obu dziękuję.
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.