Diskuze: Select , update a následne delete konkrétneho riadku.
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 10 zpráv z 10.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj,
řešíš tohle čistě v jednom SQL dotazu (SELEC,T UPDATE, DELETE), nebo přes
program např. v PHP?
Martin - riešim to v PHP.
Mego - Mám tb_action. Obsahuje 3 stlpce - action_id, action_status,
action_data
Tabuľka obsahuje viacero záznamov takže vyzerá nejak takto.
action_id, action_status, action_data , action_user
10 , 1 ,500 , tomas
11, 1 ,600, peter
12, 0 , ,700 , adam
Čo potrebujem urobiť.:
1.SELECT Vybrať jeden z riadkov ktorý action_status=1 (to je jedno ktorý
pretože kod s apotom spusti znovu takže nakoniec všetky s statusom 1 vymažem
postupne v kroku 3)
2.UPDATE teraz chcem udpatovať druhú tabuľku takže tam nastavím niečo ako
toto update tb_users set data=data+$selecnuty_riadok[action_data] WHERE
user_name=$selecnuty_riadok[action_user]
2,1 - kódy na updaty už mám no neviem stále určiť ten selecnuty riadok čiže premenna $selecnuty_riadok ktorý by som mal premeniť v kroku 1- Ide o to, že kód si vyberie riadok, uvidí tam že daný riadok v tabuľke sa týka používateľa tomáš, a v update priradí dané data užívateľovi tomáš no v inej tabuľke. Ako píšem tieto kody už mám to moc neriešte - nemám kod na select randomne vybraného raidku.
3.DELETE, - na záver po update v kroku 2, daný riadok z ktorého tieto dáta čítal zmaže. Tento kod mi chýba tiež kedže znovu nepoznám premenu selectu.
Vie niekto pomôcť teda ?
Nevím, jak vypadá tvůj kód, ale nástin pomocí PDO by mohl vypadat asi takto:
// 1)
$dataQuery = $pdo->query("SELECT * FROM tbl_action WHERE action_status = 1");
$data = $dataQuery->fetchAll(PDO::FETCH_OBJ);
$pdo->beginTransaction();
foreach ($data as $action) {
// 2)
$updateQuery = $pdo->prepare("
UPDATE tbl_users
SET data = data + ?
WHERE user_name = ?
");
$updateQuery->execute(array($action->action_data, $action->user));
// 3)
$deleteQuery = $pdo->prepare("
DELETE FROM tbl_action
WHERE action_id = ?
");
$deleteQuery->execute(array($action->action_id));
}
$pdo->commit();
Notice: Undefined variable: pdo
Fatal error: Call to a member function query() on null in
:/
Inak čo sa týka v tretej časti ako máme WHERE action_id = ? čo mám dať nameisto otáznika ? id tam nemôžem dať pretože tam bude možnosť aj toho, že daný užívateľ tam bude mať viacej záznamov takže toto by zmazalo všetky jeho záznamy čo nechcem pretože by data z dalšeiho záznamu už nepripisovalo
Ukaž nám, prosím, kód, který máš ty.
Že ty si sa Marečku stále na tie tutotialy nepozrel?
Zobrazeno 10 zpráv z 10.