Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dodawanie danych
Forum PHP.pl > Forum > Bazy danych > MySQL
Wieviór
Czy może mi ktoś napisać prosty kod. Po prostu wpisuje jakieś dane do formularza na stronie, kilkam dodaj, i te dane są zachowywane jako rekordy w danej tabeli. Jestem początkujący w mySQL tongue.gif
spenalzo
MHm.
http://www.mysql.com/doc/en/INSERT.html
Prosze bardzo - masz wszystko.
Foxx
Mega podstawowy:
[php:1:8afbc04045]<?php
/tu łączenie z bazą
?>
<form action="" method="POST">
<input name="imie"></input>
<input type="submit" name="submit"></input>
</form>
<?
if($_POST['submit']){
$sql= "INSERT INTO tabela (imie) VALUES ('".$_POST['imie']."')";
mysql_query($sql) or die("nie da rady");
}
?>[/php:1:8afbc04045]
spenalzo
Cytat
[php:1:395262113e]<?
if($_POST['submit']){
  $sql= "INSERT INTO tabela (id, imie) VALUES ('', '".$_POST['imie']."')";
  mysql_query($sql) or die("nie da rady");
}
?>[/php:1:395262113e]

Powiedz po co dodajesz pustą wartość?
[php:1:395262113e]<?
if($_POST['submit']){
$sql= "INSERT INTO tabela (imie) VALUES ('".$_POST['imie']."')";
mysql_query($sql) or die("nie da rady");
}
?>[/php:1:395262113e]
Po prostu pola któego nei chcesz dodawać pomijasz.
Poza tym za VALUES mogą być wartości rozdzielone przecinkami:
[sql:1:395262113e]INSERT INTO tabela (pole1, pole2) VALUES ('wart1','wart2'), ('wart3','wart4'), ('wart5','wart6'), ('wart7','wart8')[/sql:1:395262113e]
Doda to 4 wiersze na raz.
Wieviór
zrobiłem:
[php:1:111c9eefc3]<body>
<?
$dbhost = 'localhost';
$dbname = 'mateooo';
$dblogin = 'xxx';
$dbhaslo = 'xxx';
$connect = mysql_connect($dbhost, $dblogin, $dbhaslo) or die ("brak polaczenia");
mysql_select_db($dbname, $connect) or die("nie mozna wybrac bazy");
?>
<form action="" method="POST">
<input name="home"></input>
<input name="hgol"></input>
<input name="agol"></input>
<input name="away"></input>
<input type="submit" name="submit"></input>
</form>
<?
if($_POST['submit']){
$sql= "INSERT INTO mecze (id, home, hgol, agol, away) VALUES ('', '".$_POST['home']."', '".$_POST['hgol']."', '".$_POST['agol']."', '".$_POST['away']."')";
mysql_query($sql) or die("nie da rady");
}
?>
<?
mysql_close($connect);
?></body>[/php:1:111c9eefc3]

i nie działa sad.gif
Foxx
Ale nie napiszesz co wyświetla...?
Wieviór
forumalrz i pod spodem: nie da rady
spenalzo
[php:1:e8bf7059d5]<?php
mysql_query($sql) or die(mysql_error());
?>[/php:1:e8bf7059d5]
Daj tak i powiedz co wyświetla.
Wieviór
Kod
Unknown column 'id' in 'field list'
spenalzo
|TO już wiadomo - nie masz pola o takiej nazwie w bazie.
Pola w INSERT muszą odpowiadać nazwom w bazie!!
Foxx
dobra, nie wiedziałem ze mój błąd będzie miał takie konsekwencje biggrin.gif
chyba potrafisz zinterpretować najprostszy komunikat?
Jak nie masz w tabeli pola id to go nie dodawaj.
przeczytaj też co napisał spenalzo o dodawaniu pustych pól [o ile są w tabeli w ogóle]
Wieviór
Dzieki chłopaki! Działa! Oboje dostajecie ode mnie "pomógł mi"
DeyV
Cytat
Poza tym za VALUES mogą być wartości rozdzielone przecinkami:
[sql:1:e30b33c1f9]INSERT INTO tabela (pole1, pole2) VALUES ('wart1','wart2'), ('wart3','wart4'), ('wart5','wart6'), ('wart7','wart8')[/sql:1:e30b33c1f9]
Doda to 4 wiersze na raz.


A to numer - nie wiedziałem, że MySQL pozwala na taką składnię. A przecież nawet phpMyAdmin generuje zapytania w tej postaci. Ale człowiek potrafi być ślepy...
Dzięki, spen biggrin.gif
Wieviór
Jak zrobić by mi się pokazywał tylko jeden ostatni rekord? Albo nie, ostatni i przedostatni
spenalzo
Załóżmy że masz pole ID do identyfikacji rekordów:
[sql:1:86f04cd633]ORDER BY ID DESC LIMIT 2[/sql:1:86f04cd633]
Wieviór
Ale co, gdzie i jak? Co mam zrobić w kodzie?
spenalzo
Normalnie wykonujesz zapytanie, z tym, że za ID podstawiasz nazwe pola numerycznego, które identyfikuje rekord - może to być data, może być ID:
[sql:1:ec1eacc276]SELECT * FROM jakastabela ORDER BY ID LIMIT 2[/sql:1:ec1eacc276]
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.