Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Zasto ovaj kod nece da radi?

[es] :: PHP :: Zasto ovaj kod nece da radi?

[ Pregleda: 1393 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

micke037
Jok
Ks

Član broj: 131076
Poruke: 83
*.sc.ni.ac.yu.

Sajt: www.studentskioglasi.net


Profil

icon Zasto ovaj kod nece da radi?13.11.2009. u 00:55 - pre 175 meseci
Code:
<?php
$Dan_2 = date("j");
$Datum_2 = date("n");
    /*KONEKCIJA NA SERVER*/
    $konekcija = @mysql_connect("localhost", "root", ""); 
    if (!$konekcija) 
        { echo( "<P>Trenutno nije moguce pristupiti " . "serveru sa bazom.</P>" ); 
          exit(); 
        }
    else
        { echo ("Konekcija na server je uspostavljena!!!"); }
    /*KONEKCIJA NA BAZU*/
    if (! @mysql_select_db("vicevi") ) 
        { echo( "<P>Konekcija sa bazom " . "trenutno nije moguca.</P>" );
          exit(); 
        }
    else { echo ("<br>Konekcija sa bazu je uspostavljena!!!"); }

 /*BRISANJE VICEVA*/
 $showit = mysql_query("SELECT * FROM `Sve` WHERE Dan_1<'$Dan_2' AND Datum_1<'$Datum_2'");
    $row = mysql_fetch_array($showit);
    {
        $rezultat=mysql_query("DELETE FROM `Sve` WHERE Dan_1<'$Dan_2' AND Datum_1<'$Datum_2'");
        if (!$rezultat) 
            {
                echo ("GRESKA!!! Vic nije obrisan. Proveri zadate parametre.");
            } 
            else 
            { 
                echo ("Vic je obrisan.");
            }
    }
?>


Poenta price je da se u samoj tabeli nalaze dan i datum kada je vic postavljen (Dan_1 i Datum_1) a da ja hocu da obrisem vic ako je proslo mesec dana. Znaci vic se brise ako je Dan_1 < Dan_2 ^ Datum_1 < Datum_2 gde su Dan_2 i Datum_2 dan i datum startovanja skripte. Ovo se odnosi za sve mesece od januara do novembra a u slucaju da se skripta pokrece decembra vazi uslov Dan_1 < Dan_2 ^ Datum_1 > Datum_2.

izmenio Nemanja: Kôd stavljajte u CODE tagove.

[Ovu poruku je menjao Nemanja Avramović dana 13.11.2009. u 13:03 GMT+1]
 
Odgovor na temu

Shinhan
PHP programmer
Subotica

Član broj: 12327
Poruke: 372
*.static.isp.telekom.rs.

Jabber: shinhan@elitesecurity.org
ICQ: 400847988


+4 Profil

icon Re: Zasto ovaj kod nece da radi?13.11.2009. u 07:42 - pre 175 meseci
Iz prve dve linije izgleda kad kažeš "datum" u stvari misliš "mesec". Datum je "dan, mesec i godina".
Što se tiče koda,
Šta će ti prvi select kad u delete queriju imaš isti WHERE?
Otkud otvorena vitičasta zagrada pre delete querija?
Takođe, za brisanje ti si proverio samo da li postoji greška ili ne, i predpostavio ako nema grešaka da je nešto obrisano što ne mora da znači. Ako želiš da znaš da li je u stvari nešto obrisano moraš koristiti mysql_affected_rows() (ista funkcija se koristi i za update i insert).

Što se samog zadatka tiče, čini mi se kao da si ovo sve strašno zakomplikovao.
Mnogo jednostavnije bi bilo da imaš pravo datumsko polje (znači sa danom, mesecom I GODINOM) i onda da lepo uradiš:
Code:

DELETE FROM sve WHERE datum < DATE_SUB(NOW(), INTERVAL 1 MONTH)


Preporučio bi ti da pogledaš MySQL dokumentaciju.
"Common sense is not so common." - Voltaire
 
Odgovor na temu

[es] :: PHP :: Zasto ovaj kod nece da radi?

[ Pregleda: 1393 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.