Avatar billede Morten Professor
05. april 2015 - 23:01 Der er 8 kommentarer og
1 løsning

Hent data fra session id

Ved det er mysql men lige test.
Er igang med mysqli.

Jeg prøver at trække min data ud fra databasen med et id fra min session.
Men det virker bare ikke, hvad gør jeg galt?
<?php
  session_start();
 
  $colname_rsVarer = "-1";
if (isset($_GET['id'])) {
  $colname_rsVarer = $_GET['id'];
}
mysql_select_db($database_kurv, $kurv);
$query_rsVarer = sprintf("SELECT * FROM vare WHERE id = '".$vareid."'", GetSQLValueString($colname_rsVarer, "int"));
$rsVarer = mysql_query($query_rsVarer, $kurv) or die(mysql_error());
$row_rsVarer = mysql_fetch_assoc($rsVarer);
$totalRows_rsVarer = mysql_num_rows($rsVarer);
    foreach($_SESSION["kurv"] as $vareid => $antal){ 
    echo $vareid ."-". $antal;
    echo $row_rsVarer['id'];
    echo $row_rsVarer['vare'];
    echo $row_rsVarer['pris'];};
   
?>

Med venlig hilsen
Morten
Avatar billede arne_v Ekspert
05. april 2015 - 23:24 #1
Hvad forventer du at:

$query_rsVarer = sprintf("SELECT * FROM vare WHERE id = '".$vareid."'", GetSQLValueString($colname_rsVarer, "int"));

goer?

Der er jo ingen % i format strengen.
Avatar billede Morten Professor
05. april 2015 - 23:57 #2
Få data fra databasen med det id som er i session
Avatar billede olsensweb.dk Ekspert
06. april 2015 - 00:25 #3
det som Arne_v henvisser til er at du mangler at sætte %s ind
lige som du har gjort i ref http://www.eksperten.dk/spm/1002763 #3

$updateSQL = sprintf("UPDATE test SET navn=%s, efternavn=%s, adresse=%s, postnr=%s, bynavn=%s, nummer=%s, email=%s WHERE id=%s",
    GetSQLValueString($_POST['navn'], "text"),
    GetSQLValueString($_POST['efternavn'], "text"),
    GetSQLValueString($_POST['adresse'], "text"),
    GetSQLValueString($_POST['postnr'], "int"),
    GetSQLValueString($_POST['bynavn'], "text"),
    GetSQLValueString($_POST['nummer'], "int"),
    GetSQLValueString($_POST['email'], "text"),
    GetSQLValueString($_POST['id'], "int"));

prøv at echo din $query_rsVare
står der det du forvendter ??

men hvorfor anvender du sprintf ??
Avatar billede Morten Professor
06. april 2015 - 19:38 #4
Er kommet frem til
<?php

    //Vi starter vores sessions
    session_start();
   
    //så skal vi lige vide hvilken vare kunden vil have og hvor mange han skal have
    $id = "Ordre nr.: ".$row_rsVarer['id']."<br>".
    $id = "<br>"."Vare: ".$row_rsVarer['vare']."\n".
    $id = "<br>"."Pris: ".$row_rsVarer['pris']."\n".
    $id = "<br>"."Oplysning: ".$row_rsVarer['tekst']."\n".
    $antal = $row_rsVarer['antal']."<br>";
   
    //her kontrolleres det om kunden allerede har varen og hvis det er tilfældet tillægges antallet til den eksisterende værdi.
    //ellers oprettes varelinien blot med værdien af antal
    if(isset($_SESSION["kurv"][$id]))
        $_SESSION["kurv"][$id] += $antal;
    else
        $_SESSION["kurv"][$id] = $antal;

?>

Men det mærkelige er at der kommer et ekstra 1 tal

Ordre nr.: 10

Vare: Skrivebord i teak
Pris: 950
Oplysning:
Er i god stand
1 "Lige her" det forstår jeg ikke.
Antal: 1

Ville gerne have jeg kunne gange antal med pris, har prøvet nogle forskellige måder.

Er der nogle der kan hjælpe mig?

Med venlig hilsen
Morten
Avatar billede Morten Professor
06. april 2015 - 19:51 #5
Fandt fejlen

$id = "Ordre nr.: ".$row_rsVarer['id']."<br>".
    $id = "<br>"."Vare: ".$row_rsVarer['vare']."\n".
    $id = "<br>"."Pris: ".$row_rsVarer['pris']."\n".
    $id = "<br>"."Oplysning: ".$row_rsVarer['tekst'];"Her"
    $antal = $row_rsVarer['antal']."<br>";

Men mangler stadig det med antal og pris
Avatar billede olsensweb.dk Ekspert
06. april 2015 - 19:57 #6
du får ikke udskrevet disse tekster
$id = "Ordre nr.: ".$row_rsVarer['id']."<br>".
$id = "<br>"."Vare: ".$row_rsVarer['vare']."\n".
$id = "<br>"."Pris: ".$row_rsVarer['pris']."\n".
$id = "<br>"."Oplysning: ".$row_rsVarer['tekst']."\n".
$antal = $row_rsVarer['antal']."<br>";

du sætter bare en variabel til at indeholde en tekst, uden t gøre noget ved den.
yderligere mere overskriver du så bare variabelen igen uden at have brugt den til noget :(


prøv at rette til
echo "Ordre nr.: ".$row_rsVarer['id']."<br>".
echo "<br>"."Vare: ".$row_rsVarer['vare']."\n".
echo "<br>"."Pris: ".$row_rsVarer['pris']."\n".
echo "<br>"."Oplysning: ".$row_rsVarer['tekst']."\n".
$antal = $row_rsVarer['antal']."<br>";


alternativt kan du nøjes med 1 udskrivning
$kundeinfo="";
$kundeinfo .= "Ordre nr.: ".$row_rsVarer['id']."<br>".
$kundeinfo .= "<br>"."Vare: ".$row_rsVarer['vare']."\n".
$kundeinfo .= "<br>"."Pris: ".$row_rsVarer['pris']."\n".
$kundeinfo .= "<br>"."Oplysning: ".$row_rsVarer['tekst']."\n".
echo $kundeinfo;

læg mærke til .=

så den udskrivning du visser passer ikke med den code du visser
Avatar billede Morten Professor
06. april 2015 - 20:15 #7
Array
(
    [kurv] => Array
        (
            [Ordre nr.: 12

Vare: Gyngestol, Wegner

Pris: 3200

Pris: 3200

Oplysning: Er i god stand.

] => 1

            [Ordre nr.: 10

Vare: Skrivebord i teak

Pris: 950

Pris: 950

Oplysning: Er i god stand

] => 2
        )

)

Jeg får udskrevet det.

Mangler bare det med antal * pris
Avatar billede Morten Professor
06. april 2015 - 20:32 #8
Den prøver jeg men virker ikke det med pris * antal

$id = "Ordre nr.: ".$row_rsVarer['id']."<br>".
    $id = "<br>"."Vare: ".$row_rsVarer['vare']."\n".
    $id = "<br>"."Pris: ".$row_rsVarer['pris']."\n".
    $id = "<br>"."Pris * antal: ".$row_rsVarer['antal'] * $row_rsVarer['pris']."\n".
    $id = "<br>"."Oplysning: ".$row_rsVarer['tekst'];"<br>".            $antal = $row_rsVarer['antal']."<br>";
Avatar billede Morten Professor
22. april 2015 - 20:12 #9
Lukker tråd
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