[PHP][MySQL] Pole DATE zwraca 00-00-0000

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
DarthRoyal
Nowy
Nowy
Posty: 36
Rejestracja: sob lis 26, 2005 10:56 pm
Lokalizacja: Kędzierzyn-Koźle
Kontakt:

[PHP][MySQL] Pole DATE zwraca 00-00-0000

Post autor: DarthRoyal »

Witam... dlaczego moje pole DATE w bazie danych zwraca mi wartość 00-00-0000? Mam to zrobione tak:
http://bili.dzichaaa.net/webinside.jpg
Coś źle? Podać też kod?

Powinno wyświetlać mi datę zarejestrowania się usera, a tu kupa :(
viraptor
Zaczyna działać
Zaczyna działać
Posty: 633
Rejestracja: pn cze 28, 2004 12:58 pm
Kontakt:

Re: [PHP][MySQL] Pole DATE zwraca 00-00-0000

Post autor: viraptor »

Pomyślmy - masz pole date, not null i nie ustawiłeś wartości domyślnej... z tego wynika, że wartość domyślna = 0000-00-00.
Ja tu nie widzę nic złego. Pozatym pokazujesz schemat tabeli, a nie wartości z tabeli - może o to chodzi?
Ew. jeśli w wartościach też masz 0, to może nie wypełniasz pola date?
DarthRoyal
Nowy
Nowy
Posty: 36
Rejestracja: sob lis 26, 2005 10:56 pm
Lokalizacja: Kędzierzyn-Koźle
Kontakt:

Re: [PHP][MySQL] Pole DATE zwraca 00-00-0000

Post autor: DarthRoyal »

Pole date ma się wypełniac samodzielnie po zarejestrowaniu sie uzytkownika... wiem juz co jest zle, ale nie wiem jak to naprawic

[php]<?php
function ok()
{
global $login,$haslo,$email,$miasto,$www,$gg,$tlen,$poziom,$podpis,$last_log,$logowan,$komentarzy,$odwiedzin;
$query=mysql_query("SELECT login FROM uzytkownicy WHERE login='".$login."'");
if (!$login) {

echo 'Nie poda³e¶ Loginu';
} elseif (!$haslo){
echo 'Nie poda³e¶ has³a';
} elseif (!$email)
{
echo 'Nie poda³e¶ e-maila';
} elseif(mysql_num_rows($query)==0)
{
if($www=='http://') $www = '';
if($gg=='gg:') $gg = '';
if($tlen=='tlen:') $tlen = '';
$haslomd5 = md5($haslo);
$query1 = "INSERT INTO uzytkownicy VALUES(NOT NULL, '$login', '$haslomd5', '$email', '$miasto', '$www', '$gg', '$tlen', '$poziom', '$podpis', '$date', '$last_log', '$logowan', '$komentarzy', '$odwiedzin')";
$result = mysql_query ($query1);
if($result)
{
echo '<br>U¿ytkownik Zosta³ Dodany.<br>';
}
else
{
echo '<br>Wyst±pi³ b³±d w dodawaniu usera.<br><br>';
}
}
else
{
// user istnieje
echo 'U¿ytkownik o podanym loginie ju¿ istnieje, proszê wybraæ inny login';
echo '<a href="javascript:history.back();">Cofnij</a>';
}
echo '<a href="index.php">Strona G³ówna</a>';
}

?>[/php]

W tym kodzie nie ma kodu, który dodawalby date dnia rejestracji do bazy danych... jak to zrobic?

P.S. Nad funkcją OK mam taki kod:
[php]<?php
<?
bbcode($str,$mala_tresc,$wlasciwa_tresc,$text,$podpis);
function reg()
{
global $mode,$step,$podpis;
global $login,$haslo,$email,$miasto,$www,$gg,$tlen,$poziom,$podpis,$last_log,$logowan,$komentarzy,$odwiedzin;
echo '<form name="dodaj_us" action="rejestracja.php?mode=ok" method="POST">
<table width="98%" align="center"><tr><td class="uni_01"><font size="1" face="verdana">Login:<span style="color:#ff0000">*</span></td>
<td class="uni_01"><input type="text" name="login" maxlength="16" class="textbox" style="width:200px;"></td></tr>
<tr>
<td class="uni_01"><font size="1" face="verdana">Haslo:<span style="color:#ff0000">*</span></td>
<td class="uni_01"><input type="text" name="haslo" maxlength="16" class="textbox" style="width:200px;"></td>
</tr>
<tr>
<td class="uni_01"><font size="1" face="verdana">E-Mail:<span style="color:#ff0000">*</span></td>
<td class="uni_01"><input type="text" name="email" maxlength="32" class="textbox" style="width:200px;"></td>
</tr>
<tr>
<td class="uni_01"><font size="1" face="verdana">Miejsce Zamieszkania:</td>
<td class="uni_01"><input type="text" name="miasto" maxlength="32" class="textbox" style="width:200px;"></td>
</tr>
<tr>
<td class="uni_01"><font size="1" face="verdana">Adres www:</td>
<td class="uni_01"><input type="text" name="www" maxlength="40" class="textbox" style="width:200px;"></td>
</tr>
<tr>
<td class="uni_01"><font size="1" face="verdana">Gadu-Gadu:</td>
<td class="uni_01"><input type="text" name="gg" maxlength="16" class="textbox" style="width:200px;"></td>
</tr>
<tr>
<td class="uni_01"><font size="1" face="verdana">Tlen:</td>
<td class="uni_01"><input type="text" name="tlen" maxlength="16" class="textbox" style="width:200px;"><input type="hidden" name="poziom" value="0" maxlength="16" class="textbox" style="width:200px;">
<input type="hidden" name="date" maxlength="16" class="textbox" style="width:200px;">
<input type="hidden" name="last_log" maxlength="16" class="textbox" value="0000-00-00" style="width:200px;">
<input type="hidden" name="logowan" maxlength="16" class="textbox" value="0" style="width:200px;">
<input type="hidden" name="komentarzy" maxlength="16" class="textbox" value="0" style="width:200px;">
<input type="hidden" name="odwiedzin" maxlength="16" class="textbox" value="0" style="width:200px;"></td>
</tr>
<tr>
<td class="uni_01" valign="top"><font size="1" face="verdana">Podpis:</td>
<td class="uni_01">
<textarea name="podpis" rows="5" class="textbox" style="width:295px"></textarea><br>
</td>
</tr>

<tr>
<td class="uni_01" valign="top"></td>
<td class="uni_01">
<input type="submit" value="Rejestruj" />
</td>
</tr>';
echo '</table>';
echo '</form>';
}

?>[/php]
viraptor
Zaczyna działać
Zaczyna działać
Posty: 633
Rejestracja: pn cze 28, 2004 12:58 pm
Kontakt:

Re: [PHP][MySQL] Pole DATE zwraca 00-00-0000

Post autor: viraptor »

Z datą, to chyba już wyjaśniłem z NOW().. (chyba, że dalej masz problem?)
Co do kodu...
1. Może udaje się wsadzić w pole "NOT NULL", ale nie pisz tak, bo jest to bez sensu i praktycznie błędne. Nie istnieje taka wartość.
2. Escapuj teksty podawane do bazy - http://www.php.net/manual/en/function.m ... string.php
ODPOWIEDZ