Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z edycja [mysql]
Plebanov
post
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 28.11.2008

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


Witam

Mam prosty skrypt do edycji i usuwania wpisow..usuwanie dziala a edycja nie :/..wie moze ktos co jest przyczyna??

  1. <?php
  2.  
  3. $connection = @mysql_connect('localhost', 'root', '')
  4.    or die('Brak połączenia z serwerem MySQL');
  5. $db = @mysql_select_db('baza', $connection)
  6.    or die('Nie mogę połączyć się z bazą danych');
  7.  
  8. $wynik = mysql_query("SELECT * FROM baza")
  9. or die('Błąd zapytania');
  10.  
  11. if(mysql_num_rows($wynik) > 0) {
  12.    echo "<table cellpadding=\"2\" border=1>";
  13.    while($r = mysql_fetch_assoc($wynik)) {
  14.        echo "<tr>";
  15.        echo "<td>".$r['imie']."</td>";
  16.        echo "<td>".$r['nazwisko']."</td>";
  17.        echo "<td>
  18.       <a href=\"view.php?a=del&amp;id={$r['id']}\">DEL</a>
  19.       <a href=\"view.php?a=edit&amp;id={$r['id']}\">EDIT</a>
  20.       </td>";
  21.        echo "</tr>";
  22.    }
  23.    echo "</table>";
  24. }
  25.  
  26. $a = trim($_GET['a']);
  27. $id = trim($_GET['id']);
  28.  
  29. if($a == 'edit' and !empty($id)) {
  30.    $wynik = mysql_query("SELECT * FROM baza WHERE
  31.    id='$id'")
  32.    or die('Błąd zapytania');
  33.    if(mysql_num_rows($wynik) > 0) {
  34.        $r = mysql_fetch_assoc($wynik);
  35.        echo '<form action="view.php" method="post">
  36.        <input type="hidden" name="a" value="save" />
  37.        <input type="hidden" name="id" value="'.$id.'" />
  38.        imię:<br />
  39.        <input type="text" name="imie"
  40.        value="'.$r['imie'].'" /><br />
  41.        nazwisko:<br />
  42.        <input type="text" name="nazwisko"
  43.        value="'.$r['nazwisko'].'" /><br />
  44.        <input type="submit" value="popraw" />
  45.        </form>';
  46.    }
  47. }
  48. elseif($a == 'save') {
  49.    $id = $_POST['id'];
  50.    $imie = trim($_POST['imie']);
  51.    $nazwisko = trim($_POST['nazwisko']);
  52.    mysql_query("UPDATE baza SET imie='$imie', nazwisko='$nazwisko' WHERE id='$id'")
  53.    or die('Błąd zapytania');
  54.    echo 'Dane zostały zaktualizowane';
  55. }
  56.  
  57. if($a == 'del' and !empty($id)) {
  58.    mysql_query("DELETE FROM baza WHERE id='$id'")
  59.    or die('Błąd zapytania: '.mysql_error());
  60.    echo 'Rekord został usunęty z bazy';
  61. }
  62.  
  63. ?>
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Kod
<input type="hidden" name="a" value="save" />

Ten element jest w tablicy $_POST, a nie $_GET. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Masz dwa wyjścia:
  1. nie polecane: skorzystać z tablicy $_REQUEST
  2. wstawić parametr do pola action: plik.php?parametr=wartosc. Wtedy - pomimo wysyłki przez POST będziesz miał parametry GET. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Plebanov
post
Post #3





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 28.11.2008

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


Cytat(erix @ 1.12.2008, 20:24:29 ) *
[*]wstawić parametr do pola action: plik.php?parametr=wartosc. Wtedy - pomimo wysyłki przez POST będziesz miał parametry GET. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
[/list]


Skorzystalem z 2 opcji i dziala (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ..dzieki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
DawPi
post
Post #4





Grupa: Zarejestrowani
Postów: 39
Pomógł: 1
Dołączył: 6.05.2007
Skąd: Kraków

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


Nie można tego:
Kod
$a = trim($_GET['a']);
$id = trim($_GET['id']);

Po prostu zamienić na:
Kod
$a = trim($_POST['a']);
$id = trim($_POST['id']);

?

Ten post edytował DawPi 1.12.2008, 20:39:33
Go to the top of the page
+Quote Post
artur_dziocha
post
Post #5





Grupa: Zarejestrowani
Postów: 320
Pomógł: 53
Dołączył: 18.09.2007
Skąd: Radom

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


Nie można
  1. <?php
  2. <a href=&#092;"view.php?a=del&amp;id={$r['id']}\">DEL</a>
  3.      <a href=&#092;"view.php?a=edit&amp;id={$r['id']}\">EDIT</a>
  4. ?>

jest przekazywane $_GET'em
Go to the top of the page
+Quote Post
DawPi
post
Post #6





Grupa: Zarejestrowani
Postów: 39
Pomógł: 1
Dołączył: 6.05.2007
Skąd: Kraków

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


No tak, bo przecież zmienić nazw nie można, nie? (IMG:http://forum.php.pl/style_emoticons/default/cool.gif)
Go to the top of the page
+Quote Post
e-konrad
post
Post #7





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 11.12.2008

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


Cytat(Plebanov @ 1.12.2008, 20:31:52 ) *


Mam taki sam problem(widocznie korzystamy z tego samego skryptu), tyle tylko że jestem kompletnym laikiem w tych sprawach.
Czy możesz mi napisać co wpisałeś w pole action bo tego zapisu: "wstawić parametr do pola action: plik.php?parametr=wartosc." nie rozumiem.
Go to the top of the page
+Quote Post
Plebanov
post
Post #8





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 28.11.2008

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


Mam taki skrypt i dziala teraz:

  1. <?php
  2.  
  3. $connection = @mysql_connect('localhost', 'root', '')
  4.    or die('Brak połączenia z serwerem MySQL');
  5. $db = @mysql_select_db('baza', $connection)
  6.    or die('Nie mogę połączyć się z bazą danych');
  7.  
  8. $wynik = mysql_query("SELECT * FROM baza")
  9. or die('Błąd zapytania');
  10.  
  11. if(mysql_num_rows($wynik) > 0) {
  12.    echo "<table cellpadding=\"2\" border=1>";
  13.    while($r = mysql_fetch_assoc($wynik)) {
  14.        echo "<tr>";
  15.        echo "<td>".$r['imie']."</td>";
  16.        echo "<td>".$r['nazwisko']."</td>";
  17.        echo "<td>
  18.       <a href=\"view.php?a=del&amp;id={$r['id']}\">DEL</a>
  19.       <a href=\"view.php?a=edit&amp;id={$r['id']}\">EDIT</a>
  20.       </td>";
  21.        echo "</tr>";
  22.    }
  23.    echo "</table>";
  24. }
  25.  
  26. $a = trim($_GET['a']);
  27. $id = trim($_GET['id']);
  28.  
  29. if($a == 'edit' and !empty($id)) {
  30.    $wynik = mysql_query("SELECT * FROM baza WHERE
  31.    id='$id'")
  32.    or die('Błąd zapytania');
  33.    if(mysql_num_rows($wynik) > 0) {
  34.        $r = mysql_fetch_assoc($wynik);
  35.        echo '<form action="view.php?a=save" method="post">
  36.        <input type="hidden" name="a" value="save" />
  37.        <input type="hidden" name="id" value="'.$id.'" />
  38.        imię:<br />
  39.        <input type="text" name="imie"
  40.        value="'.$r['imie'].'" /><br />
  41.        nazwisko:<br />
  42.        <input type="text" name="nazwisko"
  43.        value="'.$r['nazwisko'].'" /><br />
  44.        <input type="submit" value="popraw" />
  45.        </form>';
  46.    }
  47. }
  48. elseif($a == 'save') {
  49.    $id = $_POST['id'];
  50.    $imie = trim($_POST['imie']);
  51.    $nazwisko = trim($_POST['nazwisko']);
  52.    mysql_query("UPDATE baza SET imie='$imie', nazwisko='$nazwisko' WHERE id='$id'")
  53.    or die('Błąd zapytania');
  54.    echo 'Dane zostały zaktualizowane';
  55. }
  56.  
  57. if($a == 'del' and !empty($id)) {
  58.    mysql_query("DELETE FROM baza WHERE id='$id'")
  59.    or die('Błąd zapytania: '.mysql_error());
  60.    echo 'Rekord został usunęty z bazy';
  61. }
  62. ?>
  63. <br><br>
  64. <a href="view.php">Odśwież</a>
Go to the top of the page
+Quote Post
e-konrad
post
Post #9





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 11.12.2008

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


Jeszcze mam takie pytanko. U ciebie dane do bazy wprowadza się za pomocą formularza?
U mnie jest sytuacja następująca:
1. formularz - wypełniam danymi które przekazuje do pliku index.php
2. plik index.php odbiera dane z formularza oraz ma funkcjie edycji i usuwania rekordu
3. plik wyświetl wyświetla zawartość mojej bazy wraz z linkami edycji oraz usunięcia rekordu.
U ciebie widzę że to co u mnie jest w pliku wyświetl.php jest u Ciebie w index.php

Jeżeli masz podobną bazę do mojej to czy mógłbyś mi podać kod na wszystkie pliki do zarządzania bazą. Męczę się już z tym tydzień i dalej nic.
Go to the top of the page
+Quote Post
Plebanov
post
Post #10





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 28.11.2008

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


Tutaj plik do dodawania tych pierdolow (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

  1. <?php
  2. mysql_connect('localhost', 'root', '');
  3.  
  4. mysql_query("CREATE TABLE baza (id int( 11 ) NOT NULL AUTO_INCREMENT ,
  5. imie varchar( 100 ) NOT NULL default '',
  6. nazwisko varchar( 100 ) NOT NULL default '',
  7. PRIMARY KEY ( id ))");
  8. ?>
  9.  
  10. <form action="add.php" method="post">
  11. Imie<br>
  12. <input type="text" name="imie"><br>
  13. Nazwisko<br>
  14. <input type="text" name="nazwisko"><br>
  15. <input type="submit" value="dodaj">
  16. </form>
  17.  
  18.  
  19. <?php
  20. $imie = $_POST['imie'];
  21. $nazwisko = $_POST['nazwisko'];
  22.  
  23. if($imie and $nazwisko) {
  24.    
  25. $connection = @mysql_connect('localhost', 'root', '')
  26.    or die('Brak połączenia z serwerem MySQL');
  27. $db = @mysql_select_db('baza', $connection)
  28.    or die('Nie mogę połączyć się z bazą danych');
  29.    
  30. $ins = @mysql_query("INSERT INTO baza SET imie='$imie', nazwisko='$nazwisko'");
  31.  
  32.  
  33. if($ins) echo "Rekord o ID: ".$id." został dodany poprawnie";
  34.    else echo "Błąd nie udało się dodać nowego rekordu";
  35.    
  36. mysql_close($connection);
  37. }
  38.  
  39. ?>
Go to the top of the page
+Quote Post
e-konrad
post
Post #11





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 11.12.2008

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


Dzięki wielkie. Wszystko już działa jak należy. Za bardzo pokomplikowałem sobie sprawę. W końcu znalazłem pomoc na jednym z wielu forów. Jeszcze raz bardzo dziękuję.
Pozdrawiam.

Mam jeszcze jedno pytanie. W bazie mam utworzone 2 tabele(tabela1 i tabela2). Jak w takim przypadku będzie wyglądał skrypt na dodanie rekordu z formularza po uprzednim wybraniu tabeli w której ma być zapisany oraz jak zmieni się skrypt na edycje i usunięcie rekordu?

Ten post edytował e-konrad 12.12.2008, 10:03:13
Go to the top of the page
+Quote Post
erix
post
Post #12





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A dokumentacja gryzie? Przecież masz napisane, w którym miejscu zapytania masz wstawić nazwę tabeli. Reszta, to odpowiednie połączenie stringów, ale z tym sobie poradzisz.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 18:56