[PHP] Zamiast dostałeś ma być dostałaś


(Szymoneks12) #1

Otóż niezależnie od tego czy mam w MySQL w polu plec 1 czy 2 ZAWSZE wyświetla się dostałaś.

$plec = $record['plec'];


if ($plec=1)

{

$mowiedoplci="dostałaś";

}

else

{

$mowiedoplci="dostałeś";

}

(master of disaster) #2

Kolego podstawy php…

Musisz dać znak porównania czyli == a nie =


(Mathew) #3

Ja bym to zrobił tak.

$plec = $record['plec'];


if ($plec==1)

{

$mowiedoplci="dostałaś";

}

elseif($plec==2)

{

$mowiedoplci="dostałeś";

}

else{}

(GioWDS) #4

A co do za roznica (z wyjatkiem tego ze jego wersja jest mniej zasobozerna?) znasz jakas osobe ktora ma w dowodzie ‘nie okreslono’?


(Szymoneks12) #5

No, mam coś takiego

if ($plec==1)

{

$mowiedoplci="Dostałaś";

}

elseif($plec==2)

{

$mowiedoplci="Dostałeś";

}

else

{

$mowiedoplci="Dostałaś/dostałeś";

}

ale potem wysyłam maila

$temat = "$mowiedoplci bla bla!";

i wychodzi Dostałaś/dostałeś pomimo że na stronie po wywołaniu

echo $mowiedoplci

wychodzi np. Dostałeś.


(GioWDS) #6

A sprobuj tak:

switch($record['plec']) {

case 1: $plec = 'Dostalas'; break;

case 2: $plec = 'Dostales'; break;

default: $plec = 'Dostales/Dostalas';

}

$temat = $plec .' Bla Bla Bla';

(Szymoneks12) #7

Nadal to samo :frowning:


(Mathew) #8

A pomyślałeś że w bazie może być błąd i będzie “3”?


(master of disaster) #9

To znaczy że źle napisałeś stringa, lub coś pomieszałeś z kodem ale w innym miejscu.

$temat = "$mowiedoplci bla bla!"; [/code]

Nie powinno być

[code=php]
= $mowiedoplci.“bla bla!”;

?

Patrz w kod bardziej, albo pokaż nam całość.


(Jacek705) #10

wstaw var_dump($plec); po wyciągnięciu rekordu z bazy i przerobienie go przez mysql_fetch_array($zapytanie); oraz przed wysłaniem maila. Zobaczysz wartości zmiennych w danych momentach skryptu


(Szymoneks12) #11

TEMAT DO ZAMKNIĘCIA

Banalna literówka w kodzie…

Sorry, że wam zaprzątałem głowę! :idea:


(GioWDS) #12

Z tego powodu, parsuje się dane z formularza aby takich błędów nie było :wink:

Ogólnie to powinno być:

$temat = $mowiedoplci.'bla bla!';

Inaczej parser będzie się doszukiwał zmiennych i rozwiązanie w/w nie dość, że dalej będzie szukał zmiennych to jeszcze będzie męczył go łączeniem tekstu.


Sorki za odgrzewanie kotleta - wiem temat skończony, ale wypadało jeszcze dopisać te szczegóły.


(Mathew) #13

A przed atakiem na bazę i zmianę danych też się obronisz parsowaniem danych z formularza?


(GioWDS) #14

W najgorszej opcji jego wersja (oryginalna) zwracała Odebrałeś więc wiesz ;D