Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> MySQL i Undefined index
Devliniusz
post 4.04.2005, 17:44:57
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 4.04.2005

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


Witam

Mam następujący problem:
W momencie gdy z bazy pobierane są rekordy których wartość jest "pusta" pojawiają się nastepujące ostrzeżenia:
Undefined index: ocena_dow in ... on line ...
Undefined index: ilosc_ocen_dow in ... on line ...
Undefined index: pearl in ... on line ...


Jak temu zaradzić? Oczywiście nie interesuje mnie rozwiązanie typu: "error_reporting = E_ALL & ~E_NOTICE"...

  1. while($wiersz34=mysql_fetch_array($wykonaj34)){
  2. $id_dow_=$wiersz34['id_dow'];
  3. $idkat_dow_=$wiersz34['idkat_dow'];
  4. $dodal_dow_=$wiersz34['dodal_dow'];
  5. $data_dow_=$wiersz34['data_dow'];
  6. $godz_dow_=$wiersz34['godz_dow'];
  7. $tresc_dow_=$wiersz34['tresc_dow'];
  8. $ocena_dow_=$wiersz34['ocena_dow'];
  9. $ilosc_ocen_dow_=$wiersz34['ilosc_ocen_dow'];
  10. $pearl_=$wiersz34['pearl'];
  11. }


--------------------
Od dziś zobowiązuję się do zaspakajania swoich potrzeb w sposób społecznie dostosowany...
Go to the top of the page
+Quote Post
MarcinZ
post 4.04.2005, 17:46:16
Post #2





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 18.03.2004
Skąd: Golub-Dobrzyń

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


a podaj mi jak wyglada tabela do ktorej sie odwolujesz..


--------------------
PHP 4.3.11 apache 1.3.31 i wszystko
Go to the top of the page
+Quote Post
Devliniusz
post 4.04.2005, 17:57:34
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 4.04.2005

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


Tabela wygląda tak:

  1. TABLE `dev_dow` (
  2. `id_dow` int(6) NOT NULL AUTO_INCREMENT,
  3. `idkat_dow` varchar(30) NOT NULL DEFAULT '',
  4. `x_dow` int(1) NOT NULL DEFAULT '0',
  5. `dodal_dow` varchar(22) NOT NULL DEFAULT '',
  6. `data_dow` date NOT NULL DEFAULT '0000-00-00',
  7. `godz_dow` time NOT NULL DEFAULT '00:00:00',
  8. `tresc_dow` text NOT NULL,
  9. `ocena_dow` int(5) DEFAULT NULL,
  10. `ilosc_ocen_dow` int(3) DEFAULT NULL,
  11. `pearl` int(1) DEFAULT NULL,
  12. )


--------------------
Od dziś zobowiązuję się do zaspakajania swoich potrzeb w sposób społecznie dostosowany...
Go to the top of the page
+Quote Post
MarcinZ
post 4.04.2005, 19:39:21
Post #4





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 18.03.2004
Skąd: Golub-Dobrzyń

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


Kod
TABLE `dev_dow` (
`id_dow` int(6) NOT NULL auto_increment,
`idkat_dow` varchar(30) NOT NULL default '',
`x_dow` int(1) NOT NULL default '0',
`dodal_dow` varchar(22) NOT NULL default '',
`data_dow` date NOT NULL default '0000-00-00',
`godz_dow` time NOT NULL default '00:00:00',
`tresc_dow` text NOT NULL,
`ocena_dow` int(5) default NULL,
`ilosc_ocen_dow` int(3) default NULL,
`pearl` int(1) default NULL,
)


W twoim brakuje na pweno primary Key który według mnie powinien być ustawiony na id_down

Kod
TABLE `dev_dow` (
`id_dow` int(6) NOT NULL auto_increment,
`idkat_dow` varchar(30) NOT NULL default '',
`x_dow` int(1) NOT NULL default '0',
`dodal_dow` varchar(22) NOT NULL default '',
`data_dow` date NOT NULL default '0000-00-00',
`godz_dow` time NOT NULL default '00:00:00',
`tresc_dow` text NOT NULL,
`ocena_dow` int(5) default NULL,
`ilosc_ocen_dow` int(3) default NULL,
`pearl` int(1) default NULL,
PRIMARY KEY  (`id`)
)TYPE=MyISAM


Ten post edytował MarcinZ 4.04.2005, 19:40:34


--------------------
PHP 4.3.11 apache 1.3.31 i wszystko
Go to the top of the page
+Quote Post
Devliniusz
post 4.04.2005, 19:44:06
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 4.04.2005

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


Możesz mi wyjaśnić co to ma wspólnego z postawionym problemem?


--------------------
Od dziś zobowiązuję się do zaspakajania swoich potrzeb w sposób społecznie dostosowany...
Go to the top of the page
+Quote Post
MarcinZ
post 4.04.2005, 23:06:37
Post #6





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 18.03.2004
Skąd: Golub-Dobrzyń

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


Spoko moja mała wina... przyznaje się...

sprawdzałeś czy czasem nie są wyłączone zmienne globalne na danym serwerze, bo może to jest tego przyczyną, że pobiera puste dane...

Lub zmien tam gdzie masz NULL na NOT NULL najwyraźniej to powoduje błędy,
i możesz dodać w skrypcie by sprawdzał czy dane są puste, jeżeli tak to wtedy podstawia jakąś wartość, tóra będzie oznaczała pusty zbiór, np. 0
Kod
<?
...
if(empty($zmienna)) {
$zmienna = 0;
}


To mniej więcej tak powinno wyglądać... lub poczytaj w manualu MySQL'a o typie danych NULL powinno tam być dobrze wyjaśnione..


--------------------
PHP 4.3.11 apache 1.3.31 i wszystko
Go to the top of the page
+Quote Post
Devliniusz
post 4.04.2005, 23:32:54
Post #7





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 4.04.2005

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


Owszem - zmienne globalne są wyłączone i tak ma pozostać.

Nie jest problemem to, że pobierane są "puste" rekordy, bo one w określonych przypadkach mają być "puste" i są "puste". I właśnie problem polega na tym, że jeśli są puste, to otrzymuję raport: Undefined index.

Pomysł ze sprawdzaniem czy dane są "puste" jest nielogiczny.
Problem z "raportem" pojawia się w momencie, kiedy próbuję je pobrać z bazy, więc jak mam sprawdzić czy w danym rekordzie są "puste" bez pobrania danych z bazy?questionmark.gif

Zatem pytanie brzmi: Czy w takim przypadku pola w bazie muszą mieć zadeklarowaną wartość domyślną (np. "0"), czy też istnieje inny sposób aby nie pojawiał się komunikat Undefined index?

Ma ktoś jakiś pomysł?


--------------------
Od dziś zobowiązuję się do zaspakajania swoich potrzeb w sposób społecznie dostosowany...
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 Wersja Lo-Fi Aktualny czas: 6.07.2025 - 01:51