Abejoju, ar taip įmanoma. O formos irgi nebūtina, tiesiog linke padaryt nuorodą su kokiu "req=delete" ir po to funkcijų faile
if ($_GET['req'] == "delete"){
// trinam iš MySQL...
}
PHP ir MySQL programavimas, SQL užklausos, duomenų bazės, PHP scriptai, pagalba, diskusijos, pamokos ir straipsniai.
You are not logged in. Please login or register.
PHP ir MySQL → Posts by neturiuVardo
Abejoju, ar taip įmanoma. O formos irgi nebūtina, tiesiog linke padaryt nuorodą su kokiu "req=delete" ir po to funkcijų faile
if ($_GET['req'] == "delete"){
// trinam iš MySQL...
}
Hehe, po truputį suprantu, kad visai neblogas dalykas tas OOP. Va, pradžiai kokį resizerį pasirašiau :)
class ImageResize{
public $name;
// Seni img dydžiai
public $W, $H;
// Nauji img dydžiai
public $NewW = 800;
public $NewH = 600;
// Pakeistų paveiksliukų nuorodos
public $path;
// Laikini kintamieji
public $tmp;
public $src;
public function __construct(){
$this->src = imageCreateFromJPEG($_FILES['upload']['tmp_name']);
list($this->W, $this->H) = getImageSize($_FILES['upload']['tmp_name']);
$this->name = $_FILES['upload']['name'];
$this->path = $_SERVER['DOCUMENT_ROOT'] . "/abc/upload/";
}
public function resize(){
$this->tmp = imageCreateTrueColor($this->newW, $this->newH);
imageCopyResampled($this->tmp, $this->src, 0, 0, 0, 0, $this->newW, $this->newH, $this->W, $this->H);
if ( file_exists($this->path . $this->name) ){ // Jei toks failas egzistuoja
$exts = explode(".", $this->name); // Explodinam vardą, kad atskirti extensioną nuo failo vardo
$this->name = $exts[0] . "_" . rand(0, 999) . "." . $exts[1];
}
imageJPEG($this->tmp, $this->path . $this->name, 100);
imageDestroy($this->tmp);
return $this->path . $this->name;
}
public function setSize($width, $height){
$this->newW = $width;
$this->newH = $height;
}
public function setSizeVar($max){
if ( $this->W > $this->H ){
$this->newW = round( $this->W * ($max / $this->W) );
$this->newH = round( $this->H * ($max / $this->W) );
} else {
$this->newW = round( $this->W * ($max / $this->H) );
$this->newH = round( $this->H * ($max / $this->H) );
}
}
}
Bet būtų vienas klausimas - kokia prasmė naudoti private ar protected?
Aišku nėra vienos teisybės, bet mane užknisa tie simple pavyzdžiai įvairiais klausimais, nes pats OOP principas yra kurt struktūras. Kiek tenka pastebėt, tai pradedantieji dažniausia pasikuria šiukšlyną.
Tame ir yra reikalas, kad realaus pavyzdžio kur panaudoti galima neparodo, tik visokius su dėžėm, mašinom ar šeimom... Design patterns, kiek akį užmetęs buvau, jau kažkas konkrečiau. Reiks pasigilint, dėkui :)
Sveiki,
Neseniai pradėjau domėtis objektiniu programavimu ir bandau suprast kodėl tai gali būti geriau :)
Tai va, tarkime šis, pavyzdys blogas, nes html struktūra naudojama?
Kaip suprantu, OO naudojama tik įterpt duomenis į HTML elementus?
Heh, užmiršau global $con; funkcijai parašyt, tai ir nerasdavo $con :)
Viskas puikiai veikia dabar.
LOCK TABLE test WRITE;
SELECT @myRight := rgt FROM test
WHERE parent = 'AC';
UPDATE test SET rgt = rgt + 2 WHERE rgt > @myRight;
UPDATE test SET lft = lft + 2 WHERE lft > @myRight;
INSERT INTO test(produktas, lft, rgt, parent, level) VALUES('qwe', @myRight + 1, @myRight + 2, '', '');
UNLOCK TABLES
Bandau įvykdyt komandą per PHP - meta klaidą:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT @myRight := rgt FROM test WHERE parent = 'AC'; UPDATE test SET rg' at line 2
Bet įvykdžius tiesiai per phpMyAdmin - viskas puikiai veikia. Kas čia negerai?
EDIT:
Na, jau supratau, kad su mysql_query keleto užklausų neįmanoma padaryti. Reik daryt su mysqli_multi_query, bet kažko taip pat nenori veikt...
mysqli_multi_query($con, "LOCK TABLE test WRITE;
SELECT @myRight := rgt FROM test
WHERE parent = '$cat';
UPDATE test SET rgt = rgt + 2 WHERE rgt > @myRight;
UPDATE test SET lft = lft + 2 WHERE lft > @myRight;
INSERT INTO test(produktas, lft, rgt, parent, level) VALUES('$produktas', @myRight + 1, @myRight + 2, '', '');
UNLOCK TABLES") or die(mysql_error());
Warning: mysqli_multi_query() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\skelbiu\config.php on line 136
$con = mysqli_connect($host, $user, $pw, $db);
Sveiki,
Norėčiau sužinoti kaip padaryti tokią kategorijų sistemą kaip skelbiu.lt.
Galvoju reik daryt tokias eilutes:
id | produktas | parent_id
1 blah 0
2 blah_1 1
3 n_cat 0
4 n_cat_1 3
Gal patartumėt kaip tai padaryt paprasčiausiai? Dėkui.
Kaip parašei, taip ir rodo.
info.php?id=duk&apie=kazkas - rodys "duk".
info.php?id=kazkas&apie=pvz - rodys "pvz".
Ko tu tiksliau čia nori?
<?
$req = mysql_query("SELECT title, time, COUNT(url) FROM pics GROUP BY title ORDER BY time DESC");
while($row = mysql_fetch_array($req)) {
$num = $row['COUNT(url)'];
$title = $row['title'];
?>
<h3><?= $row['title']; ?></h3>
<?
$q = mysql_query("SELECT * FROM pics WHERE title='$title' ORDER BY time DESC");
for($i = 0; $i < $num; $i++) {
$r = mysql_fetch_array($q);
?>
<a href="/cms/back/<?= $r['url']; ?>" rel="lightbox[roadtrip]"><img src="/cms/back/<?= $r['thumb_url']; ?>" /></a>
<?
};
};
?>
Noriu padaryt, jog skaitytų iš DB pavadinimą ir po to išspausdintų linkus, kurie turį tą patį "title"... Viskas veikia puikiai, tik gal įmanoma "švariau" parašyti?..
Aišku, dėkui už atsakymą, gal net nebandysiu iki galo daryt tada :D
Tokiu tikslu, kad užskaitytų kaip balsuotą. Gan sudėtinga pamatyt ar jis veikia praktiškai, bet man įdomu, ar jis bent parašytas teisingai?
Sveiki,
Turbūt žinot apie kaledustebuklas.lt? Kad nereiktų spaudinėt kiekvieną kartą sugalvojau parašyt php skriptą, tik kad nedidelė patirtis su php mano, tad nežinau ar įmanoma tokį skriptą padaryt.
Mano kodas: http://pastie.org/753085
Gal galit užmest akį ir pažiūrėt, kas negerai?
Beje, jokių blogų ketinimų neturiu ir tai tik mokymosi tikslais :)
PHP ir MySQL → Posts by neturiuVardo
Powered by PunBB, supported by Informer Technologies, Inc.