Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz nie chce mi dodawac nowych wpisow do bazy
Forum PHP.pl > Forum > PHP
stal-sw
Ponizej podaje kod i akcje do formularza - dodawanie newsow.
Na podobnym szablonie skrypt bez problemow mi dodaje i usuwa wpisy lecz nie chce dodawac nowych.Przjerzalem kika razy ale nie widze bledu (pojawia sie napis news dodany ale jego nie ma w bazie).
Prosze o pomoc.

I jeszce jedno jak zrobic jeszcze aby skrypt z pola textarea - jak wcisne entera to go "uznal" (podczas odczytu danych przez inny skrypt) zas jak bede edytowal ten wpis to aby w polu formularza nie bylo widac znacznikow <br>.

[php:1:c60ad05f6b]<?php
function formularz() {
echo("<div align="center"><table width="45%"><form action="admin_news.php?op=add_ak" method="post">");
echo "<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 ALIGN=CENTER>
<tr><td>Tytuł:<input type=hidden size=35 name=id></td></tr>
<tr><td>Tytuł:<input type=text size=35 name=tytul></td></tr>
<tr><td>Tytuł:<input type=text size=35 name=tresc ></td></tr>
<tr><td>Tytuł:<input type=text size=35 name=tresc2></td></tr>
<tr><td>Tytuł:<input type=text size=35 name=autor></td></tr>
<tr><td>Tytuł:<input type=text size=35 name=mail ></td></tr>
<tr><td>Data:<input type=hidden size=35 name=data ></td></tr>

<tr><td> <INPUT TYPE=submit VALUE=Wy&lij></form>
</TR>
</TABLE>
</FORM>";

}

function add_ak($id, $tytul, $tresc, $tresc2, $autor, $mail, $data) {
global $DBprefix;

$data = date("Y-m-j H:i:s");

$query = "INSERT INTO ".$DBprefix."news (id, tytul, tresc, tresc2, autor, email, data) VALUES ( '','$tytul', '$tresc', '$tresc2', '$autor', '$email','$data')";
$wynik = mysql_query($query);
echo'<center>';
echo'<font color="#FF0000"><b>NEWS został dodany</b></font><br><br>';

}

.......................
switch($op) {
......................
case "add_ak":
add_ak($id, $tytul, $tresc, $tresc2, $autor, $mail, $data);
break;
}
?>[/php:1:c60ad05f6b]
itsme
1. jak dajesz nowy post i masz problem z dodawaniem news-a to wyszukaj w skrypcie kod odpowiedzialny za wstawienie nowego posta
[php:1:a50c0d30d3]<?php
$query = "INSERT INTO ".$DBprefix."news (id, tytul, tresc, tresc2, autor, email, data) VALUES ( '','$tytul', '$tresc', '$tresc2', '$autor', '$email','$data')";
$wynik = mysql_query($query);
echo'<center>';
echo'<font color="#FF0000"><b>NEWS został dodany</b></font><br><br>';
?>[/php:1:a50c0d30d3]
jak widzisz jest to zaledwie pare linijek
2. Jezeli wklejasz kod to ogarniaj go TAGAMI php a nie CODE
3. Rozwiazanie Twojego problemu
[php:1:a50c0d30d3]<?php
$data = date("Y-m-j H:i:s");

$query = "INSERT INTO ".$DBprefix."news (id, tytul, tresc, tresc2, autor, email, data) VALUES ( '','$tytul', '$tresc', '$tresc2', '$autor', '$email','$data')";
$wynik = mysql_query($query);
echo'<center>';
echo'<font color="#FF0000"><b>NEWS został dodany $query</b></font><br><br>';
?>[/php:1:a50c0d30d3]
1. dodałem zmienna do wyświetlenia i dostaniesz zapytanie jakie zostało wyslane do mySQL nastepnie wklei je bezsposrednio do mySQL-a za pomaca phpmyadmin i zobaczysz gdzie jest blad
2. jest cos takiego jak mysql_error(); poszukaj informacji na ten temat
scanner
tak jeszcze podpowiem, że w MySQL jest konstrukcja NOW(), dzieki której zamiast pisać [php:1:4bd5273c9e]<?php
data = date("Y-m-j H:i:s");
$query = "INSERT INTO tabela (data) VALUES ('$data')";
?>[/php:1:4bd5273c9e]Piszemy szybciej i czytelniej:[php:1:4bd5273c9e]<?php
$query = "INSERT INTO tabela (data) VALUES (NOW())";
?>[/php:1:4bd5273c9e]
itsme
jest tez
CURRENT_DATE - data bez czasu
CURRENT_DATETIME - data z czasem
CURRENT_TIME - czas
wpisujemy to bezsporednio do zapyatnia czasami sie przydaje podczas wykonywania obliczen na datach w mySQL
darko
Przepraszam za odgrzewanie starego kotleta, ale czy aby napewno jest stała w mysql CURRENT_DATETIME ?

  1. ALTER TABLE `xyz`.`abc` MODIFY COLUMN `date_mod` DATETIME DEFAULT CURRENT_DATETIME;

i..

Cytat
Error executing SQL commands to update table.
MySQL Error Nr. 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CURRENT_DATETIME' at line 1


? Właśnie szukam rozwiązania tego problemu i póki co wychodzi na to, że jeśli nie chcę po każdej edycji rekordu ręcznie aktualizować datę_modyfikacji, to niestety muszę zamienić typ pola z datetime na timestamp i dodać on update CURRENT_TIMESTAMP (mysql.5.0.51)
fander
Masz błąd:
  1. $query = "INSERT INTO ".$DBprefix."news (id, tytul, tresc, tresc2, autor, email, data) VALUES ( '','$tytul', '$tresc', '$tresc2', '$autor', '$email','$data')";


powinno być
  1. $query = 'INSERT INTO '.$DBprefix.'news (tytul, tresc, tresc2, autor, email, data) VALUES ("'.$tytul.'", "'.$tresc.'", "'.$tresc2.'", "'.$autor.'", "'.$email.'","'.$data.'")';


Poza tym skąd twój skrypt wie co się znajduje w zmiennych $tytul, $tresc, $tresc2, $autor, $email, $data ?, Czy wyżej w sktypcie poprzypisywałeś do tych zmiennych wartości czyli

  1. $tresc = $_POST['tresc']; // itd..
darko
~fander podbiłem temat, żeby się dowiedzieć, jak to jest z CURRENT_DATETIME ? dry.gif
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.