Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Zaznaczony checkbox w zależności od danych w bazie
Forum PHP.pl > Forum > Przedszkole
Laran
Witam.

Piszę system newsów i postanowiłem dodać możliwość wyboru czy wpis ma być opublikowany czy nie, dlatego dodałem checkbox.

Teraz piszę stronę do edycji istniejących wpisów i mam problem. Otóż chcę by checkbox był odznaczony jeśli wartość w tabeli "published" była "0" i żeby był zaznaczony gdy wartość w tej tabeli to "1".

Wiele próbowałem, ale nie udał mi się rozwiązać problemu. Pomysły skończyły mi się na tym:
  1. <input type='checkbox' name='published' <?php
  2. $stmt = $mysqli->prepare("SELECT published FROM prefix_news WHERE id='".$_GET['id']."'");
  3. $stmt->execute();
  4. $stmt->store_result();
  5. if($stmt->fetch() == 1)
  6. {
  7. echo "checked='checked'";
  8. }
  9. $stmt->close();
  10. ?>/>
Damonsson
Poza tym, że mieszanie widoku z modelem jest delikatnie mówiąc nieeleganckie.

Wyświetl sobie:
  1. var_dump($stmt->fetch());


i zobacz co tam jest.
Laran
Cytat(Damonsson @ 21.03.2013, 22:42:01 ) *
Poza tym, że mieszanie widoku z modelem jest delikatnie mówiąc nieeleganckie.

Wyświetl sobie:
  1. var_dump($stmt->fetch());


i zobacz co tam jest.


Zwraca prawdę, ale gdy zrobiłem taki warunek:
  1. $loool = var_dump($stmt->fetch());
  2.  
  3. if($loool = TRUE)
  4. {
  5. echo "checked='checked'";
  6. }
  7. $stmt->close();


To buttom wygląda tak:

  1. <input type='checkbox' name='published' <pre class='xdebug-var-dump' dir='ltr'><small>boolean</small> <font color='#75507b'>true</font>
  2. </pre>checked='checked'/>


A przy:
  1. $loool = var_dump($stmt->fetch());
  2.  
  3. if($loool == TRUE)
  4. {
  5. echo "checked='checked'";
  6. }
  7. $stmt->close();



Wygląda tak:
  1. <input type='checkbox' name='published' <pre class='xdebug-var-dump' dir='ltr'><small>boolean</small> <font color='#75507b'>true</font>
  2. </pre>/>
Damonsson
Wyłącz xdebug
krzysiekk
daj tak

  1. if($t=$stmt->fetch(PDO::FETCH_ASSOC)){
  2. if($t[published]==1){ echo "checked='checked'";}
  3. }
Laran
  1. <input type='checkbox' name='published' <?php
  2. $stmt = $mysqli->prepare("SELECT published FROM prefix_news WHERE id='".$_GET['id']."'");
  3. $stmt->execute();
  4. if($t=$stmt->fetch(PDO::FETCH_ASSOC))
  5. {
  6. if($t[published]==1)
  7. {
  8. echo "checked='checked'";
  9. }
  10. }
  11. $stmt->close();
  12. ?> />


Niestety nie działa:(

Potrzebuje również takiego warunku by sprawdzić czy news o podanych ID może zostać wyświetlony zwykłemu użytkownikowi czy nie. Proszę o pomoc, bo nie wiem jak to zrobić.

Jakakolwiek wartość będzie w bazie to kod poniżej zawsze zwraca prawdę.
  1. var_dump($stmt->fetch());

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.