Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP,MYSQL] Bład przy dodawaniu rekordu do bazy
Forum PHP.pl > Forum > Przedszkole
walldeck
Witam.

J/w podczas przekazywania metodą POST z formularza HTML 3 zmiennych nie moge dodać ich do bazy. Bede wdzieczny za pomoc w znalezieniu błedu.

Plik formularza:
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <head>
  3. <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  4. <meta name="generator" content="PSPad editor, www.pspad.com">
  5. </head>
  6. <body>
  7. <form action="os.php" method="post">
  8.  
  9. Confirm date of delivery:<br />
  10. <input type="text" name="confirm" /><br />
  11.  
  12. Order Number:<br />
  13. <input type="text" name="ordernr" /><br />
  14.  
  15. Number of pieces:<br />
  16. <input type="text" name="pieces" /><br />
  17.  
  18. Width:<br />
  19. <input type="text" name="width" /><br />
  20.  
  21. Height:<br />
  22. <input type="text" name="height" /><br />
  23.  
  24. Quantity:<br />
  25. <input type="text" name="quantity" /><br />
  26.  
  27. PO sended by::<br />
  28. <input type="text" name="sendby" /><br />
  29.  
  30. Print technology:<br />
  31. <input type="text" name="technology" /><br />
  32.  
  33. Dispatch date:<br />
  34. <input type="text" name="dispatch" /><br />
  35.  
  36. Comment:<br />
  37. <input type="text" name="comment" /><br />
  38.  
  39. Client:<br />
  40. <input type="text" name="klient_id" /><br />
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48. <input type="submit" value="dodaj" />
  49. </form>
  50. </body>
  51. </html>


Plik odbierający dane:"os.php
  1. <?php
  2. // odbieramy dane z formularza
  3.        $pieces=(int)$_POST['pieces'];
  4.        $ordernr=(int)$_POST['ordernr'];
  5.    $confirm=htmlspecialchars($_POST['confirm']);
  6. require'function.php';
  7. if(isset($_POST['pieces'])&& ($_POST['ordernr'])&& ($_POST['confirm'])) {
  8.        db::connect();
  9.    
  10.    // dodajemy rekord do bazy
  11.    $ins = @mysql_query("INSERT INTO orderstatus (ordernr,pieces) values($ordernr,$pieces,'$confirm')");
  12.    
  13.    if($ins) echo "Rekord został dodany poprawnie";
  14.    else echo "Błąd nie udało się dodać nowego rekordu";
  15.    
  16.  
  17. }
  18.  
  19. ?>


Plik "Function.php"
  1. <?php
  2. class db{
  3.    
  4. function connect(){
  5.  
  6.    $dbs = @mysql_connect('localhost', 'root', 'root')
  7.    or die("brak polaczenia z bazą danych !!!");
  8.    mysql_select_db('os')
  9.    or die("nie moźna polczyć się z bazą danych !!!");    
  10.    
  11. }
  12. }
  13.  
  14. ?>





Baza:
  1. - phpMyAdmin SQL Dump
  2. -- version 2.8.2
  3. --
  4. -- Host: localhost
  5. -- Czas wygenerowania: 11 Lis 2008, 15:59
  6. -- Wersja serwera: 5.0.22
  7. -- Wersja PHP: 5.1.4
  8. --
  9. -- Baza danych: `os`
  10. --
  11.  
  12. -- --------------------------------------------------------
  13.  
  14. --
  15. -- Struktura tabeli dla `klient`
  16. --
  17.  
  18. CREATE TABLE `klient` (
  19. `id` int(11) NOT NULL AUTO_INCREMENT,
  20. `company` varchar(255) NOT NULL,
  21. `city` varchar(100) NOT NULL,
  22. `country` varchar(100) NOT NULL,
  23. `postcode` smallint(20) NOT NULL,
  24. `name` varchar(100) NOT NULL,
  25. PRIMARY KEY (`id`)
  26. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
  27.  
  28. --
  29. -- Zrzut danych tabeli `klient`
  30. --
  31.  
  32.  
  33. -- --------------------------------------------------------
  34.  
  35. --
  36. -- Struktura tabeli dla `orderstatus`
  37. --
  38.  
  39. CREATE TABLE `orderstatus` (
  40. `id` int(11) NOT NULL AUTO_INCREMENT,
  41. `confirm` datetime NOT NULL,
  42. `ordernr` int(11) NOT NULL,
  43. `pieces` int(11) NOT NULL,
  44. `width` float NOT NULL,
  45. `height` float NOT NULL,
  46. `quantity` float NOT NULL,
  47. `sendby` double NOT NULL,
  48. `technology` varchar(100) NOT NULL,
  49. `dispatch` datetime NOT NULL,
  50. `comment` varchar(255) NOT NULL,
  51. `client_id` int(11) NOT NULL,
  52. PRIMARY KEY (`id`),
  53. KEY `client_id` (`client_id`)
  54. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
  55.  
  56. --
  57. -- Zrzut danych tabeli `orderstatus`
  58. --
ayeo
Witaj!

1. Wylistuj sobie $_POST;
2. Wylistuj kod SQL, który generuje skrypt;
3. Wklej ten kod w PhpMyAdmin i zobacz jaki wywala błąd

Pozdrawiam!
nevt
nie
  1. <?php
  2. if(isset($_POST['pieces'])&& ($_POST['ordernr'])&& ($_POST['confirm']))
  3. ?>

tylko
  1. <?php
  2. [if(isset($_POST['pieces']) && isset($_POST['ordernr']) && isset($_POST['confirm']))
  3. ?>


nie
  1. <?php
  2. $ins = @mysql_query("INSERT INTO orderstatus (ordernr,pieces) values($ordernr,$pieces,'$confirm')");
  3. ?>

tylko
  1. <?php
  2. $ins = mysql_query("INSERT INTO orderstatus (ordernr, pieces, confirm) VALUES($ordernr, $pieces, '$confirm');") or die(mysql_error());
  3. ?>
walldeck
W porządku, dzienks.
Moja tabela nie miała domyślnych wartości ustawionych na NULL.
Jak ustawić w formularzu date aby domyślnie tam pokazywała mi się jako format wzorcowy na :"0000-00-00". Zrobiłem tak dla tego wiersza w tabeli jako domyslnie ale nie wiem jak to zrobić w formularzu.
Dzięki
piotrooo89
nie wiem czy Cie to zainteresuje, ale możesz nadać value="0000-00-00" i onFocus="this.value=''" żeby po kliknięciu znikał ten wzorzec.
walldeck
Nevt jaka jest róznica w mysql_query(); z małpą oraz bez?
I pytanie do Piotrooo89 gdzie wstawić ten onFocus oraz Value?

Dzienks
erix
Cytat
Nevt jaka jest róznica w mysql_query(); z małpą oraz bez?

A widziałeś kiedyś manuala? @" title="Zobacz w manualu PHP" target="_manual

Cytat
I pytanie do Piotrooo89 gdzie wstawić ten onFocus oraz Value?

Dla inputa.
walldeck
Cytat(erix @ 16.11.2008, 18:51:44 ) *
Owszem widziałem, głupie odpowiedzi również.
A za INPUTa dzięki
erix
To był link do manuala, gwoli ścisłości...
walldeck
a po Polskiemu można ?:]
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.