Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z edycja [mysql]
Forum PHP.pl > Forum > Bazy danych > MySQL
Plebanov
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. ?>
erix
Kod
<input type="hidden" name="a" value="save" />

Ten element jest w tablicy $_POST, a nie $_GET. 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. winksmiley.jpg
Plebanov
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. winksmiley.jpg
[/list]


Skorzystalem z 2 opcji i dziala smile.gif ..dzieki smile.gif
DawPi
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']);

?
artur_dziocha
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
DawPi
No tak, bo przecież zmienić nazw nie można, nie? cool.gif
e-konrad
Cytat(Plebanov @ 1.12.2008, 20:31:52 ) *
Skorzystalem z 2 opcji i dziala smile.gif ..dzieki smile.gif


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.
Plebanov
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>
e-konrad
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.
Plebanov
Tutaj plik do dodawania tych pierdolow 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. ?>
e-konrad
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?
erix
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.
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.