Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: UPDATE pola rekordu -> błąd
Forum PHP.pl > Forum > Przedszkole
Przemo_
Witam Wszystkich.

Postanowiłem stworzyć skrypt, który zaktualizuje mi rekord w mysql.

  1. <?php;
  2. include("ustawienia.php");
  3. $zapytanie = "SELECT `id`,`nazwa`,`autor`,`film` FROM `movie` WHERE `film`='nie'";
  4. $idzapytania = mysql_query($zapytanie);
  5.  
  6. echo '<table>';
  7. while ($wiersz = mysql_fetch_row($idzapytania)) {
  8. echo '<td><span style="font-family: Comic Sans MS; font-size: 8pt;"><br><a href="film.php?id='. $wiersz[0] .'">'. $wiersz[1] .'</a>
  9. </td><BR><BR><tr bgcolor="#BCC2CD">
  10. <td><span style="font-family: Comic Sans MS; font-size: 8pt;">ID<br>'. $wiersz[0] .'</td>
  11. <td><span style="font-family: Comic Sans MS; font-size: 8pt;">Nazwa<br>'. $wiersz[1] .'</td>
  12. <td><span style="font-family: Comic Sans MS; font-size: 8pt;">Autor<br>'. $wiersz[2] .'</td>
  13. <td><span style="font-family: Comic Sans MS; font-size: 8pt;">Aktywacja<br><a href="a-index.php?a=aktywuj&id='. $wiersz[0] .'">Aktywuj</a></td>
  14.  
  15. </span></tr>';
  16. }
  17. echo '</table>';
  18. if ($aktywacja == 'aktywuj') {
  19. $zapytanie = "UPDATE `movie` SET `film` = 'tak' WHERE `id` = '" . $wiersz[0] ."'";
  20. $idzapytania = mysql_query($zapytanie);
  21.  
  22. echo 'Film Aktywowany';
  23. }
  24. ?>



Link do aktywacji generuje się dobrze, czyli np. jak id filmu jest równe 2 to tworzy się link taki : a-index.php?a=aktywuj&id=2
Mi chodzi o to, że chciałbym by na takiej samej podstawie po naciśnięciu na link robił UPDATE pola rekordu o id równym id filmu.
Czyli jak id filmu wynosi 2 to chcę by robił aktualizację pola film z rekordu 2.
jeśli w zapytaniu `id` oznaczę z góry liczbą, np. 4 to aktualizuje rekord, jeśli natomiast zmienię `id` na $wiersz... to nic się nie dzieje.
Po prostu chodzi mi o to, by skrypt 'z góry' do zapytania dodawał id rekordu na podstawie id danego filmu.
eldo
Spróbuj
  1. <?php
  2. $zapytanie = "UPDATE `movie` SET `film` = 'tak' WHERE `id` = $wiersz[0]";
  3. ?>
Przemo_
nie pomógł sposób Eldo
eldo
A tak:
<?php
$id=$wiersz[0];
$zapytanie = "UPDATE `movie` SET `film` = 'tak' WHERE `id` = $id";
?>
Przemo_
też nie...
Daimos
chyba o to chodzi
  1. <?php
  2. $id=(is_numeric($_GET['id'])) ? $_GET['id'] : $wiersz[0];
  3. $zapytanie = "UPDATE `movie` SET `film` = 'tak' WHERE `id` = $id";
  4. ?>
nevt
tu jest pies pogrzebany:
  1. <?php
  2. while ($wiersz = mysql_fetch_row($idzapytania))
  3. ?>

przecież ten warunek oznacza dokładnie tyle, że pętla while zakończy się, kiedy nie ma już wierszy do odczytania, czyli zmienna $wiersz przyjmie wartość FALSE....
zakładając, że i tak spodziewasz się tylko jednego wiersza wyniku zamień to na:
  1. <?php
  2. if($wiersz = mysql_fetch_row($idzapytania))
  3. ?>

i będzie hulać aż miło...
Przemo_
Najwyraźniej źle robię ale zrobiłem tak :

  1. <?php;
  2. if ($aktywacja == 'aktywuj') {
  3. if ($wiersz2 = mysql_fetch_row($idzapytania)) {
  4.  
  5.  
  6. $zapytanie = "UPDATE `movie` SET `film` = 'tak' WHERE `id` = " . $wiersz2[0] ."";
  7. $idzapytania = mysql_query($zapytanie);
  8.  
  9. echo 'Film Aktywowany';
  10. }
  11. }
  12. ?>


I też nie działa...

// sposób My Salsa'y nie działa też
webdice
Spróbuj tak:

  1. <?php
  2. if ($aktywacja == 'aktywuj') {
  3. if ($wiersz2 = mysql_fetch_row($idzapytania)) {
  4.  
  5.  
  6. $zapytanie = "UPDATE `movie` SET `film` = 'tak' WHERE `id` = " . $wiersz2[0];
  7. $idzapytania = mysql_query($zapytanie) or die (mysql_error ());
  8.  
  9. echo 'Film Aktywowany';
  10. }
  11. }
  12. ?>


Jak się nie uda podaj co Ci wyświetliła funkcja mysql_error.
Przemo_
Nic mi się nie wyświetliło
webdice
Cytat(Przemo_ @ 31.01.2008, 14:56:40 ) *
Nic mi się nie wyświetliło


A instrukcja dla zmiennej aktywacja jest spełniona? W ogóle jak wygląda link do aktywacji filmu?
skowron-line
  1. <?php;
  2. include("ustawienia.php");
  3. $zapytanie = "SELECT `id`,`nazwa`,`autor`,`film` FROM `movie` WHERE `film`='nie'";
  4. $idzapytania = mysql_query($zapytanie);
  5.  
  6. echo '<table>';
  7. while ($wiersz = mysql_fetch_row($idzapytania)) {
  8. echo '<td><span style="font-family: Comic Sans MS; font-size: 8pt;"><br><a href="film.php?id='. $wiersz[0] .'">'. $wiersz[1] .'</a>
  9. </td><BR><BR><tr bgcolor="#BCC2CD">
  10. <td><span style="font-family: Comic Sans MS; font-size: 8pt;">ID<br>'. $wiersz[0] .'</td>
  11. <td><span style="font-family: Comic Sans MS; font-size: 8pt;">Nazwa<br>'. $wiersz[1] .'</td>
  12. <td><span style="font-family: Comic Sans MS; font-size: 8pt;">Autor<br>'. $wiersz[2] .'</td>
  13. <td><span style="font-family: Comic Sans MS; font-size: 8pt;">Aktywacja<br><a href="a-index.php?a=aktywuj&id='. $wiersz[0] .'">Aktywuj</a></td>
  14.  
  15. </span></tr>';
  16. }
  17. echo '</table>';
  18. if ($_GET[a] == 'aktywuj') {
  19. $zapytanie = "UPDATE `movie` SET `film` = 'tak' WHERE `id` = '" . $$_GET[id] ."'";
  20. $idzapytania = mysql_query($zapytanie);
  21.  
  22. echo 'Film Aktywowany';
  23. }
  24. ?>

a tak nie powinno byc ?
Przemo_
W pliku ustawienia.php mam swoje ustawienia dotyczące łączenia oraz wszystkie zmienne itp.

Jest także
  1. <?php
  2. $aktywacja = $_GET['a'];
  3. ?>


link tak wygląda
  1. <?php
  2. a-index.php?a=aktywuj&id='. $wiersz[0] .'
  3. ?>

Gdzie wiersz to ID filmu
Z góry mówię, że jeśli z góry podam w zapytaniu `id` do filmu to robi UPDATE.


dałem tak
  1. <?php
  2. if ($_GET['a'] == 'aktywuj') {
  3. $zapytanie = "UPDATE `movie` SET `film` = 'tak' WHERE `id` = '" . $_GET['id'] ."'";
  4. $idzapytania = mysql_query($zapytanie);
  5. ?>


i działa, tylko muszę klikać 2 razy na link, by zrobił UPDATE.

Dzięki wielkie wszystkim.
webdice
  1. <?php
  2. $zapytanie = "UPDATE `movie` SET `film` = 'tak' WHERE `id` = " . $_GET['id'];
  3. ?>


Tak powinno działać. ~skowron-line wkradły Ci się 3 błędy, bez apostrofów przy intach, jeden znaczek dolara i index tablicy w apostrofach smile.gif.
Przemo_
Co do błędów ~skowron_line to je poprawiłem smile.gif
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.