[Mysql] [php] nie dodaje newsów

0

Moja funkcja dodawania newsow (usuwanie i edycja dziala, ale dodawanie nie):

function dopisz($czy, $akcja, $tytul, $kto, $email, $tresc, $rok, $miesiac, $miesiac_num, $dzien, $godzina) 
{ 
    $czy = $_POST['czy']; 
    $akcja = $_GET['akcja']; 

    if(isset($_POST['czy']) != tak) 
    { 
        $tytul = $_POST['tytul']; 
        $kto = $_POST['kto']; 
        $email = $_POST['email']; 
        $tresc = $_POST['tresc']; 
        $rok = $_POST['rok']; 
        $rok = date("Y",time()); 
        $miesiac = $_POST['miesiac']; 
        $miesiac = date("m",time()); 
        $miesiac_num = $_POST['miesiac_num']; 
        $miesiac_num = date("m",time()); 
        $dzien = $_POST['dzien']; 
        $dzien = date("d",time()); 
        $godzina = $_POST['godzina']; 
        $godzina = date("H:i",time()); 

            if($miesiac==1) 
            { 
                $miesiac="stycznia"; 
            } 
            elseif($miesiac==2) 
            { 
                     $miesiac="lutego"; 
            } 
            elseif($miesiac==3) 
            { 
                $miesiac="marca"; 
            } 
            elseif($miesiac==4) 
            { 
                $miesiac="kwietnia"; 
            } 
            elseif($miesiac==5) 
            { 
                $miesiac="maja"; 
            } 
            elseif($miesiac==6) 
            { 
                $miesiac="czerwca"; 
            } 
            elseif($miesiac==7) 
            { 
                $miesiac="lipca"; 
            } 
            elseif($miesiac==8) 
            { 
                $miesiac="sierpnia"; 
            } 
            elseif($miesiac==9) 
            { 
                $miesiac="wrze¶nia"; 
            } 
            elseif($miesiac==10) 
            { 
                $miesiac="paĽdziernika"; 
            } 
            elseif($miesiac==11) 
            { 
                $miesiac="listopada"; 
            } 
            elseif($miesiac==12) 
            { 
                $miesiac="grudnia"; 
            } 

    echo "<form action=admin.php?lamelux=aktualnosci method=post>"; 
    echo "<input type=hidden name=rok value=$rok>"; 
    echo "<input type=hidden name=miesiac value=$miesiac>"; 
    echo "<input type=hidden name=miesiac_num value=$miesiac_num>"; 
    echo "<input type=hidden name=dzien value=$dzien>"; 
    echo "<input type=hidden name=godzina value=$godzina>"; 
    echo "<input type=hidden name=czy value=tak>"; 
    echo "<input type=hidden name=akcja value=dopisz>"; 

    echo "<table width=\"85%\" height=40 border=0 align=center cellpadding=0 cellspacing=0 bgcolor=003366 valign=top><tr><td align=center valign=middle class=adminmainfont><font color=#FFFFFF><strong>AKTUALNO&brvbar;CI</strong></font></td></tr></table>"; 

    echo "<table width=\"85%\" border=0 align=center cellpadding=10 cellspacing=10 bgcolor=EFEFEF valign=top><tr align=center valign=top><td align=right valign=middle class=adminmainfont style=width:25%><strong>Tytuł:</strong></td><td align=left valign=middle class=adminmainfont><input type=text name=tytul value=\"$rekord[tytul]\" style=width:75%></td></tr>"; 
    echo "<tr align=center valign=top><td align=center valign=middle class=adminmainfont colspan=2><strong>Tre&para;ć:</strong> (edytor niżej)</td></tr>"; 
    echo "<tr valign=top><td class=tekst width=\"100%\" colspan=2>        <script language=javascript> 

        <!-- 
        var ofckeditor; 
        ofckeditor = new fckeditor('tresc'); 
        ofckeditor.Width  = '100%'; 
        ofckeditor.Height = '300'; 
        ofckeditor.Value  = ''; 
        ofckeditor.Create(); 
        //--> 

        </script></td></tr>"; 

    echo "<tr align=center valign=top><td align=right valign=middle class=adminmainfont style=width:25%><strong>Autor:</strong></td><td align=left valign=middle class=adminmainfont><input type=text name=kto value=\"$rekord[kto]\" style=width:75%></td></tr>"; 
    echo "<tr align=center valign=top><td align=right valign=middle class=adminmainfont style=width:25%><strong>E-mail:</strong></td><td align=left valign=middle class=adminmainfont><input type=text name=email value=\"$rekord[email]\" style=width:75%></td></tr>"; 
    echo "<tr align=center valign=top><td colspan=2 align=center valign=middle class=adminmainfont><input type=submit style=width:60px value=Dodaj></td></tr>"; 
    echo "</table></form>"; 
    } 
    else 
    { 
        $tytul = $_POST['tytul']; 
        $tytul = stripslashes($tytul); 
        $kto = $_POST['kto']; 
        $email = $_POST['email']; 
        $tresc = $_POST['tresc']; 
        $tresc = stripslashes($tresc); 
        $rok = $_POST['rok']; 
        $miesiac = $_POST['miesiac']; 
        $miesiac_num = $_POST['miesiac_num']; 
        $dzien = $_POST['dzien']; 
        $godzina = $_POST['godzina']; 

        $nowy = $_POST['nowy']; 

        $nowy = "insert into newsy (tytul, kto, email, tresc, rok, miesiac, miesiac_num, dzien, godzina) values ('$tytul', '$kto', '$email', '$tresc', '$rok', '$miesiac', '$miesiac_num', '$dzien', '$godzina')"; 

        $nowy_wpis = mysql_query($nowy); 

        if($nowy_wpis) 
        { 
            echo "<table width=\"85%\" height=40 border=0 align=center cellpadding=0 cellspacing=0 bgcolor=003366 valign=top><tr><td align=center valign=middle class=adminmainfont><font color=#FFFFFF><strong>AKTUALNO&brvbar;CI</strong></font></td></tr></table><p><div align=center class=adminmainfont><strong>Dodałem nowego newsa.<p><a href=admin.php?lamelux=aktualnosci>Powrót...</a></strong></div>"; 
        } 
        else 
        { 
            echo "<table width=\"85%\" height=40 border=0 align=center cellpadding=0 cellspacing=0 bgcolor=003366 valign=top><tr><td align=center valign=middle class=adminmainfont><font color=#FFFFFF><strong>AKTUALNO&brvbar;CI</strong></font></td></tr></table><p><div align=center class=adminmainfont><strong>Nie udało się dodać nowego newsa!<p>".mysql_error()."</strong></div>"; 
              } 
    } 
}

Podejrzewam, ze blad jest w: if(isset($_POST['czy']) != tak), bo gdy dam
a)

!isset($_POST['czy']) != tak

ALBO isset($_POST['czy']

 -> to wtedy wyskakuje mi, ze dodano news i jest pusty news 
b) a jesli zostawie tak, jak wkleilem na gorze (caly kod), to pojawia sie okienko polem do wpisania newsa, gdzie wpisuje wartosci. niestety, po kliknieciu DODAJ nie dzieje sie nic - nie pokazuje mi, czy dodano, a newsa nie ma... 

Co mam w tym kodzie zamienic?
0

Po pierwsze zastanawia mnie poco przyjmujesz tyle parametrów w funkcji, skoro potem i tak nadpisujesz je pobierając dane z tablic GET i POST ? Do tego wpierw przypisujesz zmiennej $czy wartosc $_POST['czy'], a dopiero potem sprawdzasz czy taka została przekazana ...

Poza tym isset() zwraca wartość logiczną true lub false wiec może możesz tego porównywać z "tak".
if(isset($_POST['czy']) && $_POST['czy'] == true)

0

Poprawilem ten kod na:

function dopisz()
{
	$akcja = $_GET['akcja'];

	if(isset($_POST['czy']) && $_POST['czy'] == true)
	{
		$rok = date("Y",time());
		$miesiac = date("m",time());
		$miesiac_num = date("m",time());
		$dzien = date("d",time());
		$godzina = date("H:i",time());

			if($miesiac==1)
			{
				$miesiac="stycznia";
			}
			elseif($miesiac==2)
			{
         			$miesiac="lutego";
			}
			elseif($miesiac==3)
			{
				$miesiac="marca";
			}
			elseif($miesiac==4)
			{
				$miesiac="kwietnia";
			}
			elseif($miesiac==5)
			{
				$miesiac="maja";
			}
			elseif($miesiac==6)
			{
				$miesiac="czerwca";
			}
			elseif($miesiac==7)
			{
				$miesiac="lipca";
			}
			elseif($miesiac==8)
			{
				$miesiac="sierpnia";
			}
			elseif($miesiac==9)
			{
				$miesiac="wrze¶nia";
			}
			elseif($miesiac==10)
			{
				$miesiac="paĽdziernika";
			}
			elseif($miesiac==11)
			{
				$miesiac="listopada";
			}
			elseif($miesiac==12)
			{
				$miesiac="grudnia";
			}

	echo "<form action=admin.php?lamelux=aktualnosci method=post>";
	echo "<input type=hidden name=rok value=$rok>";
	echo "<input type=hidden name=miesiac value=$miesiac>";
	echo "<input type=hidden name=miesiac_num value=$miesiac_num>";
	echo "<input type=hidden name=dzien value=$dzien>";
	echo "<input type=hidden name=godzina value=$godzina>";
	echo "<input type=hidden name=akcja value=dopisz>";

	echo "<table width=\"85%\" height=40 border=0 align=center cellpadding=0 cellspacing=0 bgcolor=003366 

valign=top><tr><td align=center valign=middle class=adminmainfont><font 

color=#FFFFFF><strong>AKTUALNO¦CI</strong></font></td></tr></table>";

	echo "<table width=\"85%\" border=0 align=center cellpadding=10 cellspacing=10 bgcolor=EFEFEF valign=top><tr 

align=center valign=top><td align=right valign=middle class=adminmainfont 

style=width:25%><strong>Tytuł:</strong></td><td align=left valign=middle class=adminmainfont><input type=text 

name=tytul value=\"$rekord[tytul]\" style=width:75%></td></tr>";
	echo "<tr align=center valign=top><td align=center valign=middle class=adminmainfont 

colspan=2><strong>Tre¶ć:</strong> (edytor niżej)</td></tr>";
	echo "<tr valign=top><td class=tekst width=\"100%\" colspan=2>        <script language=javascript>

		<!--
		var ofckeditor;
		ofckeditor = new fckeditor('tresc');
		ofckeditor.Width  = '100%';
		ofckeditor.Height = '300';
		ofckeditor.Value  = '';
		ofckeditor.Create();
		//-->

		</script></td></tr>";

	echo "<tr align=center valign=top><td align=right valign=middle class=adminmainfont 

style=width:25%><strong>Autor:</strong></td><td align=left valign=middle class=adminmainfont><input type=text 

name=kto value=\"$rekord[kto]\" style=width:75%></td></tr>";
	echo "<tr align=center valign=top><td align=right valign=middle class=adminmainfont 

style=width:25%><strong>E-mail:</strong></td><td align=left valign=middle class=adminmainfont><input type=text 

name=email value=\"$rekord[email]\" style=width:75%></td></tr>";
	echo "<tr align=center valign=top><td colspan=2 align=center valign=middle class=adminmainfont><input 

type=submit style=width:60px value=Dodaj></td></tr>";
	echo "</table></form>";
	}
	else
	{
		$tytul = $_POST['tytul'];
		$tytul = stripslashes($tytul);
		$kto = $_POST['kto'];
		$email = $_POST['email'];
		$tresc = $_POST['tresc'];
		$tresc = stripslashes($tresc);
		$rok = $_POST['rok'];
		$miesiac = $_POST['miesiac'];
		$miesiac_num = $_POST['miesiac_num'];
		$dzien = $_POST['dzien'];
		$godzina = $_POST['godzina'];

		$nowy = $_POST['nowy'];

		$nowy = "insert into newsy (tytul, kto, email, tresc, rok, miesiac, miesiac_num, dzien, godzina) 

values ('$tytul', '$kto', '$email', '$tresc', '$rok', '$miesiac', '$miesiac_num', '$dzien', '$godzina')";

		$nowy_wpis = mysql_query($nowy);

		if($nowy_wpis)
		{
			echo "<table width=\"85%\" height=40 border=0 align=center cellpadding=0 cellspacing=0 

bgcolor=003366 valign=top><tr><td align=center valign=middle class=adminmainfont><font 

color=#FFFFFF><strong>AKTUALNO¦CI</strong></font></td></tr></table><p><div align=center 

class=adminmainfont><strong>Dodałem nowego newsa.<p><a 

href=admin.php?lamelux=aktualnosci>Powrót...</a></strong></div>";
		}
		else
		{
			echo "<table width=\"85%\" height=40 border=0 align=center cellpadding=0 cellspacing=0 

bgcolor=003366 valign=top><tr><td align=center valign=middle class=adminmainfont><font 

color=#FFFFFF><strong>AKTUALNO¦CI</strong></font></td></tr></table><p><div align=center 

class=adminmainfont><strong>Nie udało się dodać nowego newsa!<p>".mysql_error()."</strong></div>";
      		}
	}
}

Ale teraz jak klikam w menu na dodaj news (czyli ?akcja=dopisz) to dodaje mi pusty news. w ogole nie pojawia sie formularz. gdzie jest ten blad?

0

W jaki sposób wywołujesz funkcje dopisz() ? Bo aby pokazać formularz funkcja oczekuje przekazania wartości True, w zmiennej $_POST['czy']. Czy na pewno ją przekazujesz ?

0

Po poprawieniu kodu (jak pisales), dopisz jest wg:

switch(addslashes($_GET['akcja'])) 
{ 
	case "dopisz":
	dopisz();
	break;
}

Zawsze dodaje mi pustego newsa (nie wyswietla w ogole formularza)

Edit:
Po zamianie

if(isset($_POST['czy']) && $_POST['czy'] == true)

na if(!(isset($_POST['czy']) && $_POST['czy'] == true))

pokazuje formularz :) ale jak wypelnie dane, to za pomoca SUBMIT nie pokazuje, czy dodal newsa, czy nie, a newsa nie ma.
0

Funkcje dopisz() wywołujesz gdy "dopisz" zostanie przekazane w adresie, ale wysyłając formularz przekazujesz wszystko do strony admin.php?lamelux=aktualnosci :) Czyli funkcja dopisz nie zostaje wywołana prawda ?

0

prawda. czyli w <form action ma byc odwolanie do admin.php?lamelux=aktualnosci&akcja=dopisz tak?

0

Na pierwszy rzut oka, tak :) Sprawdz, jeśli nie zadziała to będziemy szukać błędów dalej ...

0

Doszedlem do tego, iz wstawiajac dodawania newsa do innego pliku i po prostu zincludowanie go, powoduje zamierzony przeze mnie efekt. ciekawe tylko, dlaczego nie dziala wewnatrz pliku...

1 użytkowników online, w tym zalogowanych: 0, gości: 1