Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> UPDATE pola rekordu -> błąd
Przemo_
post
Post #1





Grupa: Zarejestrowani
Postów: 62
Pomógł: 1
Dołączył: 12.06.2007

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


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 14)
eldo
post
Post #2





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 28.08.2007
Skąd: Cardiff

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


Spróbuj
  1. <?php
  2. $zapytanie = "UPDATE `movie` SET `film` = 'tak' WHERE `id` = $wiersz[0]";
  3. ?>


Ten post edytował eldo 30.01.2008, 21:15:04
Go to the top of the page
+Quote Post
Przemo_
post
Post #3





Grupa: Zarejestrowani
Postów: 62
Pomógł: 1
Dołączył: 12.06.2007

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


nie pomógł sposób Eldo
Go to the top of the page
+Quote Post
eldo
post
Post #4





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 28.08.2007
Skąd: Cardiff

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


A tak:
<?php
$id=$wiersz[0];
$zapytanie = "UPDATE `movie` SET `film` = 'tak' WHERE `id` = $id";
?>
Go to the top of the page
+Quote Post
Przemo_
post
Post #5





Grupa: Zarejestrowani
Postów: 62
Pomógł: 1
Dołączył: 12.06.2007

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


też nie...
Go to the top of the page
+Quote Post
Daimos
post
Post #6





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


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. ?>


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
Go to the top of the page
+Quote Post
nevt
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


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...

Ten post edytował nevt 30.01.2008, 23:28:04


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
Przemo_
post
Post #8





Grupa: Zarejestrowani
Postów: 62
Pomógł: 1
Dołączył: 12.06.2007

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


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ż

Ten post edytował Przemo_ 31.01.2008, 14:49:20
Go to the top of the page
+Quote Post
webdice
post
Post #9


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




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.
Go to the top of the page
+Quote Post
Przemo_
post
Post #10





Grupa: Zarejestrowani
Postów: 62
Pomógł: 1
Dołączył: 12.06.2007

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


Nic mi się nie wyświetliło
Go to the top of the page
+Quote Post
webdice
post
Post #11


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




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?
Go to the top of the page
+Quote Post
skowron-line
post
Post #12





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


  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 ?


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
Przemo_
post
Post #13





Grupa: Zarejestrowani
Postów: 62
Pomógł: 1
Dołączył: 12.06.2007

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


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.
Go to the top of the page
+Quote Post
webdice
post
Post #14


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




  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.
Go to the top of the page
+Quote Post
Przemo_
post
Post #15





Grupa: Zarejestrowani
Postów: 62
Pomógł: 1
Dołączył: 12.06.2007

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


Co do błędów ~skowron_line to je poprawiłem smile.gif
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 03:39