Avatar billede nolsen89 Juniormester
30. maj 2016 - 18:07 Der er 17 kommentarer og
1 løsning

mysqli select & update set +1

hej jeg har denne kode:

<?php
$productUrl = $_GET['productUrl'];
if($result = $db->query("SELECT * FROM Products WHERE productUrl = '$productUrl'")) {
if($result->num_rows) {                           
if($row = $result->fetch_object()) {
}
$result->free();
}
}
?>

Også ønsker jeg og opdatere productView med +1 i sammen table når den har fetch'et resultatet skal den kører denne kode:

$db->query("UPDATE Products SET productView = 'productView' +1 WHERE productUrl = '$productUrl'")

Håber der er en der kan hjælpe mig med mit problem og håber i forstår mit spørgsmål
Avatar billede arne_v Ekspert
30. maj 2016 - 18:15 #1
Den virker vel stort set som den er.

Du skal dog nok fjerne '' omkring productView.
Avatar billede htx98i17 Professor
30. maj 2016 - 18:15 #2
Der burde du kun have brug for 1 query.

Afprøv denne

UPDATE Products SET productView = productView + 1 WHERE productUrl = '$productUrl'
Avatar billede arne_v Ekspert
30. maj 2016 - 18:18 #3
Det var ogsaa min foerste tanke.

Men hvis productView indeholder hvad navnet antager, saa skal man nok viewe produktet inden der taelles op.
Avatar billede nolsen89 Juniormester
30. maj 2016 - 18:18 #4
har prøvet lidt forskellige og ved ikke hvor jeg skal indsætte koden
UPDATE Products SET productView = productView + 1 WHERE productUrl = '$productUrl'

en der skal skrive et færdigt eksempel??
Avatar billede htx98i17 Professor
30. maj 2016 - 18:18 #5
Nu kommer jeg til at se jeg nok har misforstået.
Avatar billede arne_v Ekspert
30. maj 2016 - 18:20 #6
Den skal vel saettes ind efter at du er faerdig med den foerste query.
Avatar billede nolsen89 Juniormester
30. maj 2016 - 18:21 #7
fik det til og virker med denne kode:

<?php
$productUrl = $_GET['productUrl'];
if($result = $db->query("SELECT * FROM Products WHERE productUrl = '$productUrl'")) {
if($result->num_rows) {
                           
if($row = $result->fetch_object()) {
    $db->query("UPDATE Products SET productView = productView +1 WHERE productUrl = '$productUrl'");
}
$result->free();
}
}
?>

Kan den eventuelt optimeres lidt?? eller er det en ok kode??
Avatar billede htx98i17 Professor
30. maj 2016 - 18:26 #8
Der er ingen grund til at køre den første query. De har ikke indflydelse på hinanden.
Avatar billede nolsen89 Juniormester
30. maj 2016 - 18:29 #9
hvad mener du med det??
Avatar billede htx98i17 Professor
30. maj 2016 - 18:34 #10
Prøv at forklar hvad formålet er med hver enkelt query - hvad skal du køre dem for.
Jeg kan ikke se at du har brug for den 1. query for at køre den 2.
Avatar billede nolsen89 Juniormester
30. maj 2016 - 18:37 #11
den første bruger jeg til og få data ud fra tablen og når den første er loadet bruger jeg den næste til og opdatere den samme table..
Avatar billede nolsen89 Juniormester
30. maj 2016 - 18:38 #12
hvis du har et bedre forslag er du velkommen til og vise det.
Avatar billede htx98i17 Professor
30. maj 2016 - 18:39 #13
Og du kører den første fordi du skal bruge outputtet går jeg ud fra. Bare du forstår at den anden query ikke behøver den første query for at virke efter hensigten.
Avatar billede htx98i17 Professor
30. maj 2016 - 18:40 #14
Det er nok bare mig der har misforstået. Jeg troede, du troede, at 2'eren havde brug for 1'eren :)
Avatar billede nolsen89 Juniormester
30. maj 2016 - 18:49 #15
jeg fik det ikke til og virker da jeg prøvede og fjerne den anden query fra update linjen..
så du må prøve og vise et eksempel..
Avatar billede htx98i17 Professor
30. maj 2016 - 18:56 #16
Hvis du bare skal opdatere productView, behøves du kun at køre:


<?php

$db->query("UPDATE Products SET productView = productView +1 WHERE productUrl = '$productUrl'");
?>


Men hvis du OGSÅ skal bruge nogle data fra stjernen (*) i den SELECT query, så skal du naturligvis også køre den.

Hvis det ikke giver mening, så skidt pyt, du
Avatar billede htx98i17 Professor
30. maj 2016 - 18:56 #17
har jo fået det til at virke
Avatar billede htx98i17 Professor
30. maj 2016 - 18:57 #18
hmm der postede den mit indlæg blot ved at taste på tastaturet...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester