Jump to content
php.lv forumi

Admin panelos


monZy

Recommended Posts

Nesen viens luudza paliidziibu par administraacijas sisteemas veidoshanu un toreiz uzrakstiiju nelielu idejas sampli. Nesaku, ka shis piemeers ir \m/ un arii darbojas, bet idejas var aiznjemties.

 

http://paste.php.lv/1900

17401[/snapback]

 

uzreiz acīs iekrita:

nafig taisīt pārbaudi pie delete? ja tāds ID neeksistēs tad viņš vienkārši neizdzēsīsies. affected rows parādīsies 0. un pietam select neesošu ierakstu NEatgriež nekādu mysql_erroru!!!

 

pietiek ar (neskaitot $id pārbaudi):

mysql_query("DELETE FROM table WHERE id='$id'");
echo ( mysql_affected_rows() ? 'padzesas' : 'nepadzesaas' );

Link to comment
Share on other sites

Nesen viens luudza paliidziibu par administraacijas sisteemas veidoshanu un toreiz uzrakstiiju nelielu idejas sampli. Nesaku, ka shis piemeers ir \m/ un arii darbojas, bet idejas var aiznjemties.

 

http://paste.php.lv/1900

17401[/snapback]

 

uzreiz acīs iekrita:

nafig taisīt pārbaudi pie delete? ja tāds ID neeksistēs tad viņš vienkārši neizdzēsīsies. affected rows parādīsies 0. un pietam select neesošu ierakstu NEatgriež nekādu mysql_erroru!!!

 

pietiek ar (neskaitot $id pārbaudi):

mysql_query("DELETE FROM table WHERE id='$id'");
echo ( mysql_affected_rows() ? 'padzesas' : 'nepadzesaas' );

17445[/snapback]

 

Pirmaa paarbaude attiecas uz sintaksi (t.s. tabulas nosaukums utt..) nevis uz to vai taads ieraksts ir vai nav. Peec tam, ja sintakse ir OK, tiek njemts tas pats querijs un tiek iechekots ir ieraksts ir eksisteejoshs..

Nu, ja Tu veelies dzeest neeksisteejoshus ierakstus bez nekaadu warningu.. dzees :) man, piemeeram, patiik shaadi :)

Link to comment
Share on other sites

Pirmaa paarbaude attiecas uz sintaksi (t.s. tabulas nosaukums utt..) nevis uz to vai taads ieraksts ir vai nav. Peec tam, ja sintakse ir OK, tiek njemts tas pats querijs un tiek iechekots ir ieraksts ir eksisteejoshs..

Nu, ja Tu veelies dzeest neeksisteejoshus ierakstus bez nekaadu warningu.. dzees :) man, piemeeram, patiik shaadi :)

17478[/snapback]

 

nesapratu...

kādā sakarā jāpārbauda sintakse??!?!?! ja tabula neeksistē tad pie dzēšanas metīs erroru. lieks kods.

pietam 99.99% gadījumos tev tiks dzēsti reāli eksistējoši ieraksti nevis kaut kādi kreisie varianti.

Link to comment
Share on other sites

Pirmaa paarbaude attiecas uz sintaksi (t.s. tabulas nosaukums utt..) nevis uz to vai taads ieraksts ir vai nav. Peec tam, ja sintakse ir OK, tiek njemts tas pats querijs un tiek iechekots ir ieraksts ir eksisteejoshs..

Nu, ja Tu veelies dzeest neeksisteejoshus ierakstus bez nekaadu warningu.. dzees :) man, piemeeram, patiik shaadi :)

17478[/snapback]

 

nesapratu...

kādā sakarā jāpārbauda sintakse??!?!?! ja tabula neeksistē tad pie dzēšanas metīs erroru. lieks kods.

pietam 99.99% gadījumos tev tiks dzēsti reāli eksistējoši ieraksti nevis kaut kādi kreisie varianti.

17483[/snapback]

Bhh.. ko Tu streso srazu ? ;)

http://paste.php.lv/1965 - panjem un pats notestee reaali dziivee. Nezinu, kur Tev tur izlec kaads kljuudas pazinjojums, bet man taisni otraadi, pie kvaerija palaishanas ar kljuudainu sintaki (t.s. tabulas nosaukums), 'mysql_affected_rows()' f-ja atgriez True veertiibu. Man liiks kods vai kaa, nezinu, bet nu es te testeejo ttaa nospriedu.

 

Ja, piemeeram, kljuuda ir sintaksee vai tabulas nosaukuma noraadiishanaa, mums jauki paraadaas 'Izdzeesham!', bet ieraksts fiziski paliek tur pat, kur bijis - netiek izdzeests. Man pasham liekas, ka ir ljoti nepaarskataami un saakotneeji vispaar nevar saprast, kapeec ieraksts nav fiziski izdzeests, bet uzraadaas, ka ir.. un pieliekot klaat nelielu paarbaudiiti (pieemeram, ar f-jas mysql_error() paliidziibu) mees uzreiz redzam, ka kljuuda pashaa kvaerijaa (nepareizs tabulas nosaukums, kljuuda sintaksee utt).

 

IMHO viss jau atkariigs kaa Tu raksti kodu, ja Tev querijs ir statisks, tad varbuut shis viss ir lieks, bet ja queriji tiek veidoti dinamiski, kur mainaas tabulas nosaukums un taml, tad, manupraat, shis viss ir diezgan noderiigs.

 

Bet nu tas tikai mans viedoklis vai arii mans laamuma liimenis, vai arii man shodien ir paaraak liels pohu liimenis :>

Link to comment
Share on other sites

oj kā nosmējos :D

labi liecies mierā un pārlasi savu teikto.

 

es nevienā vietā tur neredzēju dinamisko sql pieprasījumu, vai arī mūsu uzskati par dinamisko sql pieprasījumu krasi atšķiras.

 

ja šis "SELECT * FROM saturs WHERE id='$id'" tev ir dinamisks, tad kas ir nedinamisks querijs???

 

es tavu kodu nemaz netestēju un netaisos to darīt un nemaz nešaubos, ka tur nemetās ārā kļūdas paziņojumi. vienkārši kad es iesāku programmēt man arī bija aptuveni tikpat līki un bezjēdzīgi kodi, taču ar laiku vairāk iedziļinies php un mysql būtībā un daudzajās funkcijās, kā arī ar laiku arī pelēkā masa sāk kustēties tādā virzienā, ka viss tiek maksimāli optimizēts.

 

un kāda starpība vai erroru tev atgriezīs select querijs vai delete querijs?

ar affected rows tu laikam vispār neesi iepazinies. affected rows NEKAD nevar atgriezt pozitīvu vērtību (lielāku par 0), ja tev ir kļūdains pieprasījums.

 

un tagad atšķir:

a) kļūdains pieprasījums

b) neeksistējošs ieraksts

 

tās ir divas dažādas lietas, kuras tu jauc kopā. neeksistējoša ieraksta gadījumā NEBŪS mysql kļūdu paziņojumu nekādos veidos (select,update,delete). kļūdaina pieprasījuma gadījumā tiks atgriezts mysql errors.

affected rows abos gadījumos būs 0.

 

un tagad par affected rows - tas mazais jociņš norāda cik rindu ir ietekmēts.. nu tā brutāli tulkojot. resp - kverijā norādīsi ka jādzēš 10 ieraksti no kuriem 3 neeksistē tad affected rows būs 7.

 

ceru ka saprati.

Edited by hmnc
Link to comment
Share on other sites

OK, tikai vienalga man neaiziet, kuraa vietaa Tu ar savu affected f-ju redzi, ka sintaksee gadaas kljuudas.

 

Par dinamisku kvaeriju es biju domaajis taadu kvaeriju, kuraa mainaas, teiksim, tabulas nosaukums, ORDERi, limiti, pieliekas COUNT(), kvaerijaa paraadaas vairaak kaa viena tabula un taa taalaak. Man tas ir dinamisks kvaerijs.. Tev, kaa daudz zinoshaakam kodeetaajam, dinamisks kvaerijs IMHO ir kaut kas pavisam cits un daudz sarezhgjiitaaks.

Nez.. ja Tev ar vienu kvaeriju ir jaadzeesh ieraksti no 10 tabulaam, tad kaut kaa mani maac shaubas, ka bez atsevishkjas paarbaudes (kaut vai kodeeshanas briidii) iztiksi.. varbuut peec laika domaashu savaadaak, bet tagad es domaaju taa un nekaa savaadaak.

 

p.s. Par informaaciju liels paldies, bet nevajag jau uzreiz reekuljot par to, ka cilveeks neizprot lietas buutiibu, visu nav izpratis liidz galam un rodas jautaajumi. Paskaties kaads pats biji pirms gadiem, kad tikko saaki kodeet.

Link to comment
Share on other sites

priekškam sintaksē vajadzīgas kļūdas?

kļūdas ir pieļaujamas TIKAI un vienīgi izstrādes procesā. jāizslēdz pilnīga kļūdu iespējamība galaproduktā.

ja jau tu tik ļoti rausties, ka pēkšņi pazudīs kāda tabula no mysql (kas ir vienīgais ticamais variants sql kļūdai) tad taisi pārbaudi visu skriptu sākumā vai tabulas eksistē vai nē.

 

mainās tabulu nosaukumi - kā to saprast?

nu tevis pieminētie piemēri par dinamisko pieprasījumu kādā no variācijām iespējams, ka ir dinamiski - nezinu ko precīzi tu ar to biji domājis, bet nu nav svarīgi.

jā man prātā sarežģītākas struktūras, kuras tiek veidotas dinamiski atkarībā no ievaddatiem.

 

un kas vainas dzēst 10 ierakstus? kā tu dzēsīsi piemēram 20 spam komentārus? pa vienam? un ja spam komentāri būs 200? un ko tur daudz pārbaudīt? saliek pareizus nosacījumus pēc kā tu tos sūdus dzēsīsi un aidā!

nu labi - kaut vai izdzēst 10 vēstules. saliekam ķeksīšus un dzēšam ārā.

nesaprotu īsti, ko tu biji domājis ar papildus pārbaudi?

 

un es jau nemaz par tevi nerēcu. pirmais komentārs pat tīri zolīds ar smuku ieteikumu. pats arī biju tāds pats, bet es tiecos uz augšu un mācos nevis spītīgi stāvu uz vietas un saku, ka man ir vispareizāk (un te es neapgalvoju, ka tu tā saki)

Link to comment
Share on other sites

×
×
  • Create New...