• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed PHP - usuwanie wpisu ze strony.

Object Storage Arubacloud
+1 głos
168 wizyt
pytanie zadane 6 lutego 2017 w PHP przez nielotweb Bywalec (2,240 p.)
zamknięte 6 lutego 2017 przez nielotweb

Mam skrypt które dodaje tak jakby wpis, wszystkie wpisy wyświetlam na oddzielnej stronie. 

Działa to tak gdy jest zalogowany jakiś użytkownik i jest on na tej stronie to może usunąć swój wpis który wcześniej dodał.

Button do usunięcia wyświetla się tylko wtedy gdy nazwa użytkownika zgadza się z nazwą użytkownika w wpisie ( te wpisy mają oddzielną tabelę, a nazwe użytkownika w tabeli dodałem przez zmienną sessyjną którą wziąłem z logowania )

I problem jest taki gdy klikam ten button to on usuwa wpis, ale usuwa ostatni ( ostatni wpis tego użytkownika ), a nie ten przy którym kliknę ten button.

Kod:

<?php
session_start();

include_once('database.php');

//if the given nickname exists
$sqlSTM = $pdo->prepare("SELECT * FROM addgame");
$sqlSTM->execute();

foreach ($sqlSTM as $value) {

    $_SESSION['user'] = $value['user'];
    $_SESSION['id'] = $value['id'];
    $_SESSION['game'] = $value['game'];
    $_SESSION['info'] = $value['info'];
    $_SESSION['whengame'] = $value['whengame'];
    $_SESSION['addquote'] = $value['addquote'];

    //DATE register
      //przekształcamy datę w przeszłości do formatu unix'owego
       $date = strtotime($_SESSION['addquote']);
      //pobieramy bieżący czas
       $now = time();
      //różnice dzielimy przez jeden dzień czyli 60 s. * 60 m. * 24 godz.
       $date_r = ($now - $date) / (60 * 60 * 24);
      //część całkowita z dzielenia to liczba dni
       $date_c = floor($date_r);
      //wyswietlamy ile dni temu uzyt. sie zarejestrowal
       $register_score = $date_c;
       //resztę z dzielenia mnożymy przez dobę
       $godzin_r = ($date_r - $date_c) * 24;
      //część całkowita z mnożenia to liczba godzin
       $godzin_c = floor($godzin_r);
      //resztę mnożymy przez godzinę
       $minut_r = ($godzin_r - $godzin_c) * 60;
      //część całkowita to liczba minut
       $minut_c = floor($minut_r);
      //część całkowita reszty pomnożonej przez minutę to liczba sekund
       $sekund_c = floor(($minut_r - $minut_c) * 60);

     $sekund_g = true;
     $minut_g = true;

     echo '<div class="jungla">' . $_SESSION['user'] . ' ';
     echo 'Dodał: ';
     //jeżeli rekord istnieje więcej niż przynajmniej 1 godzinę
     if ( $godzin_c > 0) {
       $minut_c = false;
       $sekund_c = false;
       echo $godzin_c . ' godzin temu';
     }
     //jeżeli rekord istnieje więcej niż przynajmniej 1 minutę
     if ( $minut_c > 0 && $minut_c == true)
     {
       $sekund_g = false;
       echo $minut_c . ' minut temu';
     }
     //jeżeli rekord istnieje więcej niż przynajmniej 1 sekundę
     if ( $sekund_c > 0 && $sekund_g == true)
     {
       echo $sekund_c . ' sekund temu';
     }
    
 
// TUTAJ SIĘ ZNAJDUJE FORMULARZ USUNIĘCIA WPISU
// TUTAJ SIĘ ZNAJDUJE FORMULARZ USUNIĘCIA WPISU
// TUTAJ SIĘ ZNAJDUJE FORMULARZ USUNIĘCIA WPISU

       if ( $_SESSION['user'] == $_SESSION['nickname'] ) {
         echo '<form action="profile-user/settings-include.php" method="post"/>';
         echo '<input type="submit" name="subm" value="Usuń wstawkę" placeholder="Powtórz nowe hasło.." id="submit-button" aria-required="true">';
         echo '</form>';
       }



     echo ' ' . $_SESSION['game'];

     echo '</div><div class="jungla-more">';
     echo 'Informacje dodatkowe: ' . $_SESSION['info'];
     echo ' Kiedy chce grać: ' . $_SESSION['whengame'];
     echo $_SESSION['id'];
     echo '</div>';

     if ( $godzin_c > 13 ) {

       $sqlSTM = $pdo->prepare("DELETE FROM addgame WHERE user = :user");
       $sqlSTM->bindParam(':user', $_SESSION['user']);
       $sqlSTM->execute();

     }

}

?>

settings-include.php

 if ( isset($_POST['subm']) ) {
    $sqlSTM = $pdo->prepare("DELETE FROM addgame WHERE id = :id");
    $sqlSTM->bindParam(':id', $_SESSION['id']);
    $sqlSTM->execute();
    header('Location: login.php');
  } else {
    echo 'NIE DZIAŁA!';
  }

 

komentarz zamknięcia: Rozwiązane

1 odpowiedź

0 głosów
odpowiedź 6 lutego 2017 przez Bosswell Nałogowiec (36,470 p.)
edycja 6 lutego 2017 przez Bosswell
Obstawiam, że tu może być błąd.

$_SESSION['id'] = $value['id'];

$_SESSION['id'] przyjmuje wartość id ostatniego razu wykonania się pętli. Zmienna cały czas się nadpisuje.
komentarz 6 lutego 2017 przez nielotweb Bywalec (2,240 p.)
Nie rozumiem zbytnio tego rozwiązania ale i tak nie działa.

Fatal error przy $_SESSION['id'][] = $value['id'];

( [] operator not supported for strings )
komentarz 6 lutego 2017 przez nielotweb Bywalec (2,240 p.)
Dobra już sobie poradziłem w inny sposób ;)

Podobne pytania

+1 głos
1 odpowiedź 307 wizyt
pytanie zadane 6 marca 2021 w PHP przez Mateusz Wydra Nowicjusz (240 p.)
0 głosów
1 odpowiedź 411 wizyt
pytanie zadane 12 kwietnia 2019 w PHP przez Sinq Nowicjusz (120 p.)
0 głosów
4 odpowiedzi 586 wizyt
pytanie zadane 1 grudnia 2015 w PHP przez migacz100 Mądrala (5,410 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...