Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/mysql] Edycja rekordu
Forum PHP.pl > Forum > Przedszkole
buliyo
Ogolnie mam jakies tam wzgledne pojecie o tym jak to ma dzialac.. ciezko mi to tylko zakodowac..
chcialbym zrobic liste z warunkiem za pomoca kodu..
  1. <?php
  2. $zapytanie = "select * from klucze where wydawca like "J.Koz" order by data";
  3. $wykonaj = mysql_query ($zapytanie);
  4. while($wiersz=mysql_fetch_array ($wykonaj)) {
  5. echo "<b>Klucz Produktu:</b> ".$wiersz['klucz']."<br>
  6. <b>".$wiersz['data']."</b> ".$wiersz['odbiorca']."<br>
  7. ";
  8. }
  9.  
  10. ?>

chcialebym aby tak wyswietlane linie w petli byly linkami do powiedzmy pliku edit.php w ktorym zmienna rekordu bedzie generowana na podstawie odbiorcyi daty gdzyz w tabeli nie mam pola id..
w pliku edit jak sie domyslam bedzie formularz ktory bedzie zczytywal dane z bazy.. tylko jak pozniej nadpisac rekord nie dodajac nowego? prosze o pomoc..
Cysiaczek
Nie jestem pewien, co chcesz zrobić, ale...

  1. <?php
  2. $zapytanie="UPDATE klucze SET pole='$wartosc' WHERE wydawca=jakis_wydawca"
  3. ?>


Po prostu masz kilka podstawowych zapytań do bazy:
SELECT
UPDATE
DELETE
buliyo
a jak zrobic aby byl jeden plik edit.php i w nim za pomoca zmiennej wczytywane bylyby rekordy..?
Cysiaczek
Z tego, co zrozumiełem, to chcesz, aby pole ID w bazie danych było 'symulowane' zmienną zawartą w kodzie programu.
Czy nie lepiej uprościć sobie życie i stworzyć pole ID w bazie?
Sam bardzo czesto dodaję pola id w tabelach, co do których nie jestem pewien, czy nie będę musiał skorzystac z takiego dobrodziejstwa.
buliyo
szczerze to wlasnie przeszukuje fora w celu znalezeinia polecenia MYSQL ktore doda mi pole id z autonumeracja..
Cysiaczek
oj!
Easy tiger.
Coś takiego to najlepiej zrobić przy tworzeniu bazy danych.
Najprościej zrobić to w phpMyAdmin. Masz ten program na serwerze?
buliyo
mam i wlasnie nie potrafie w nim wklepac polecenia ktore doda mi kolumne do tabeli.. a wiem ze mozna to zrobic jakos..
nie chce mi sie od nowa zbytnio pisac calej tabeli bo troche tych pol jest..
Cysiaczek
Poszukaj dobrze. Jest tam opcja (gdy przeglądasz strukturę tabeli) 'wstaw [...] ' za/przed/na koncu/na poczatku

No cóż. Musisz się nauczyć obsługi tej dość prostej aplikacji do zarządzania bazą.
buliyo
faktycznie jest! sorrki!
a jak ustawic tam aby pole automatycznie przybieralo jakas wartosc liczbowa?
autoinkrementacja to sie nazwya bodajrze winksmiley.jpg
Cysiaczek
tak. Unique oraz Autoincrement
buliyo
oki mam juz plik proba.php
ktory wyswietla mi linki do pliku edit.php?rekord=$numer_id_rekordu
co moge zrobic dalej?snitch.gif
krzyszbi
  1. <?php
  2. echo '<a href="edit_form.php?rekord='.$wiersz['id'].'">'.$wiersz['data'].' '.$wiersz['klucz'].'</a><br />';
  3. ?>

niezaszkodzi przeczytać
buliyo
chcialbym aby po kliknieciu w http://e24.net.pl/klucze/edit.php?rekord=1
ladowalo do formularza dane rekordu o numerze id=1
a nastepnie nadpisywalo go a nie tworzylo nowy.. prosze pomozcie..
krzyszbi
plik edit_form.php
  1. <?php
  2. $zapytanie = "select * from klucze where id=".$_GET['id'];
  3. //nieufaj zmiennym z $_GET $_POST trzeba filtrować
  4. $wykonaj = mysql_query ($zapytanie);
  5. $wiersz= mysql_fetch_array($wykonaj )
  6. echo'<form action="edit.php" method="post">';
  7. echo'<input type="hidden" name="pole_id" value="'.$_GET['id'].'" />'; 
  8. //pole niewidocznie w formularzu 
  9. echo'<input type="text" name="pole_klucz" value="'.$wiersz['klucz'].'" />';
  10. //i podobnie na każde pole jakie cipotrzeba zmienić
  11. echo'<input type="submit" value="zamień" />';
  12. ?>

edit.php
  1. <?php
  2. $zapytanie = "UPDATE klucze SET pole_klucz='".$wiersz['klucz']."' where id=".$_POST['id'];
  3. //kolejne pola oddzielasz przecinkami
  4. //i dalej wykonujesz zapytanie i sprawdzasz czy się powiodło
  5. ?>

więcej info po EN
buliyo
Parse error: parse error, unexpected T_ECHO in /klucze/form_edit.php on line 10
krzyszbi
  1. <?php
  2. $wiersz= mysql_fetch_array($wykonaj );
  3. ?>

mój błąd (pisane z palca - brak średnika) ale cos takiego powinieneś się sam nauczyć jak to rozpoznawać i naprawiac
buliyo
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /klucze/form_edit.php on line 9

troche mnie przerasta ten kod i nie moge go do konca zrozumiec sad.gif
krzyszbi
to może wklej go i struktóre bazy
bo tak z kosmosu to ja nie dowiem co może być źle sad.gif
buliyo
  1. CREATE TABLE `klucze` (
  2. `klucz` varchar(150) NOT NULL DEFAULT '',
  3. `data` varchar(25) NOT NULL DEFAULT '',
  4. `wydawca` varchar(150) NOT NULL DEFAULT '',
  5. `odbiorca` varchar(150) NOT NULL DEFAULT '',
  6. `nazwa` varchar(150) NOT NULL DEFAULT '',
  7. `kod` varchar(15) NOT NULL DEFAULT '',
  8. `miasto` varchar(100) NOT NULL DEFAULT '',
  9. `ulica` varchar(100) NOT NULL DEFAULT '',
  10. `email` varchar(50) NOT NULL DEFAULT '',
  11. `www` varchar(150) NOT NULL DEFAULT '',
  12. `nip` varchar(25) NOT NULL DEFAULT '',
  13. `telefon` varchar(15) NOT NULL DEFAULT '',
  14. `id` int(11) NOT NULL AUTO_INCREMENT,
  15. PRIMARY KEY (`klucz`,`wydawca`,`odbiorca`),
  16. UNIQUE KEY `id` (`id`),
  17. KEY `klucz` (`klucz`,`wydawca`,`odbiorca`)
  18. ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=7 ;


form_edit.php
  1. <?php
  2. $connection = @mysql_connect('xxx', 'xxx', 'xxx')
  3. or die('Brak połączenia z serwerem MySQL');
  4. $db = @mysql_select_db('xxx', $connection)
  5. or die('Nie mogę połączyć się z bazą danych');
  6. $zapytanie = "select * from klucze where id=".$_GET['id'];
  7. //nieufaj zmiennym z $_GET $_POST trzeba filtrować
  8. $wykonaj = mysql_query ($zapytanie);
  9. $wiersz= mysql_fetch_array($wykonaj);
  10. echo'<form action="edit.php" method="post">';
  11. echo'<input type="hidden" name="pole_id" value="'.$_GET['id'].'" />'; 
  12. //pole niewidocznie w formularzu 
  13. echo'<input type="text" name="pole_klucz" value="'.$wiersz['klucz'].'" />';
  14. //i podobnie na każde pole jakie cipotrzeba zmienić
  15. echo'<input type="text" name="pole_odbiorca" value="'.$wiersz['odbiorca'].'" />';
  16. //i podobnie na każde pole jakie cipotrzeba zmienić
  17. echo'<input type="submit" value="zamień" />';
  18. ?>

edit.php
  1. <?php
  2. $connection = @mysql_connect('xxx', 'xxx', 'xxx')
  3. or die('Brak połączenia z serwerem MySQL');
  4. $db = @mysql_select_db('xxx', $connection)
  5. or die('Nie mogę połączyć się z bazą danych');
  6. $zapytanie = "UPDATE klucze SET pole_klucz='".$wiersz['klucz']."', pole_odbiorca='".$wiersz['odbiorca']."' where id=".$_POST['id'];
  7. //kolejne pola oddzielasz przecinkami
  8. //i dalej wykonujesz zapytanie i sprawdzasz czy się powiodło
  9. ?>
krzyszbi
plik lista.php
  1. <?php
  2. //najpierw połączenie z bazą
  3. $zapytanie = "select * from klucze where wydawca like 'J.Koz' order by data ";
  4. $wykonaj = mysql_query ($zapytanie);
  5. //echo mysql_errno() . ": " . mysql_error();
  6.  
  7. while($wiersz=mysql_fetch_array ($wykonaj)) 
  8. {
  9. //print_r($wiersz);
  10. echo '<a href="edit_form.php?id='.$wiersz['id'].'">'.$wiersz['klucz'].' '.$wiersz['odbiorca'].'</a><br />';
  11. }
  12.  
  13. ?>

edit_form.php
  1. <?php
  2. //polączenie z bazą
  3. $zapytanie = "select * from klucze where id=".$_GET['id'];
  4. //nieufaj zmiennym z $_GET $_POST trzeba filtrować
  5. $wykonaj = mysql_query ($zapytanie);
  6. $wiersz= mysql_fetch_array($wykonaj);
  7. echo'<form action="edit.php" method="post">';
  8. echo'<input type="hidden" name="id" value="'.$_GET['id'].'" />'; 
  9. //pole niewidocznie w formularzu 
  10. echo'<input type="text" name="pole_klucz" value="'.$wiersz['klucz'].'" />';
  11. //i podobnie na każde pole jakie cipotrzeba zmienić
  12. echo'<input type="text" name="pole_odbiorca" value="'.$wiersz['odbiorca'].'" />';
  13. //i podobnie na każde pole jakie cipotrzeba zmienić
  14. echo'<input type="submit" value="zamień" />';
  15. ?>

edit.php
  1. <?php
  2. //najpierw połączenie z bazą
  3. echo$zapytanie = "UPDATE klucze SET klucz='".$_POST['pole_klucz']."', odbiorca='".$_POST['pole_odbiorca']."' where id=".$_POST['id'];
  4. $wynik = mysql_query ($zapytanie);
  5. echo mysql_errno() . ": " . mysql_error();
  6. //kolejne pola oddzielasz przecinkami
  7. //i dalej wykonujesz zapytanie i sprawdzasz czy się powiodło
  8. echo '<br /><a href="lista.php">lista</a><br />';
  9. ?>

kodik działa
buliyo
tak jak napisales.. kodzik dziala! wielkie dzieki za poswiecenie czasu guitar.gif
mam jeszcze jedno pytanie jak zabezpieczyc plik edit_form.php
aby user nie mogl zmieniac sobie rekordow ktore chce edytowac recznie przez zmiane numeru w adresie..
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.