Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Dodawanie nowych rekordów
maly_pirat
post
Post #1





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 13.06.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
Lion_87
post
Post #2





Grupa: Zarejestrowani
Postów: 850
Pomógł: 120
Dołączył: 15.02.2007
Skąd: Łódź

Ostrzeżenie: (10%)
X----


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(
Powód edycji: poprawiłem bbCode (ociu)
Go to the top of the page
+Quote Post
Shili
post
Post #3





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

Ostrzeżenie: (0%)
-----


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

Ten post edytował Shili 27.07.2008, 19:12:06
Go to the top of the page
+Quote Post
maly_pirat
post
Post #4





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 13.06.2007

Ostrzeżenie: (0%)
-----


W końcu Przedszkole winksmiley.jpg

W którym miejscu czyli mam dodać ")"
Go to the top of the page
+Quote Post
Lion_87
post
Post #5





Grupa: Zarejestrowani
Postów: 850
Pomógł: 120
Dołączył: 15.02.2007
Skąd: Łódź

Ostrzeżenie: (10%)
X----


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')

");

Ten post edytował Lion_87 27.07.2008, 19:33:33
Go to the top of the page
+Quote Post
nowotny
post
Post #6





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
maly_pirat
post
Post #7





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 13.06.2007

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Ociu
post
Post #8





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




  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. ?>
Go to the top of the page
+Quote Post
maly_pirat
post
Post #9





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 13.06.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
nowotny
post
Post #10





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 07:12