Avatar billede Morten Professor
09. december 2015 - 20:01 Der er 12 kommentarer og
2 løsninger

Update af datetime

Hej Eksperter

Har et problem med at få min update til at virke:

Den kommer med denne fejl:
Fatal error: Call to a member function bind_param() on a non-object in /var/www/vhosts/flueopskrifter.dk/test.flueopskrifter.dk/besoeg_function.php on line 69

Min kode er:

<?php
function Update_besoeg_datetime($hellestrik, $privat){
/* Update et prepared statement */

    $stmt = "UPDATE `tbl_besoeg` SET datetime =?, `hits`=`hits`+1 WHERE `privat`=?";
   
    /* Bind parametre */
    $stmt->bind_param('ss', $privat, $datetime);

    /* Sæt værdier på parametrene */
    $privat = $_GET['privat'];
    $datetime = date('Y-m-d H:i:s');
    /* Eksekver forespørgslen */
    $stmt->execute();


    /* Der er opstået en fejl */
    echo 'Der opstod en fejl i erklæringen: ' . $hellestrik->error;
}

?>
Avatar billede Morten Professor
09. december 2015 - 20:06 #1
Det skulle jo endelig være enkelt og har lavet en før, men forstår ikke lige hvorfor denne ikke virker
Avatar billede olsensweb.dk Ekspert
09. december 2015 - 20:19 #2
>function Update_besoeg_datetime($hellestrik, $privat){
>$privat = $_GET['privat'];
tager du privat over som prameter eller binder du din $_GET
fjern den du ikke bruger

skal dette
>$stmt->bind_param('ss', $privat, $datetime);
ikke være
$stmt->bind_param('ss', $datetime, $privat);
Avatar billede Morten Professor
09. december 2015 - 20:27 #3
Har prøvet sådan men virkede ikke

function Update_besoeg_datetime($hellestrik, $privat){
/* Update et prepared statement */

    $stmt = "UPDATE `tbl_besoeg` SET datetime =?, `hits`=`hits`+1 WHERE `privat`=?";
   
    /* Bind parametre */
    $stmt->bind_param('ss', $datetime, $privat);

    /* Sæt værdier på parametrene */
    $datetime = date('Y-m-d H:i:s');
    /* Eksekver forespørgslen */
    $stmt->execute();


    /* Der er opstået en fejl */
    echo 'Der opstod en fejl i erklæringen: ' . $hellestrik->error;
}
Avatar billede arne_v Ekspert
09. december 2015 - 20:35 #4
$stmt = "UPDATE `tbl_besoeg` SET datetime =?, `hits`=`hits`+1 WHERE `privat`=?";
$stmt->bind_param('ss', $datetime, $privat);

????

Du kan ikke kalde bind_param paa en string.

Du skal kalde prepare paa connection med SQL streng for at faa en statement.
Avatar billede olsensweb.dk Ekspert
09. december 2015 - 20:54 #5
(utested)
   
<?php
function Update_besoeg_datetime($hellestrik, $privat){
    /* Update et prepared statement */
    if($stmt = $hellestrik->prepare("UPDATE `tbl_besoeg` SET datetime =?, `hits`=`hits`+1 WHERE `privat`=?")) {
        /* Bind parametre */
        $stmt->bind_param('ss', $datetime, $privat);

        /* Sæt værdier på parametrene */
        $datetime = date('Y-m-d H:i:s');
        /* Eksekver forespørgslen */
        $stmt->execute();
    }
    else{
        /* Der er opstået en fejl */
        echo 'Der opstod en fejl i erklæringen: ' . $hellestrik->error;
    }
}
?>

godt set arne_v :)

det arne_v mener er fremhævet

den skal vel også lige pakkes ind i en if/else hvis din fejl besked skal give mening
Avatar billede Morten Professor
09. december 2015 - 21:30 #6
Ahh yes nu virker det, tak for hjælpen i to :o)
Skal vi dele de point i har begge hjulpet
Avatar billede olsensweb.dk Ekspert
09. december 2015 - 21:42 #7
ja
Avatar billede Morten Professor
09. december 2015 - 21:43 #8
ronols
Så blev det på den måde med besøg pr. dag
Så kan man se om hvor mange der er inde, også selvom de har den samme ip fra dagen før ;o)
Og se hvor mange hits de har lavet i tidens løb hvor de har haft den ip.
Avatar billede arne_v Ekspert
09. december 2015 - 21:52 #9
svar
Avatar billede olsensweb.dk Ekspert
09. december 2015 - 22:09 #10
#8 det er en referance til http://www.eksperten.dk/spm/1007758
>Og se hvor mange hits de har lavet i tidens løb hvor de har haft den ip.
ja, men du ville jo have det for de sidst 7 dage, og kører du ikke raporten på præsis dag 7 og resetter ville du ikke kunne stole på antal hits.
det var derfor jeg ville lave en record pr ip pr dag.
så ville jeg også nemt kunne ændre antallet af dage, hvis det passede mig.
Avatar billede Morten Professor
10. december 2015 - 06:59 #11
Jeg tænkte jeg ville nøjes med denne funktion til at se antal hits og besøg om dagen, vi har lavet det andet med man kan se hver 7 ende dag.
Så jeg er godt tilfreds.
Er glad for i hjalp mig med det.
Avatar billede Morten Professor
10. december 2015 - 07:22 #12
Doh det jeg har lavet virker ikke den kommer ikke med ny ip.
Har prøvet det du ref. til nu virker fint men kan ikke group det.
Avatar billede Morten Professor
10. december 2015 - 08:23 #13
Nu prøver jeg at lave den som vi har lavet før men virker ikke.
$privat = $_GET['privat'];
$test = besoeg_Select($hellestrik, $privat);

if($privat==0){
$test = besoeg_Create($hellestrik, $privat);
}
else {
$test = besoeg_Update($hellestrik, $privat);

}
For så tænte jeg at jeg bare slette for hver dag.
Avatar billede Morten Professor
10. december 2015 - 09:10 #14
Lige meget det virker nu ;o)
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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