Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zapis do bazy - nie odpowiada wlasciwie, problem z zapisem danych przy pomocy formularza do bazy danych
andy84
post 6.02.2007, 00:09:35
Post #1





Grupa: Zarejestrowani
Postów: 165
Pomógł: 0
Dołączył: 14.11.2005
Skąd: London

Ostrzeżenie: (0%)
-----


witam mam tutaj sql tabeli ktora utworzylem
  1. -- phpMyAdmin SQL Dump
  2. -- version 2.8.2
  3. --
  4. -- Host: localhost
  5. -- Generation Time: Feb 05, 2007 at 11:04 PM
  6. -- Server version: 5.0.22
  7. -- php Version: 5.1.4
  8. --
  9. -- Database: `dbname`
  10. --
  11.  
  12. -- --------------------------------------------------------
  13.  
  14. --
  15. -- Table structure for table `admin_jobs`
  16. --
  17.  
  18. CREATE TABLE `admin_jobs` (
  19. `ID` int(6) NOT NULL DEFAULT '0',
  20. `title` varchar(20) NOT NULL DEFAULT '',
  21. `location` varchar(15) NOT NULL DEFAULT '',
  22. `position` varchar(15) NOT NULL DEFAULT '',
  23. `duration` varchar(20) NOT NULL DEFAULT '',
  24. `sdesc` varchar(200) NOT NULL DEFAULT '',
  25. `requirements` varchar(1000) NOT NULL DEFAULT '',
  26. `company` varchar(15) NOT NULL DEFAULT '',
  27. PRIMARY KEY (`ID`)
  28. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  29.  
  30. --
  31. -- Dumping data for table `admin_jobs`
  32. --


i nie mam juz pojecia czemu nie moge zapisac do tej utworzonej bazy niczego, lacze sie z nia prawidlowo, przygotowalem forme ktora robi mi submit do tej bazy a tu mam kod ktory jest wywolywany przez forme aby zapisac do bazy
  1. <?php 
  2. include("../../config.inc.php");
  3.  
  4. $company=$_POST['company'];
  5. $title=$_POST['title'];
  6. $location=$_POST['location'];
  7. $position=$_POST['position'];
  8. $sdesc=$_POST['sdesc'];
  9. $requirements=$_POST['requirements'];
  10.  
  11. mysql_connect($host,$user,$password);
  12. @mysql_select_db($database) or die ("Unable to select database");
  13.  
  14. $query = "INSERT INTO admin_jobs VALUES ('','$company','$title','$location','$position','$sdesc','$requirements')";
  15. mysql_query($query);
  16.  
  17. ?>

ucze sie z jednego tutoriala ktory to jak dla mnie ma latwo opisane jednak nie zupelnei to dziala moze ktos mi pomoc wskazac blad questionmark.gif? - ja osobiscie uwazam ze cos skaszanilem przy bazie ale to ja smile.gif

Ten post edytował andy84 6.02.2007, 00:10:32


--------------------
Linux is like Wigwam - no Windows, no Gates and apache inside :D
Go to the top of the page
+Quote Post
spryciula
post 6.02.2007, 00:29:18
Post #2





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 9.12.2006

Ostrzeżenie: (0%)
-----


spróbuj tak:


  1. <?php
  2. $query = "INSERT INTO admin_jobs (`company`,`title`, `location`, `position`, `sdesc`, `requirements`) VALUES ('$company','$title','$location','$position','$sdesc','$requirements')";
  3. mysql_query($query) or die (mysql_error());
  4. ?>


a poza tym, jak udało ci się stworzyć tabele z takim polem
`requirements` varchar(1000) NOT NULL default '', pole varchar może mieć max 255 znaków

po druugie, czy ID nie powinno być auto_increment, ale może tego nie potrzebujesz,

zawsze możesz sobie wyświetlić komunikat błędu, za pomocą

  1. <?php
  2. or die (mysql_error())
  3. ?>


Ten post edytował spryciula 6.02.2007, 00:42:55
Go to the top of the page
+Quote Post
frickle
post 6.02.2007, 09:37:53
Post #3





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 20.04.2006
Skąd: Kraków/Lublin/Lubartów

Ostrzeżenie: (0%)
-----


Musisz w zapytaniu wziąć to wszystko w cudzysłowy i na dodatek dać kropki jako operatory konkatenacji ciągu. Połączenie apostrofów i cudzysłowów jest konieczne bo to wszystko to są zmienne tekstowe, i w zapytaniu muszą być w apostrofach.

  1. <?php
  2. $query = "INSERT INTO admin_jobs VALUES ('','".$company."','".$title."','".$location."','".$position."','".$sdesc."','".$requirements."')";
  3. ?>


a efektem tego dla SQL-a będzie taki ciąg:

  1. INSERT INTO admin_jobs VALUES ('','company','title','location','position','sdesc','requirements')


Oczywiście wartościami będą wartości zmiennych.
A jak to nie pomoże to możesz jeszcze spróbować tak:

  1. <?php
  2. $query = "INSERT INTO admin_jobs (company,title,location,position,sdesc,reqiurements) VALUES ('".$company."','".$title."','".$location."','".$position."','".$sdesc."','".$requirements."')";
  3. ?>


wtedy pokazujesz mu już dokładnie co ma gdzie wstawić. I powinno działać.

Aha, nie wiem czemu BBCode wstawia mi przed cudzysłowami slashe. Ich ma tam nie być.


--------------------
Lepiej kijek obcinkować niż go potem pogrubasić.
Go to the top of the page
+Quote Post
andy84
post 6.02.2007, 13:24:00
Post #4





Grupa: Zarejestrowani
Postów: 165
Pomógł: 0
Dołączył: 14.11.2005
Skąd: London

Ostrzeżenie: (0%)
-----


Cytat(spryciula @ 5.02.2007, 23:29:18 ) *
spróbuj tak:
  1. <?php
  2. $query = "INSERT INTO admin_jobs (`company`,`title`, `location`, `position`, `sdesc`, `requirements`) VALUES ('$company','$title','$location','$position','$sdesc','$requirements')";
  3. mysql_query($query) or die (mysql_error());
  4. ?>


a poza tym, jak udało ci się stworzyć tabele z takim polem
`requirements` varchar(1000) NOT NULL default '', pole varchar może mieć max 255 znaków

po druugie, czy ID nie powinno być auto_increment, ale może tego nie potrzebujesz,

zawsze możesz sobie wyświetlić komunikat błędu, za pomocą

  1. <?php
  2. or die (mysql_error())
  3. ?>



Dzieki za przypomnienie o wyrzucaniu bledu - to jest co dostaje obecnie smile.gif sql poprawilem jest teraz jak nalezy "Column count doesn't match value count at row 1" tu jest blad ide popatrzec nad skryptem zapisu tak jak fricle radzil dzieki za pomoc smile.gif

Ok sprawdzilem te sposoby zapisu jednak ciagle dostaje 'Column count doesn't match value count at row 1' ide na google cos poszperac jak cos to piszcie pozdrawiam

slepy jestem fricle sory smile.gif - respect zapomnialem o '' na poczatku przed '".$company"' teraz smiga dzieki za pomoc
  1. <?php
  2. $query = "INSERT INTO admin_jobs VALUES ('','".$company."','".$title."','".$location."','".$position."','".$duration."','".$sdesc."','".$requirements."')";
  3.  
  4. mysql_query($query) or die (mysql_error());
  5. ?>


Ten post edytował andy84 6.02.2007, 14:08:36


--------------------
Linux is like Wigwam - no Windows, no Gates and apache inside :D
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 17:41