[PHP][MYSQL] Formularz


(Ramelek Lost) #1

Witam :wink:

Chciałem wykonać skrypt dodający do bazy danych dane z formularza. Znalazłem w google przykładowy skrypt (zamieściłem kod źródłowy na dole posta) jednak działa on tylko dla dwóch pól formularza. Próbowałem go przerobić jednak pojawia się błąd z dodawaniem danych do Bazy. Prosiłbym o pomoc :slight_smile:

Prosiłbym również zmianę skryptu aby właśnie przesłane dane miały przypisane ID. Przy każdym dodaniu danych z formularza otrzymują one ID równe "Ostatnie ID" + 1 :wink:

Potrzebuję ten skrypt z ID aby na stronie wyświetlał się ostatni wpis, a skrypt na to wyświetlanie znam.

[update]: Już sobie poradziłem :wink:

Formularz w .html:

Data: (przykład: 5.04.09 (Niedziela) )

Godzina: 

Zapisy: (Otwarte czy Zamknięte) (link do tematu na forum)

Serwer: (ip serwera)

VT: (ip vt)

Podaj haslo (zabezpieczenie): 

[/code]




[b]Plik form.php:[/b]

[code]<?php // odbieramy dane z formularza $data = $_POST['data']; $godzina = $_POST['godzina']; $zapisy = $_POST['zapisy']; $zapisylink = $_POST['zapisylink']; $serwer = $_POST['serwer']; $vent = $_POST['vent']; $haslo = $_POST['haslo']; if($haslo == tutaj_haslo) { // łączymy się z bazą danych $connection = @mysql_connect('localhost', 'user', 'pass') or die('Brak połączenia z serwerem MySQL'); $db = @mysql_select_db('baza', $connection) or die('Nie mogę połączyć się z bazą danych'); // dodajemy rekord do bazy $ins = @mysql_query("INSERT INTO mixy SET data='$data', zapisy='$zapisy', zapisy='$zapisylink', serwer='$serwer', vent='$vent', godzina='$godzina'"); if($ins) echo "Rekord został dodany poprawnie"; else echo "Błąd nie udało się dodać nowego rekordu"; mysql_close($connection); } ?>
Oryginalny skrypt na dwie dane z formularza:

<?php

// odbieramy dane z formularza

$imie = $_POST['imie'];

$email = $_POST['email'];


if($imie and $email) {


    // łączymy się z bazą danych

    $connection = @mysql_connect('local, 'user', 'pass')

    or die('Brak połączenia z serwerem MySQL');

    $db = @mysql_select_db('baza', $connection)

    or die('Nie mogę połączyć się z bazą danych');


    // dodajemy rekord do bazy

    $ins = @mysql_query("INSERT INTO test SET imie='$imie', email='$email'");


    if($ins) echo "Rekord został dodany poprawnie";

    else echo "Błąd nie udało się dodać nowego rekordu";


    mysql_close($connection);

}


?>

(mario@) #2
zapisy='$zapisy', zapisy='$zapisylink'

Chyba powinno być coś podobnego

zapisy='$zapisy', zapisylink='$zapisylink'

Nie lepiej używać INSERT INTO mixy VALUES() ? Bo ten SET to bardziej mi osobiście kojarzy się z UPDATE niż wstawianiem nowych wartości.

Powinieneś w bazie danych stworzyć komórkę np id i nadać jej dodatkowo = auto_increment NOT NULL i zdefiniować ją jako PRIMARY KEY - albo przez www stwórz sobie całą tabele na nowo w googlach znajdziesz jak ustawić key. Później tylko dodajesz do INSERT INTO mixy SET -> id=NULL