Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Problem z buttonem
Forum PHP.pl > Forum > Przedszkole
scommon
Chciałbym zrobić guzik, który po kliknięciu bedzie update-ował tabele w kolumnie typ i tam bedzie wpisywał jakiś tekst.


jeszcze trochę to rozwine bo może być lekko niezrozumiałem:
chodzi o to że mam kilka filmików których linki i tytuł są w bazie danych. taki przycisk jest nad każdym filmikiem i za jego pomocą chce żeby dany filmik lądował na innej pod stronie dlatego chce dodać jakiś tekst do kolumny typ danego rekordu filmika. Może tak bedzie łatwiej to ogarnąć
boro11
Musisz zrobić formularz z polami które chcesz zmienić jeśli dane będziesz miał zmienne. Jeśli stałe to i tak musisz zrobić formularz ale wystarczy Ci sam guzik.

żeby dane z formularza się wysłały musisz dać następujący kod:

  1. if (isset($_POST['update']))
  2. {
  3. $zapytanie = "UPDATE Persons SET Age=36 WHERE FirstName='Peter' AND LastName='Griffin'"; // tutaj akurat przykład z w3school
  4. mysql_query($zapytanie) or die(mysql_error());
  5. echo "Rekordy zaktualizowane";
  6. }


gdzie update to to co wybierzesz jako atrybut name w swoim submicie.

np.
  1. <form action="" method="POST" >
  2. <input type="submit" name="update" value="Aktualizuj"/>
  3. </form>
scommon
ok ok ale to nadpisało mi całą kolumne typ.

a ja chce żeby ten przycisk pobrał wartość id tego filmiku ponieżej i tylko do jego rekordu dopisał ten 'typ'.
  1.  
  2.  
  3. <?php
  4. include ('config.php');
  5. $query=mysql_query("SELECT * FROM `dodaj`");
  6. while($row = @mysql_fetch_array($query)) {
  7. ?>
  8. <div id="content">
  9. <br>
  10. <form action="" method="POST" >
  11. <input type="submit" name="update" value="Aktualizuj"/>
  12. </form>
  13. <?php
  14. echo $row['id'];
  15. echo $row['tytul'];
  16. echo $row['link'];
  17. if (isset($_POST['update']))
  18. {
  19. $zapytanie = "UPDATE dodaj SET typ='1' ";
  20. mysql_query($zapytanie) or die(mysql_error());
  21. echo "Rekordy zaktualizowane";
  22. }
  23. ?>
  24.  
  25. </div>
  26. <?php
  27. }
  28. ?>





tak to wyglada
boro11
dodaj warunek do zapytania:

  1. if (isset($_POST['update']))
  2. {
  3. $zapytanie = "UPDATE dodaj SET typ='1' WHERE id = $row['id']";
  4. mysql_query($zapytanie) or die(mysql_error());
  5. echo "Rekordy zaktualizowane";
  6. }


Tylko będziesz miał pewnie bład syntax bo brakuje tam delimiterów, ale ja nigdy nie mogę ich ogarnąć smile.gif
scommon
Kod
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\wamp\www\Projekty\drumy\droom.php on line 14




nooo własnie jest ktoś wie może jak to ogarnąć : D questionmark.gif

  1. <?php
  2. include ('config.php');
  3. $query=mysql_query("SELECT * FROM `dodaj`");
  4. while($row = @mysql_fetch_array($query)) {
  5. ?>
  6. <div id="content">
  7. <br>
  8. <form action="" method="POST" >
  9. <input type="submit" name="update" value="Aktualizuj"/>
  10. </form>
  11. <?php
  12. if (isset($_POST['update']))
  13. {
  14. @$zapytanie = "UPDATE dodaj SET typ='1' WHERE id=$row['id']";
  15. mysql_query($zapytanie) or die(mysql_error());
  16. echo "Rekordy zaktualizowane";
  17. }
  18.  
  19. $id='id';
  20. echo $row['id'];
  21. echo $row['tytul'];
  22. echo $row['link'];
  23.  
  24. ?>
  25.  
  26. </div>
  27. <?php
  28. }
  29. ?>
boro11
W sumie warto spróbować:

  1. @$zapytanie = "UPDATE dodaj SET typ='1' WHERE id='.$row['id'].'";
scommon
dalej to samo wiec @ to nie zmieni
boro11
akurat ta @ kasuje wyświetlanie błędów z tego co wiem więc i tak ją możesz wywalićsmile.gif

Chodziło raczej o częśc druga:

  1. id='.$row['id'].'
scommon
  1. WHERE id='".$row['id']."'


i działa ale nadal zmienia dla wszystkich rekordów nie czyta po id
Posio
  1. $rID = $row['id']
  2. $zapytanie = mysql_query("UPDATE `dodaj` SET `typ` = '$rID' ");


tak powinno działać...
scommon
a to to już w ogole nie dział biggrin.gif syntax error
  1. <?php
  2. include ('config.php');
  3. $query=mysql_query("SELECT * FROM `dodaj`");
  4. while($row = @mysql_fetch_array($query)) {
  5. ?>
  6. <div id="content">
  7. <br>
  8. <form action="" method="POST" >
  9. <input type="submit" name="update" value="Aktualizuj"/>
  10. </form>
  11. <?php
  12. if (isset($_POST['update']))
  13. {
  14. $rID = $row['id']
  15. $zapytanie = mysql_query("UPDATE `dodaj` SET `typ` = '$rID' ");
  16. mysql_query($zapytanie) or die(mysql_error());
  17. echo "Rekordy zaktualizowane";
  18. }
  19.  
  20. $id='id';
  21. echo $row['id'];
  22. echo $row['tytul'];
  23. echo $row['link'];
  24.  
  25. ?>
  26.  
  27. </div>
  28. <?php
  29. }
  30. ?>




z tego co rozumiem to on mi po prostu odczyta id i w typie wpisze to id tak ?
boro11
dodaj średnik

  1. $rID = $row['id'];


ale po co ta zamiana nastąpiła to nie wiem. Typ ma być twoim ID, raczej nie z tego co zrozumiałem.

Wyświetlanie działa dobrze tzn.

  1. echo $row['id'];
  2. echo $row['tytul'];
  3. echo $row['link'];


?
scommon
wyświetlanie działa dobrze ta zmiana jest niepotrzebna i trocę przez mnie niezrozumiała smile.gif
boro11
a weź to daj przed ten mój kod:

  1. $id='id';


chociaż nie do końca wiem co to robi, bo albo nie dałeś całości albo nie robi nic
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.