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

czy można wstawić funkcje if w funkcje echo?

Object Storage Arubacloud
+1 głos
325 wizyt
pytanie zadane 1 listopada 2018 w PHP przez olejniczakbydgoszcz Początkujący (290 p.)
<?php 

include_once 'polaczenie.php';

$langadb = "SET NAMES utf8";/*polskie znaki*/
mysqli_query($coon, $langadb);/*polskie znaki*/

$sql = "SELECT * FROM zachowanie order by 1 desc;";
$result = mysqli_query($coon, $sql);
$resultcheck = mysqli_num_rows($result);

if ($resultcheck > 0) {
	while ($row = mysqli_fetch_assoc($result)){
	 
        echo "<table>"
            ."<tr>"
            ."<td>"."data"."</td>"
            ."<td>"."nauka"."</td>"
            ."<td>"."sprzatanie"."</td>"
            ."<td>"."zachowanie"."</td>"
            ."<td>"."spanie"."</td>"
            ."</tr>"
            ."<tr>"
            ."<td>".$row['data']."</td>"
            ."<td>".$row['naukap']."</td>"
            ."<td>".$row['sprzataniep']."</td>"
            ."<td>".$row['zachowaniep']."</td>"
            ."<td>".$row['spaniep']."</td>"
            ."</tr>"
            ."</table>"  ;
	}
	}

?>

if ($row['naukap']==1){
<img src="img/wesola.png" width="25" />
} elseif ($row['naukap']==0) {
<img src="img/smutna.png" width="25" />
} else {
<img src="img/brak_oceny.png" width="25" />

}

Proszę o pomoc czy jest wykonalne wstawienie instrukcji warunkowej "if" w funkcje "echo" Chodzi mi o to aby zamiast wyświetlenia zmiennej "$row['naukap']" która ma wartość 0,1 lub null , był wstawiony odpowiedni obrazek. Samą instrukcję if napisałem poniżej ale nie mogę jej za żadne skarby wstawić w tabele. Z góry dziękuje za pomoc.

3 odpowiedzi

+2 głosów
odpowiedź 1 listopada 2018 przez Comandeer Guru (600,810 p.)

Jest coś takiego jak operator trójkowy. Nie zawsze trzeba kombinować z tworzeniem osobnej funkcji:

echo '<img src="img/' . ($zmienna === true ? 'wesola' : 'smutna') . '.png" width="25" />';

 

+1 głos
odpowiedź 1 listopada 2018 przez X3h Dyskutant (9,540 p.)
edycja 1 listopada 2018 przez X3h
function obrazekDlaNauka($naukap){
    if(gettype($naukap) == 'NULL'){
        return "<img src='img/brak_oceny.png' width='25' />";
    }
    elseif($naukap == 0){
        return "<img src='img/smutna.png' width='25' />";
    }
    elseif($naukap == 1){
        return "<img src='img/wesola.png' width='25' />";
    }
}

$row = [];

$row['naukap'] = 0;
echo "<td>".obrazekDlaNauka($row['naukap'])."</td>";
// <td><img src='img/smutna.png' width='25' /></td>

$row['naukap'] = 1;
echo "<td>".obrazekDlaNauka($row['naukap'])."</td>";
// <td><img src='img/wesola.png' width='25' /></td>

$row['naukap'] = NULL;
echo "<td>".obrazekDlaNauka($row['naukap'])."</td>";
// <td><img src='img/brak_oceny.png' width='25' /></td>

Użyłem takiego wypisywania dla przykładowych wyników, ale równie dobrze można to zmodyfikować do jednego echo tak jak jest w 15 linijce z pytania.

komentarz 2 listopada 2018 przez olejniczakbydgoszcz Początkujący (290 p.)

niestety dla tablicy powyższy zapis nie działa próbowałem jeszcze bezpośrednio zacząć od tablicy ale również z negatywnym skutkiem

function obrazekDlaNauka($row['naukap']){
    if(gettype($row['naukap']) == 'NULL'){
        return "<img src='img/brak_oceny.png' width='25' />";
    }
    elseif($row['naukap'] == 0){
        return "<img src='img/smutna.png' width='25' />";
    }
    elseif($row['naukap'] == 1){
        return "<img src='img/wesola.png' width='25' />";
    }
}

echo obrazekDlaNauka($row['naukap']);

 

komentarz 2 listopada 2018 przez X3h Dyskutant (9,540 p.)

function obrazekDlaNauka($row['naukap'] Nie nie nie nie) Tworząc nagłówek funkcji argumentami są nazwy zmiennych tak jak napisałem.

Pokaż co siedzi w wierszach za pomocą 

echo '<pre>'; print_r($row); echo '</pre>';
0 głosów
odpowiedź 1 listopada 2018 przez HaKIM Szeryf (87,590 p.)

Proszę o pomoc czy jest wykonalne wstawienie instrukcji warunkowej "if" w funkcje "echo" 

 Bezpośrednio nie, ale możesz zrobić coś ala:

<?php

function getMessage(): string
{
    if (1 === 1) {
        return 'Foo';
    } else {
        return 'Bar';
    }
}

echo getMessage();

Tylko, że w PHP się przyjęło, że do wyświetlania funkcji używamy print.

Chodzi mi o to aby zamiast wyświetlenia zmiennej "$row['naukap']" która ma wartość 0,1 lub null , był wstawiony odpowiedni obrazek.

Problem w tym, że nigdzie nie powiedziałeś PHPowi, aby wyświetlił obrazek.

Działający kod to:

 

switch ($row['naukap']) {
    case 0:
        echo '<img src="img/wesola.png" width="25" alt="Wesoła minka">';
        break;
    case 1:
        echo '<img src="img/smutna.png" width="25" alt="Smutna minka">';
        break;
    default:
        echo '<img src="img/brak_oceny.png" width="25" alt="Brak oceny">';
        break;
}

Użyłem switcha, gdyż są szybsze i w tym przypadku bardziej przejrzyste.

Jeśli traktujesz programowanie na serio, to zacznij myśleć jak oddzielić warstwę prezentacji (Powiedzmy kod HTML) od warstwy infrastruktury (Powiedzmy mysqli_*). Tzn. nie musisz myśleć, po prostu wygoogluj.

https://phptherightway.com/#templating

komentarz 1 listopada 2018 przez olejniczakbydgoszcz Początkujący (290 p.)
dziękuje za zainteresowanie jednak nadal nie wiem jak tego switcha czy ifa wstawić w jedną zbiorczą tabele i wyświetlić na ekranie
komentarz 2 listopada 2018 przez HaKIM Szeryf (87,590 p.)
Sorry, ale nie rozumiem. Co masz na myśli przez „nie wiem jak tego switcha czy ifa wstawić w jedną zbiorczą tabele i wyświetlić na ekranie”?

Że w tagu <table> czy? Spróbuj objaśnić najbardziej szczegółowo i najmniej technicznie co chcesz osiągnąć.

Podobne pytania

0 głosów
2 odpowiedzi 204 wizyt
pytanie zadane 22 października 2018 w PHP przez DinapeS Początkujący (350 p.)
+1 głos
1 odpowiedź 149 wizyt
pytanie zadane 2 maja 2017 w PHP przez Amiga4ever Użytkownik (570 p.)
0 głosów
1 odpowiedź 322 wizyt
pytanie zadane 31 maja 2021 w PHP przez Doge Gaduła (3,370 p.)

92,555 zapytań

141,403 odpowiedzi

319,559 komentarzy

61,940 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!

...