Skocz do zawartości
Davidson

Jak to zapisać? Jeśli jest równe

Polecane posty

Witam, jestem w przygotowaniu prostego panelu gracza do mysql, i mam pytanie!

Adres strony: http://powerplay24.pl/game.php?id=banlist

Pobieram datę wygaśnięcia bana która jest równa "0000-00-00 00:00:00",

Jak zapisać polecenie:

JEŚLI "EndBan" JEST RÓWNY 0000-00-00 00:00:00 TO NAZWIJ GO "Nigdy".

Licze na waszą pomoc :)

$result = mysql_query("SELECT Nick, DataBan, Admin, Powod, EndBan FROM Bany");
echo "<td bgcolor=\"3b3c39\"><font color='white' face='Verdana'>" . $row['EndBan'] . "</font></td>";

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Z mysql_query wyciągaj to co chcesz do jakiejś zmiennej i wtedy porównuj.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Okej, za chwileczkę spróbuje to zrobić sam.

 

 

mysql_query? Obudź się chłopie, jest 2013 roku, XXI wiek. Ta strona Ci pomoże.

A co mi kolega powie na ten temat bo nie rozumiem, mysql_query przestarzałe czy co?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Z tego co podałeś w pierwszym poście nic nie wynika. Co chcesz zrobić dokładnie?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tak wygląda kod:

<?php 

include 'db.php';

$result = mysql_query("SELECT Nick, DataBan, Admin, Powod, EndBan FROM Bany");


echo "<table border='0'>
<tr>
<th bgcolor=\"2a2b2c\"><font color='00c7ff' face='Verdana'>Nick</font></th>
<th bgcolor=\"2a2b2c\"><font color='00c7ff' face='Verdana'>Data nałożenia</font></th>
<th bgcolor=\"2a2b2c\"><font color='00c7ff' face='Verdana'>Data wygaśnięcia</font></th>
<th bgcolor=\"2a2b2c\"><font color='00c7ff' face='Verdana'>Admin</font></th>
<th bgcolor=\"2a2b2c\"><font color='00c7ff' face='Verdana'>Powód</font></th>


</tr>";

 
 while($row = mysql_fetch_array($result)) 
 {
    echo "</tr>";
    echo "<td bgcolor=\"3b3c39\"><font color='white' face='Verdana'>" . $row['Nick'] . "</font></td>";
    echo "<td bgcolor=\"3b3c39\"><font color='white' face='Verdana'>" . $row['DataBan'] . "</font></td>";
	echo "<td bgcolor=\"3b3c39\"><font color='white' face='Verdana'>" . $row['EndBan'] . "</font></td>";
    echo "<td bgcolor=\"3b3c39\"><font color='white' face='Verdana'>" . $row['Admin'] . "</font></td>";
    echo "<td bgcolor=\"3b3c39\"><font color='white' face='Verdana'>" . $row['Powod'] . "</font></td>";
    echo "</tr>";
 }
 echo "</table>";
 
  if ( !mysql_close() ) {
    echo 'Nie moge zakonczyc polaczenia z baza danych';
    exit (0);
 }
 
 ?>

Teraz chcę zrobić tak - jeśli wartość EndBan = 0000-00-00 00:00:00 , to żeby w tabeli zamiast "0000-00-00 00:00:00" było napisane "Nigdy".

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No to dodaj sobie w pętli prostego ifa na zawartość pola EndBan

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nigdy tego nie robiłem, uczę się języka dopiero, w sumie jest to mój pierwszy "skrypt" - jeśli można to w ten sposób nazwać, bo "obcego" za wiele tam nie ma :D

 

Co robię źle?

$nigdy = $row['EndBan'];

for( $nigdy == 0000-00-00 00:00:00){
echo $nigdy = "Nigdy"; }
Edytowano przez Davidson (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

W już istniejącej pętli "ifa", czyli użyj IF.

while($row = mysql_fetch_array($result))
{
echo "</tr>";
echo "<td bgcolor=\"3b3c39\"><font color='white' face='Verdana'>" . $row['Nick'] . "</font></td>";
echo "<td bgcolor=\"3b3c39\"><font color='white' face='Verdana'>" . $row['DataBan'] . "</font></td>";
echo "<td bgcolor=\"3b3c39\"><font color='white' face='Verdana'>";

if ($row['EndBan'] == '0000-00-00 00:00:00') { echo 'Nigdy'; }
else { echo $row['EndBan']; }

echo "</font></td>";
echo "<td bgcolor=\"3b3c39\"><font color='white' face='Verdana'>" . $row['Admin'] . "</font></td>";
echo "<td bgcolor=\"3b3c39\"><font color='white' face='Verdana'>" . $row['Powod'] . "</font></td>";
echo "</tr>";
}
Edytowano przez Piotr GRD (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Czym mam zastąpić mysql_query?

 

Albo mysqli_query, albo PDO.

Można jeszcze uprościć sposób Piotra:

while($row = mysql_fetch_array($result)) {
    $ban = ($row['EndBan'] == '0000-00-00 00:00:00') ? $row['EndBan'] : 'Nigdy';

    echo "</tr>";
    echo "<td bgcolor=\"3b3c39\"><font color='white' face='Verdana'>" . $row['Nick'] . "</font></td>";
    echo "<td bgcolor=\"3b3c39\"><font color='white' face='Verdana'>" . $row['DataBan'] . "</font></td>";
    echo "<td bgcolor=\"3b3c39\"><font color='white' face='Verdana'>" . $ban . "</font></td>";
    echo "<td bgcolor=\"3b3c39\"><font color='white' face='Verdana'>" . $row['Admin'] . "</font></td>";
    echo "<td bgcolor=\"3b3c39\"><font color='white' face='Verdana'>" . $row['Powod'] . "</font></td>";
    echo "</tr>";
}

@OP: Swoją drogą, niezłą siekę wymodziłeś :)

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tego tak się nie robi.

Ustaw dla pola EndBan możliwość ustawiania wartości NULL,

a następnie tam, gdzie nie jest ono potrzebne, to ustawiaj NULL.

 

Wtedy w zapytaniu możesz zastosować konstrukcję

 

SELECT Nick, DataBan, Admin, Powod, COALESCE(EndBan, "nigdy") FROM ...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Troche offtopic ale mam dla Ciebie dobrą radę.
Zainteresuj się czymś takim jak PHP Data Objects (PDO), Doctrine lub Propel.
Ewentualnie naucz się obsługi jakiegoś małego frameworka (np CakePHP).
Wtedy znacznie łatwiej Ci wszystko będzie zrobić. Twój kod będzie bezpieczniejszy.

Wyciągnięcie wszystkich banów wtedy to: $this->Ban->find('all');
Znacznie wszystko upraszcza.


I odpowiedź na Twoje pytanie. W pliku w którym generujesz widok html zamień zmienną:
" $row['EndBan'] "
na

" str_replace('0000-00-00 00:00:00', 'nigdy', $row['EndBan']); "

Pozdrawiam. To rozwiązanie jest znacznie lepsze niż ify

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×