←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

PHP
Problem z odejmowaniem dni

  • +
  • -
PYRDYS - zdjęcie PYRDYS 15.03.2015

Witam, Mam problem . Otóż mam taki kod:

$zapytanie = mysql_query("SELECT pozostalo_dni FROM uslugi");
$wynik_zapytania = mysql_fetch_array($zapytanie);
$pozostalo_dni = $wynik_zapytania[0];
if($pozostalo_dni >= 1)
{
$zmiendni = $pozostalo_dni - 1;
mysql_query("UPDATE uslugi SET pozostalo_dni = '$zmiendni'");
echo "-1 dzień !";
}
else
{
mysql_query("DELETE FROM uslugi WHERE pozostalo_dni = '0'");
//echo "Usunięto rekordy z wartością pozostalo_dni = 0";
}

I ten problem polega na tym że mam w tabeli uslugi rekordy co mają np. pozostalo_dni = 4, pozostalo_dni = 5 itd itd. A jak mi usuwa ten jeden dzień z nich . To ustawia mi wszystkie na np. 4 zamiast z każdego usunąć po jednym.

 

Rekordy w tabeli:

pozostalo_dni = 6
pozostalo_dni = 5
pozostalo_dni = 4

A wygląda to tak po odjęciu jednego dnia:

pozostalo_dni = 4
pozostalo_dni = 4
pozostalo_dni = 4

A powinno tak:

pozostalo_dni = 5
pozostalo_dni = 4
pozostalo_dni = 3

Prosiłbym o pomoc. Z góry dzięki.

Odpowiedz

  • +
  • -
wiwi249 - zdjęcie wiwi249 15.03.2015

Znowu powtarza sie historia z wczoraj. Wyciągnij wnioski i przeczytaj swój kod jeszcze raz. Ustawiasz $zmiendni tylko raz na podstawie tylko jeden wartości pobranej z bazy danej minus 1 i ustawiasz ją wszystkim. Jak chcesz to osiągnąć?

Odpowiedz

  • +
  • -
KochamFootball - zdjęcie KochamFootball 15.03.2015

Błąd podstawowy nr 1:

$zapytanie = mysql_query("SELECT pozostalo_dni FROM uslugi");
$wynik_zapytania = mysql_fetch_array($zapytanie);
$pozostalo_dni = $wynik_zapytania['pozostalo_dni'];

ponadto radzę użyć pętli i zapytania WHERE `id` = ''; ;)


Użytkownik KochamFootball edytował ten post 15.03.2015 11:32
Odpowiedz

  • +
  • -
PYRDYS - zdjęcie PYRDYS 15.03.2015

$result = mysql_query("SELECT * FROM uslugi");
while($wiersz = mysql_fetch_array($result))
{
    $pozostalo_dni = $wiersz['pozostalo_dni'];
    if($pozostalo_dni >= 1)
    {
        $zmiendni = $pozostalo_dni - 1;
        mysql_query("UPDATE uslugi SET pozostalo_dni = '$zmiendni'");
        echo "-1 dzień !";
    }
    else
    {
        mysql_query("DELETE FROM uslugi WHERE pozostalo_dni = '0'");
        echo "Usunięto rekordy z wartością pozostalo_dni = 0";
    }
}
Mam takie coś i co dalej ? Co tu zmienić, dodać lub usunąć ?
Odpowiedz

  • +
  • -
KochamFootball - zdjęcie KochamFootball 15.03.2015

Zastosuj i sprawdź :)

Odpowiedz

  • +
  • -
PYRDYS - zdjęcie PYRDYS 15.03.2015

$result = mysql_query("SELECT * FROM uslugi");
while($wiersz = mysql_fetch_array($result))
{
    $pozostalo_dni = $wiersz['pozostalo_dni'];
    $id = $wiersz['id'];
    if($pozostalo_dni >= 1)
    {
        $zmiendni = $pozostalo_dni - 1;
        mysql_query("UPDATE uslugi SET pozostalo_dni = '$zmiendni' WHERE id = '$id'");
        echo "-1 dzień !";
    }
    else
    {
        mysql_query("DELETE FROM uslugi WHERE pozostalo_dni = '0'");
        echo "Usunięto rekordy z wartością pozostalo_dni = 0";
    }
}  

 

Zrobiłem takie coś i wiecie co . Ja już nie wiem xD Ale podziękowania chyba już niedługo nie będą starczać xD Hehe ;) Dzięki. w końcu sie naucze nie robić aż tak oczywistych błędów ;) Ale dzięki wielkie panowie.

Odpowiedz

  • +
  • -
KochamFootball - zdjęcie KochamFootball 15.03.2015

Postawisz browara jak się spotkamy za kilka lat i tyle :D

Odpowiedz