Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Dodawanie nowych rekordów
Forum PHP.pl > Forum > Przedszkole
maly_pirat
Plik config.php
Kod
<?php

$polaczenie = mysql_connect('localhost', 'root', 'krasnal') or die("Brak poł±czenia: " . mysql_error());
$baza = mysql_select_db('priv',$polaczenie) or exit("Nie wybrano bazy, bł±d: " . mysql_error());

?>


dodaj_film.php

Kod
<form action="dodaje_film.php" method="post">
Nazwa filmu: <input name="nazwa" size="50" /> <br>
Gatunek: <input name="gatunek" size="50" /> <br>
Ocena: <input name="ocena" size="50" /> <br>
Więcej info: <input name="info" size="50" /> <br>
    <input type="submit" name="wprowadz" value="Dodaj" />
    <input type="reset" value="Resetuj" />
</form>


* Kod HTML, ale wyżej jest kod php, który odpowiada, za to żeby tylko Użytkownicy Zarejestrowani, mieli dostęp.
Po kodzie html, jeszcze pada tylko wyrażenie:
  1. <?php
  2. }
  3. ?>

Nic więcej.

dodaje_film.php

  1. <?php
  2. include('config.php');
  3.  
  4. if (isset $_POST['nazwa']) {
  5. if (isset $_POST['gatunek']) {
  6. if (isset $_PSOT['ocena']) {
  7. if (isset $_POST['info']) {
  8. $nazwa=mysql_real_escape_string($_POST['nazwa'])
  9. $gatunek=mysql_real_escape_string($_POST['gatunek'])
  10. $ocena=mysql_real_escape_string($_POST['ocena'])
  11. $info=mysql_real_escape_string($_POST['info'])
  12. mysql_query("INSERT INTO `filmy ` ( `id` , `nazwa` , `gatunek` , `ocena` , `info`) VALUES ('', '$nazwa', '$gatunek', '$ocena', '$info')";
  13. echo "Dodaono";
  14. }
  15. }
  16. }
  17. }
  18. else
  19. {
  20. echo "Nie wszystkie pola sa wypelnione!";
  21. }
  22. ?>


i błąd:
Kod
Parse error: syntax error, unexpected T_VARIABLE, expecting '(' in c:\usr\krasnal\www\admin\priv\dodaje_film.php on line 4


Błąd niby w ( ale nawet jak go usune, to i tak ten sam komunikat. : X
Lion_87
ojej
zobacz ta linie
  1. <?php
  2. mysql_query("INSERT INTO `filmy ` ( `id` , `nazwa` , `gatunek` , `ocena` , `info`) VALUES ('', '$nazwa', '$gatunek', '$ocena', '$info')";
  3. ?>



brak klamry " ) " dla --- > mysql_query(
Shili
http://pl2.php.net/isset
I zobacz sobie jak się używa funkcji (czy tam elementu składni ^^) isset.
A dokładniej zwróć uwagę na nawiasy winksmiley.jpg
maly_pirat
W końcu Przedszkole winksmiley.jpg

W którym miejscu czyli mam dodać ")"
Lion_87
yhhhhhhhhhy

masz

  1. <?php
  2. mysql_query ( "INSERT INTO `filmy ` ( `id` , `nazwa` , `gatunek` , `ocena` , `info`) VALUES ('', '$nazwa', '$gatunek', '$ocena', '$info')";
  3. ?>


a tak

mysql_query ("INSERT INTO `filmy `

( `id` , `nazwa` , `gatunek` , `ocena` , `info`)

VALUES ('', '$nazwa', '$gatunek', '$ocena', '$info')

");
nowotny
Cytat(maly_pirat @ 27.07.2008, 19:43:30 ) *
  1. <?php
  2. $nazwa=mysql_real_escape_string($_POST['nazwa'])
  3. $gatunek=mysql_real_escape_string($_POST['gatunek'])
  4. $ocena=mysql_real_escape_string($_POST['ocena'])
  5. $info=mysql_real_escape_string($_POST['info'])
  6. ?>

A średniki to kto zjadł...? o_O
maly_pirat
Dziękuje za pomoc. Chodź mam problem z pustymi polami.
Gdy wejde od razu do dodaje_film.php i sprawdzam rekordy w filmy.php (które mam dodane w bazie)
pokazuje mi puste rekordy. Ponieważ wszedłem w dodaje_filmy.php i dodało puste pole.

Problem jest coś w funkcją else,
Kod
Parse error: syntax error, unexpected T_ELSE in c:\usr\krasnal\www\admin\priv\dodaje_film.php on line 18


I jak usune
  1. <?php
  2. else {
  3. echo ...
  4. }
  5. ?>


To wtedy dodaje puste rekordy, a jak zostawie to błąd się pokazuje.
Ociu
  1. <?php
  2. if (isset($_POST['nazwa']) && isset($_POST['gatunek']) && isset($_POST['ocena']) && isset($_POST['info'])) {
  3.  $nazwa=mysql_real_escape_string($_POST['nazwa']);
  4.  $gatunek=mysql_real_escape_string($_POST['gatunek']);
  5.  $ocena=mysql_real_escape_string($_POST['ocena']);
  6.  $info=mysql_real_escape_string($_POST['info']);
  7.  mysql_query("INSERT INTO `filmy ` ( `id` , `nazwa` , `gatunek` , `ocena` , `info`) VALUES ('', '$nazwa', '$gatunek', '$ocena', '$info')");
  8.  echo "Dodaono";
  9. }else{
  10.  echo "Nie wszystkie pola sa wypelnione!";
  11. }
  12. ?>
maly_pirat
1) Dzięki, wszystko działa, tylko nadal jest możliwośc wysłania pustego rekordu.
2) Stworzyłem skrypt, która ma za zadanie usuwać filmy. Wszystko działa jak należy, ale coś ID się wali :/

Odsyłacz do usuwania:
  1. <a href="<?php echo $_SERVER['PHP_SELF']; ?>?akcja=usun&id=<?php echo $rekord['id']; ?>">usuń</a>


Funkcja
  1. <?php
  2. if ($_GET['akcja']=='usun') {
  3.  
  4.  $id_do_usuniecia = $_GET['id'];
  5.  
  6. $zapytanie = "DELETE FROM filmy WHERE id=$id_do_usuniecia";
  7. $wynik = mysql_query($zapytanie) or die ('Nie usunięto filmu ' . mysql_error());
  8.  
  9. if ($wynik)
  10.  echo "Usunięto " . mysql_affected_rows($polaczenie) . "";
  11. }
  12. ?>


Jak pierwszy raz dodałem rekordy do tabeli, to wiadome miały ID: 1,2,3,4. Ale później je usunąłem.
Teraz na nowo dodaje nowe rekordy, i podpisuje je o ID: 5,6,7 zamiast od poczatku 1,2,3

Rekord `id` z filmy:
id int(11) Nie auto_increment
nowotny
Cytat(maly_pirat @ 28.07.2008, 13:07:18 ) *
1) Dzięki, wszystko działa, tylko nadal jest możliwośc wysłania pustego rekordu.

No to dodaj sprawdzcza czy pola nie są puste... :/

Cytat(maly_pirat @ 28.07.2008, 13:07:18 ) *
Jak pierwszy raz dodałem rekordy do tabeli, to wiadome miały ID: 1,2,3,4. Ale później je usunąłem.
Teraz na nowo dodaje nowe rekordy, i podpisuje je o ID: 5,6,7 zamiast od poczatku 1,2,3

Tak działają bazy danych... jest to zabezpieczenie przed nieumyślnym skasowaniem innych danych niż byśmy chcieli...
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.