Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][SQL] Aktualizacja danego rekordu
Forum PHP.pl > Forum > Przedszkole
rytry
W tabeli "tabela" mam ileść tam rekordów. Wyświetlają mi się one i mam problem, przy UPDATE, danego rekordu, nie wiem jak się do niego odwołać.


  1. <?php
  2. if($_POST['przycisk'] == "PHP"){
  3.            
  4.            $query = "UPDATE `tabela` SET `column` = 'HPH' WHERE `id` = 'co tutaj...";
  5.            $result = mysql_query($query) or die (mysql_error());
  6.            
  7.            }
  8.            
  9.            if($_POST['przycisk'] == "HPH"){
  10.            
  11.            $query = "UPDATE `tabela` SET `column` = 'PHP' WHERE `id` = 'co tutaj...'";
  12.            $result = mysql_query($query) or die (mysql_error());
  13.            
  14.            }
  15.            /*--------------------------------------------------------------------------------------------------------------*/
  16.            $query = "SELECT *
  17.                    FROM tabela";
  18.              
  19.            $result = mysql_query($query);
  20.            while($tab = mysql_fetch_array($result)){
  21.        
  22.            
  23.            $text .= 'nr rekordu - '.$tab[id].' <input type="submit" name="przycisk" value="'.$tab[column].'" ><br/>';
  24.            
  25.            }
  26. ?>


Dalej jest heredoc by $text wyświetlić. Dobrze sprawdza to czy wciśnięte PHP czy HPH, tylko problem jest jak odwołać się który wiersz ma zostać zaktualizowany. Bo próbowałem różnie w warunku z $_POST, $_GET, no nie wiem jak to zorbić.
krzyszbi
jaka jest struktura samej tabeli questionmark.gif masz jakiś klucz główny, jeśli tak to po nim się odwołuj jeśli nie załóż i daj mu autoincrementację
wtedy każdy wpis w bazie będzie miał inne id i po nim możesz się odwołać do niego
rytry
Tak, "id" ale jak mam się odwołać ?
krzyszbi
  1. <?php
  2. $text .= 'nr rekordu - '.$tab['id'].' <input type="submit" name="przycisk" value="'.$tab['column'].'" ><br/>';
  3. ?>

p.s. włącz pełne raportowanie błędów a będziesz wiedział co masz źle smile.gif
rytry
  1. <?php
  2. $query = "UPDATE `tabela` SET `column` = 'HPH' WHERE `id` = 'co tutaj...";
  3. ?>


co mam wpisać po WHERE ? bo jak dam $tab[id] to się odnosi tylko do 1 rekordu. A może zrobić jakoś że obok submita daje input hidden i tam będzie nr rekordu ? Jeżeli można to jak, by później w UPDATE odwołać się tylko do tego rekordu, bo kombinowałem z $_POSTEM i GETEM i lipa.
krzyszbi
  1. <?php
  2. echo '<pre>'.print_r($_POST,1).'</pre>';
  3. ?>

i powinieneś zauważyć co przesyła
rytry
nr rekordu (id) zawsze jest równy ostatniemu rekordowi np. mam 5 wierszy to UPDATE zmienia tylko 5 wiersz, podczas gdy klikam np: na 3 (submit)
SzamanGN
Jeżeli dobrze zrozumiałem to chcesz uaktualnić rekord, którego wartość pola `column` zostaje przesłana z formularza:

  1. <?php
  2. $wybor=$_POST['przycisk']; //Wybór użytkownika pobrany z formularza (zakładam, że za pomocą POST.
  3. $query = 'UPDATE `tabela` SET tutaj_to_co_chcesz_uaktualnić WHERE `column` = "'.$wybor.'" LIMIT 1';
  4. ?>
rytry
To nie to.

załóżmy, że wygląda to tak:

  1. <?php
  2. 1 PHP <- $tab[id] <input type=submit name=przycisk value=$rekord[column] />
  3. 2 PHP <- $tab[id] <input type=submit name=przycisk value=$rekord[column]/>
  4. 3 HPH <- $tab[id] <input type=submit name=przycisk value=$rekord[column]/>
  5. 4 PHP <- $tab[id] <input type=submit name=przycisk value=$rekord[column]/>
  6. 5 HPH <- $tab[id] <input type=submit name=przycisk value=$rekord[column]/>
  7. ?>



Liczby to $tab[id] a PHP czy HPH $rekord[column].

To nie zadziała tak ze WHERE id=$_POST[cos tam] czy jakoś inaczej, bo zawsze to przyjmuje ostatnią wypisaną wartość.
A można dać do submita atrybut tabindex=$tab[id] i wtedy przy WHERE do tego się odwłować ?
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.