Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MSSQL]INSERT INTO problem, Puste komórki
pablo114
post
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 11.07.2007

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


Witam
Mam takiego inserta
  1. <?php
  2. mssql_query("INSERT INTO MSP_News (NewsId,NewsTitle,NewsText,NewsDate) VALUES ('$idnew','$newstitle','$newstext','$newsdate')");
  3. ?>

I oczywiście działa ale dlaczego samoczynnie dodaje sie następna liczba do kolumny NewsId
(IMG:http://img396.imageshack.us/img396/212/waajegomacjb1.jpg)
w tym wypadku 3
Przez co później w module, który pobiera newsy mam luki.

To skrypt który tworzy tabele MSP_News
  1. CREATE TABLE [MSP_News] (
  2. [NewsId][int] NOT NULL,
  3. [NewsTitle] [varchar] (100) NOT NULL,
  4. [NewsText] [varchar] (1000) NOT NULL,
  5. [NewsDate] [datetime] NOT NULL
  6. )


Ten post edytował pablo114 7.09.2008, 21:51:30
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Bo jest ustawione w bazie dla tego pola właściwość auto_increment która pozwala ustalić numer rekordu.

// EDIT
Kurcze ja i moje "dokładne" czytanie :/ Ech... Pokaż więcej kodu o zobaczymy co jest nei tak.

Ten post edytował wookieb 7.09.2008, 22:55:37
Go to the top of the page
+Quote Post
pablo114
post
Post #3





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 11.07.2007

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


Tylko jak to wyłączyć? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
webdice
post
Post #4


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Nie znam MSSQL, ale wydaje mi się że tego rekordu fizycznie tam nie ma. Zobacz jaki wynik zwraca Ci:

  1. SELECT COUNT(`id`) FROM `MSP_News`
Go to the top of the page
+Quote Post
pablo114
post
Post #5





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 11.07.2007

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


  1. SELECT COUNT('NewsId') FROM MSP_News

zwraca 3, więc jest i dlatego w module news tworzy mi się luka, bo chce wyświetlić NewsTitle, NewsText i NewsDate a te komórki są puste
Go to the top of the page
+Quote Post
webdice
post
Post #6


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Dziwne jest to że skoro pozostałe pola są not null, to dodaje rekord z samym id. Pokaż trochę więcej kodu.
Go to the top of the page
+Quote Post
pablo114
post
Post #7





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 11.07.2007

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


Ok, dane z formularza czyli tresc newsa ($newstext) tytuł newsa ($newstitle) i data ($newsdate) trafiają do tego pliku
  1. <?php
  2. if (!isset($_SESSION["adminsid"]) OR !isset($_SESSION["admincode"]))
  3. {
  4. echo "$lang_notloged<a href=index.php?page=login>$lang_log_in</a>";
  5. exit();
  6. }
  7. else
  8. {
  9. if ( isset( $_POST ) )
  10.   $postArray = &$_POST ;    
  11. else
  12.   $postArray = &$HTTP_POST_VARS ;
  13.  
  14. foreach ( $postArray as $sForm => $value )
  15. {
  16. $postedValue = $value;
  17. $newstext = $postedValue;
  18. }
  19. $newstitle = $_POST['newstitle'];
  20. $newsdate = $_POST['newsdate'];
  21. //Tu pobieram największą liczbe z NewsId
  22. $id = mssql_query("SELECT TOP 1 NewsId FROM MSP_News ORDER BY NewsId DESC");
  23. $row = mssql_fetch_row($id);
  24. $idnew = (1 + $row[0]);
  25.  
  26. mssql_query("INSERT INTO MSP_News (NewsId,NewsTitle,NewsText,NewsDate) VALUES ('$idnew','$newstitle','$newstext','$newsdate')");
  27. echo "$lang_msgsaved<a href=index.php?page=admin/addnews>$lang_back</a>";
  28. }
  29. ?>

No i tak jak wcześniej pisałem. Wszystko dotyczące newsa, którego napisałem do bazy trafia we właściwy sposób ale dodatkowo zapisuje sie jeszcze nastepny NewsId z niczego
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 6.10.2025 - 14:44