Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] zmiana wartości MySQL po id wpisów
Forum PHP.pl > Forum > Przedszkole
adek-
Witam, zrobiłem sobie taką tabelkę wyświetlającą mi użytkowników i chcę aby po kliknięciu przycisku przy x userze, zmieniła mu się wartość pola `status` w MySQL na 1 gdy jest 0, lub na 0, gdy jest 1
$tabela_users jest zadeklarowana wyżej, i ogólnie zmieniało mi ale u wszystkich, nie potrafię zrobić aby tylko zmieniło przy danej osobie którą kliknę...
  1. echo '<br><br><br><hr><br><b>WSZYSCY UŻYTKOWNICY:</b>';
  2. echo '<table><tr bgcolor="#69d8f4"><td><b>ID &nbsp; </b></td><td width="160"><b>Nazwa</b></td><td width="90"><b>Login</b></td><td width="170"><b>Imię i Nazwisko</b></td><td><b>e-mail</b></td><td><b> &nbsp; Nr telefonu</b></td><td><b>Widzi</b></td><td><b>Zezwól</b></td></tr>';
  3. $q = "SELECT * FROM $tabela_users";
  4. $r = mysql_query($q);
  5. // TABELA WYSW DANYCH
  6. $i=0;
  7. while($wymien = mysql_fetch_assoc($r)) {
  8. $color = ($i % 2 == 0) ? '' : '';
  9. $bgcolor = ($i % 2 == 0) ? 'fafafa' : '';
  10.  
  11. echo '<tr bgcolor="'.$bgcolor.'" style="color:'.$color.';"><td>'.$wymien['id'].'.</td><td> '.$wymien['nazwa'].' </td><td> '.$wymien['login'].'</td><td>'.$wymien['imie'].' '.$wymien['nazwisko'].'</td><td> '.$wymien['email'].'</td><td> &nbsp; '.$wymien['tel'].'</td><td> &nbsp; ';
  12. if($wymien['status'] == 1){ echo 'tak';} else { echo '<b>nie</b>';}
  13. echo '<td >';
  14. //##tutaj był wpis ogólny którego wkleiłem w drugim polu php dla wglądu
  15. echo '<a href="uzytkownicy.php?do=zmien&id='.$wymien['id'].'">ZMIEN</a> //gdzieś takie coś widziałem w jakimś poście, ale nie było zdefinowane pole do i zmien, więc to mi nie działa, natomiast wybiera id usera poprawnie po najechaniu na href
  16. </td>';
  17. $i++;
  18. // OPCJE EDYCJI
  19. echo '<td><a bgcolor="#b8c3eb" href="?do=delete&id='.$wymien['id'].'">'.$del.'</a></td>
  20. </tr>';
  21. }
  22. echo '</table>';


dawałem nawet taki wpis ogólny, ale on zmieniał wszystkim użytkownikom... gdy dodałem WHERE id='$wymien[id]' przestał działać
  1. echo <<< KONIEC
  2.  
  3.   <form class="form" action="uzytkownicy.php" method="post">
  4.   <input type="hidden" name="opcja" value="TRUE" />
  5. <input type="submit" value="Widok procentowy" />
  6.   </form>
  7. KONIEC;
  8. if (isset($_POST['opcja']) && !empty($_POST['opcja'])) {
  9. $q = mysql_query("UPDATE $tabela_users SET status=0 WHERE id='$wymien[id]'") or die(mysql_error());
  10. //echo '<font color="#FF0000">Opcja wyświetlania została zmieniona!</font>';
  11. }


Pomoże ktoś zrobić
jacobson
a czy ta Twoja druga czesc kodu gdzie robisz where id='$wymien[id]' znajduje sie wewnatrz petli while w ktorej sa zadeklarowane zmienne z bazy ? moze stworz zmienna przed while, w while ja zaktualizuj ($zmienna = $wymien[id]) a potem w tym swoim zapytaniu daj where id=$zmienna.
Barcelona
a jakbyś takie coś zastosował

  1. <?php
  2. echo '<br><br><br><hr><br><b>WSZYSCY UŻYTKOWNICY:</b>';
  3. echo '<table><tr bgcolor="#69d8f4"><td><b>ID &nbsp; </b></td><td width="160"><b>Nazwa</b></td><td width="90"><b>Login</b></td><td width="170"><b>Imię i Nazwisko</b></td><td><b>e-mail</b></td><td><b> &nbsp; Nr telefonu</b></td><td><b>Widzi</b></td><td><b>Zezwól</b></td></tr>';
  4. $q = "SELECT * FROM $tabela_users";
  5. $r = mysql_query($q);
  6. // TABELA WYSW DANYCH
  7. $i=0;
  8. while($wymien = mysql_fetch_assoc($r)) {
  9. $color = ($i % 2 == 0) ? '' : '';
  10. $bgcolor = ($i % 2 == 0) ? 'fafafa' : '';
  11.  
  12. echo '<tr bgcolor="'.$bgcolor.'" style="color:'.$color.';"><td>'.$wymien['id'].'.</td><td> '.$wymien['nazwa'].' </td><td> '.$wymien['login'].'</td><td>'.$wymien['imie'].' '.$wymien['nazwisko'].'</td><td> '.$wymien['email'].'</td><td> &nbsp; '.$wymien['tel'].'</td><td> &nbsp; ';
  13. if($wymien['status'] == 1){ echo '<a href="uzytkownicy.php?do=zmien&id='.$wymien['id'].'&tryb=tak">Tak</a>';} else { echo '<a href="uzytkownicy.php?do=zmien&id='.$wymien['id'].'&tryb=nie">Nie</a>';}
  14. echo '<td >';
  15. //##tutaj był wpis ogólny którego wkleiłem w drugim polu php dla wglądu
  16. echo '<a href="uzytkownicy.php?do=zmien&id='.$wymien['id'].'">ZMIEN</a> //gdzieś takie coś widziałem w jakimś poście, ale nie było zdefinowane pole do i zmien, więc to mi nie działa, natomiast wybiera id usera poprawnie po najechaniu na href
  17. </td>';
  18. $i++;
  19. // OPCJE EDYCJI
  20. echo '<td><a bgcolor="#b8c3eb" href="?do=delete&id='.$wymien['id'].'">'.$del.'</a></td>
  21. </tr>';
  22. }
  23. echo '</table>';
  24. ?>
adek-
Jacobson, wychodzi na to samo, tylko zmienną deklaruję i wpisuję nazwę zmiennej zamiast wymien[id], robi z wszystkich pól 1 lub 0
Barcelona nie bardzo wiem o co Ci chodzi, zwłaszcza, że jak pisałem "?do=zmien&" jest nie zdeklarowane, a skopiowane z jakiejś strony jako przykład... obczytałem się trochę i chyba nie da się zrobić funkcji 'a href' żeby działała jako submit button, dlatego pokombinowałem z takim czymś

w tablicy asocjacyjnej wyciągającej wszystkie wyniki w pętli while i wrzuciłem combo boxa
  1. echo '<form id="form1" name="form1" method="post" action="uzytkownicy.php">';
  2. print $wymien['status'].'&nbsp;';
  3. ?>
  4. <select name="select_<?=$wymien['id'];?>">
  5. <option value="1" <?=$wymien['status']==1 ? 'selected' : '';?>>Tak</option>
  6. <option value="0" <?=$wymien['status']==0 ? 'selected' : '';?>>Nie</option>
  7. </select>
  8.  
  9. <input type="submit" name="Submit" value="ok" />
  10. </form>
  11. <?php
  12. if(isset($_POST['submit'])) {
  13. $sql = mysql_query("UPDATE $tabela_users SET status='$_POST[form1]' WHERE id='$wymien[id]' "); }


Pobiera mi dobrze z MySQL pole `status` i wyświetla "tak" tam gdzie jest 1 i "nie" tam gdzie jest 0... ale update nie działa, dlatego bo tak naprawdę nie wiem jak wprowadzić poprawnie $sql, a dokładniej wydaję mi się że zamiast $_POST[combobox] powinno być coś innego, tzn jakiś wpis który by mówił co zostało wybrane w polu select
  1. $sql = mysql_query("UPDATE $tabela_users SET status='$_POST[form1]' WHERE id='$wymien[id]' "); }
amii
1. Co ta za zmienna -> $_POST[form1] z tego co widzę to jest id formularza a nie zmienna z supertablicy globalnej $POST
2. Może spróbuj to rozwiązać na zasadzie sprawdzania value na zasadzie:
if ($_POST["select_".$wymien['id']] == 1) //to zrob tak..
if ($_POST["select_".$wymien['id']] == 0) //cos innego
adek-
amii masz rację z tym form1 i dokładnie takiej konstrukcji posta szukałem, a nie wiedziałem jak go ułożyć!
...
ok, wszystko jasne... dziekuję amii jeszcze raz, bezmyślnie probóbowałem z Twojej podpowiedzi zrobić gotowy przykład, a nie dodałem tam isseta!
  1. if (isset($_POST["select_".$wymien['id']]) && ($_POST["select_".$wymien['id']] == 0)) {
  2. $sql = mysql_query("UPDATE $tabela_users SET status=0 WHERE id='$wymien[id]' "); }
  3.  
  4. if (isset($_POST["select_".$wymien['id']]) && ($_POST["select_".$wymien['id']] == 1)) {
  5. $sql = mysql_query("UPDATE $tabela_users SET status=1 WHERE id='$wymien[id]' "); }
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.