Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MSSQL]INSERT INTO problem
Forum PHP.pl > Forum > PHP
pablo114
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

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. )
wookieb
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.
pablo114
Tylko jak to wyłączyć? winksmiley.jpg
webdice
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`
pablo114
  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
webdice
Dziwne jest to że skoro pozostałe pola są not null, to dodaje rekord z samym id. Pokaż trochę więcej kodu.
pablo114
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
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.