• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Błąd nie udało się dodać nowego rekordu

VPS Starter Arubacloud
0 głosów
804 wizyt
pytanie zadane 10 czerwca 2017 w PHP przez kocyk Nowicjusz (230 p.)
zmienione kategorie 10 czerwca 2017 przez kocyk

Cześć, 

Mam pewien problem. Utworzyłem sobie bazę danych w phpMyAdmin, wszytko stoi lokalnie. Zrobiłem prostą stronę internetową z formularzem w celu dodawania do bazy nowych rekordów.

I tu pojawia się problem, bo dział mi dodawanie tu:

SQL

CREATE TABLE Produkt (
    ID_Produkt INT AUTO_INCREMENT PRIMARY KEY,
    Paliwo VARCHAR (50) NOT NULL
)  ENGINE=INNODB DEFAULT CHARSET=UTF8 COLLATE = UTF8_POLISH_CI;

HTML

<div class="formularz">
			
	<form action="dodaj.php" method="post">
		
	<a class="nazwa"> Produkt: </a> <input type="text" name="Paliwo" /><input type="submit" value="Dodaj" />
		
	</form>
		
</div>

PHP

 <?php
// odbieramy dane z formularza
$Paliwo = $_POST['Paliwo'];

if($Paliwo)
{
    
    // łączymy się z bazą danych
    $connection = @mysql_connect('localhost', 'root', '')
    or die('Brak połączenia z serwerem MySQL');
    $db = @mysql_select_db('dane', $connection)
    or die('Nie mogę połączyć się z bazą danych');
    
    // dodajemy rekord do bazy
    $ins = @mysql_query("INSERT INTO Produkt SET Paliwo='$Paliwo'");
    
    if($ins) echo "Rekord został dodany poprawnie";
    else echo "Błąd nie udało się dodać nowego rekordu";
    
    mysql_close($connection);
}

?> 

 

I tu dostaje komunikat "Rekord został dodany poprawnie" i faktycznie jest on w bazie danych.

Problem pojawi się tu:

SQL

CREATE TABLE Waluta (
    ID_Waluta INT AUTO_INCREMENT PRIMARY KEY,
    ID_Miesiąc INT NOT NULL,
 	Wartość DECIMAL (3,2) NOT NULL,
    FOREIGN KEY (ID_Miesiąc) REFERENCES Miesiąc (ID_Miesiąc)
)  ENGINE=INNODB DEFAULT CHARSET=UTF8 COLLATE = UTF8_POLISH_CI;

HTML

<form action="dodajW.php" method="post">
			
	<a class="nazwa"> ID_Miesiąc: </a> <input type="txt" name="ID_Miesiąc" />
	<a class="nazwa"> Wartość: </a> <input type="txt" name="Wartość" /><input type="submit" value="Dodaj" />
		
</form>

PHP

 <?php
// odbieramy dane z formularza
$ID_Miesiąc = $_POST['ID_Miesiąc'];
$Wartość = $_POST['Wartość'];

if($ID_Miesiąc and $Wartość)
{
    
    // łączymy się z bazą danych
    $connection = @mysql_connect('localhost', 'root', '')
    or die('Brak połączenia z serwerem MySQL');
    $db = @mysql_select_db('dane', $connection)
    or die('Nie mogę połączyć się z bazą danych');
    
    // dodajemy rekord do bazy
    $ins = @mysql_query("INSERT INTO Waluta SET ID_Miesiąc='$ID_Miesiąc', Wartość='$Wartość'" );
    
    if($ins) echo "Rekord został dodany poprawnie";
    else echo "Błąd nie udało się dodać nowego rekordu";
    
    mysql_close($connection);
}

?> 

A próbując dodać tu nowy rekord, dostaje informację: "Błąd nie udało się dodać nowego rekordu" :(

Zaznaczę, że jestem świeżak w tym, więc poproszę o jasne instrukcje :)

Z góry dziękuje za pomoc :)

 

 

1 odpowiedź

0 głosów
odpowiedź 10 czerwca 2017 przez Ehlert Ekspert (213,530 p.)
  1. Zmień kategorię, bo skoro tworzysz tabelę to bug jest po stronie php.
  2. W kodzie nie używamy języka polskiego, a tym bardziej znaków diakrytycznych. To proszenie się o kłopoty. 
  3. Przerzuć się na PDO, a przynajmniej na mysqli. PHP od wersji 7.0 nie posiada metod mysql_*.
  4. Wywal @ z kodu.
  5. Skopiuj dokładnie ten Insert który jest w stringu, wklej go do konsoli, podmień zmienne na wartości i zobacz, czy się wykonuje bez problemu.
komentarz 10 czerwca 2017 przez kocyk Nowicjusz (230 p.)
Dzięki za odpowiedź. Kategorie już poprawiłem.

Powiedzmy, że z pewnych przyczyn musi pozostać tak jak opisałem to.

 

Czy błąd może być np. w tym, że w bazie danych "WARTOŚĆ" mam jako DECIMAL a w formularzu typ podaje TXT ? a ID_Miesiąć w bazie jest INT a w formularzu text ?

Podobne pytania

0 głosów
0 odpowiedzi 107 wizyt
pytanie zadane 11 września 2016 w C# przez Kieszinho10 Początkujący (280 p.)
0 głosów
2 odpowiedzi 607 wizyt
pytanie zadane 21 kwietnia 2017 w SQL, bazy danych przez Piotr Krawczyk Nowicjusz (160 p.)
0 głosów
2 odpowiedzi 162 wizyt
pytanie zadane 24 sierpnia 2020 w Sieci komputerowe, internet przez Zdzichu875 Początkujący (260 p.)

92,845 zapytań

141,787 odpowiedzi

320,861 komentarzy

62,178 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...