Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dane z formularza nie trafiaja do query
Forum PHP.pl > Forum > Bazy danych > MySQL
grOm
robie ostatnio prosty system newsow na strone klanowa i napotkalem na dziwny problem..
Wysylam dane z formularza (met. POST/GET nie ma roznicy) do tego skryptu :

  1. <?php
  2. $link = mysql_connect('localhost', 'login', 'haslo')
  3.        or die('Nie mozna sie połączyc z baza danych: ' . mysql_error());
  4.    print ('Polaczenie nawiazane.. prubuje dodac newsa');
  5.  
  6. $zapytanie = "SELECT * FROM njus";
  7. $wyniki = mysql_query($zapytanie);
  8. $numer = mysql_num_rows($wyniki); //wyciagam ilosc rekordow/newsow
  9.  
  10. $newsman = $_POST['newsman'];
  11. $tytul = $_POST['tytul'];
  12. $tresc = $_POST['tresc'];
  13. $data = date("Y-m-d H:i:s");
  14. $zapytanie = "INSERT INTO njus VALUES ($numer+1, $newsman, $data, $tytul, $tresc)";
  15. $slij = mysql_query($zapytanie);
  16.  
  17. mysql_close($link);
  18. ?>


Bledy nie wyskakuja ale nie powstaje nowy rekord
Dodam jeszcze ze jak uzywam :
  1. <?php
  2.  
  3. $zapytanie = "INSERT INTO njus VALUES ($numer+1, 'bobek', '43543 6666', 'tytul jakis, 'tresc jakas')";
  4. $slij = mysql_query($zapytanie);
  5.  
  6. ?>

to wszystko smiga.. tworzy sie rekord i pojawia news na stronce sleep.gif
Podam jeszcze typy ustawione w tabeli :
Kod
id    smallint(6)
autor      varchar(30)
data      datetime
tytul      varchar(255)
tresc      text

Czuje ze to jakis glupi blad bardzo ale nie potrafie go znalezc


poprawiam
---
nospor
nospor
zjadles ciapki ''
  1. <?php
  2.  
  3. $zapytanie = "INSERT INTO njus VALUES ($numer+1, '$newsman', '$data', '$tytul', '$tresc')";
  4.  
  5. ?>

ze juz nie wspomne ze kazdy string powiniens przepuscis przez addslashes() lub http://pl.php.net/manual/pl/function.mysql-escape-string.php
mhs
Witam,

1)
Cytat
id    smallint(6)
polecam dodać auto_increment gdyz wowczas nie bedziesz musial "recznie" dbac o zapewnienie klucza glownego tabeli

2.
Cytat
Wysylam dane z formularza (met. POST/GET nie ma roznicy) do tego skryptu :


Roznica jest. Wysylajac dane postem odbierasz przez $_POST, wysylajac getem odbierasz przez $_GET

3.
Cytat
Bledy nie wyskakuja ale nie powstaje nowy rekord

Daj sobie na poczatku ini_set('display_errors', on); oraz error_reporing(E_ALL) i moze wowczas pokaza Ci sie jakies bledy
grOm
dobra dzieki o dziwo po dodaniu tych slaczkow ' ' zaczelo dzialac a myslalem ze one sa po to by np po print('$cos') wypisalo $cos ........ dobra nie wazne tongue.gif slaby w tym jestem jeszcze
Dzieki za szybka odpowiedz
scanner
1. Nie musisz przepisywać $_POST do zmienych - szkoda pamięci i czasu.
2. Pokaż co wypisze linijka 9 w poniższym przykładzie.
  1. <?php
  2. $link = mysql_connect('localhost', 'login', 'haslo')
  3.  or die('Nie mozna sie połączyc z baza danych: ' . mysql_error());
  4.  
  5.  
  6. $data = date("Y-m-d H:i:s");
  7. $zapytanie = "INSERT INTO njus VALUES ('', ".$_POST['newsman'].", $data, ".$_POST['tytul'].", ".$_POST['tresc'].")";
  8. var_dump( $zapytanie );
  9. $slij = mysql_query($zapytanie) or die ( mysql_error() );
  10.  
  11. mysql_close($link);
  12. ?>
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.