Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Newsy
Forum PHP.pl > Forum > Przedszkole
tommy4
Wyobraźcie sobie tabelę:

id smallint(5) unsigned not null auto_increment
temat varchar(200) not null
autor smallint(5) unsigned not null default '1'
miesiac smallint(5) unsigned not null default '0'
tresc text not null
data int(10) unsigned not null default '0'

I mam taki problem: chcę dodać do bazy danych tylko i wyłącznie treść newsa i używam w tym celu takiego kodu:

  1. <?php
  2. require_once "../main.php";
  3. ?>
  4. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  5. <label>Treść:<br>
  6. <textarea name="tresc" rows="10" cols="40">
  7. </textarea></label><br>
  8. <input type="submit" value="Zapisz">
  9. </form>
  10.  
  11. <?php
  12. if (isset($_POST['tresc'])) {
  13. $trescnewsa = $_POST['tresc'];
  14. $sql = "INSERT INTO newsy (tresc) VALUES ('$trescnewsa')";
  15. if(@mysql_query($sql)) {
  16. echo '<p>Twój news został dodany.</p>';
  17. }
  18. else {
  19. echo '<p>Błąd podczas dodawania newsa: ' . mysql_error() . '</p>';
  20. }
  21. }
  22. ?>


poprawiam
---
nospor



Mam problem, nie chce się tabela dodawać. Wyświetla Bład podczas dodawania newsa. Co mam źle?
nospor
po pierwsze uzywaj odpowiedniego bbcode. w tym przypadku php

popraw kod na taki, co pozwoli nam poznac przyczyne bledu smile.gif
  1. <?php
  2.  
  3. if (isset($_POST['tresc'])) {
  4. $trescnewsa = $_POST['tresc'];
  5. $sql = "INSERT INTO newsy (tresc) VALUES ('$trescnewsa')";
  6. echo '<br/>zapytanie:'.$sql;
  7. if(mysql_query($sql)) {
  8. echo '<p>Twój news został dodany.</p>';
  9. }
  10. else {
  11. echo '<p>Błąd podczas dodawania newsa: ' . mysql_error() . '</p>';
  12. }
  13. }
  14.  
  15. ?>

i pokaz co pokazalo. Zaklaam ze polaczenie z baza masz smile.gif
A jaki pokazal blad? "Błąd podczas dodawania newsa:" co jest dalej za tekst?

edit:
temat varchar(200) not null

temat jest wymagany, nie ma wartosci domyslnej a ty go nie podajesz smile.gif
tommy4
zapytanie:INSERT INTO newsy (tresc) VALUES ('asdfasdf')
Błąd podczas dodawania newsa: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Połączenie z bazą? No chyba mam skoro, wyświetla mi normalnie newsy, ale nie mogę ich dodać.:/

OK, popróbuję jeszcze coś z tym tematem porobić:)

EDIT: A muszę mu podawać ID skoro mam auto_increment primary key??
nospor
zwroc tez uwage na to co w edit napisalem. Masz pole wymagane temat a go w zapytaniu nie podajesz. Jak sie uporasz z polaczeniem, to bedziesz mial errory z powodu braku tego tematu
tommy4
O ja nie mogę, ale ze mnie debil! Dałem takie połączenie z administracja/newsy.php->main.php, który miał załączone ustawienia.php, a zapomniałem, że połączenie ustawiałem w index.php. OK, teraz już to naprawię. smile.gif Dzięki i nie zamykajcie jeszcze tego tematu, ponieważ zapewne będę miał jeszcze trochę problemów:) No co? Dopiero od dwóch dni programuję w php. tongue.gif

EDIT:

zapytanie:INSERT INTO newsy (tresc) VALUES ('To jest news!!!')
Twój news został dodany.

Normalnie jestem bogiem:) Dzięki za wszystko
nospor
Cytat
O ja nie mogę, ale ze mnie debil!
Tu nie obrażamy innych użytkowników, w szczególności samych siebie. Z racji ze jestes tu nowy masz na razie tylko ustną naganę winksmiley.jpg smile.gif

swoją drogą to dziwne ze ci przyjął zapytanie bez podania tematu. Najwyraźniej nie dokladnie nam pokazales sql pol tabeli

co do id to nie musisz podawac. poto wlasnie jest autoicrement smile.gif
tommy4
Przepraszam, już nie będę. Wydaje mi się, że dałem not null, ale nie mogę teraz tego sprawdzić, ponieważ nie mogę się z phpmyadmin połączyć. :/

EDIT: Tak jest, dałem NOT NULL, nie wiem czemu nie zwróciło błędu... Tzn. w tabelce NULL jest wartość NO
aleksander
wstawia default?
banpl
zrob tak w zapytaniu:

  1. <?php
  2.  
  3.  
  4. $sql = "INSERT INTO newsy (id, temat, autor, miesiac, tresc, data) VALUES ('', '', '', '', '$trescnewsa', '')";
  5.  
  6.  
  7. ?>


powinno dzialac smile.gif
tommy4
Nie dawałem default, ale wszystko działa. Jak tylko dodam pole do wpisania tematu i całej reszty to też będzie wszystko działać.
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.