15. februar 2015 - 19:27
Der er
37 kommentarer og 1 løsning
Indkøbs kurv flere oplysninger skal udskrives
Hej alle sammen Har et problem med min kurv. Kan kun få id og antal ud. Vil gerne have pris og varens navn ud også og vil gerne have prisen lagt sammen med nummer to vare. Min kode er her: <?php /* List varer i kurv */ session_start(); $foerstelinie=true; foreach($_SESSION['varenr'] as $vareid => $antal) { if($antal>0){ if($foerstelinie){ echo '<ul>'; $foerstelinie=false; } echo '<li>' . $vareid . ': ' . $antal . ' stk. ' . $pris .' . $vare.' <a href="indkoeb/slet_vare.php?slet='. urlencode($vareid) .'">Slet vare</a></li>'; } } if(!$foerstelinie){ echo '</ul>'; } ?> Link hvor jeg trykke for at få tilføjet til kurv er her: <div style="min-width:230px;" class="sv_overskrift"><?php echo $row_rsVare_Salg['vare']; ?></div> <div id="vs_opstilling">Varenr.: <strong><?php echo $row_rsVare_Salg['varenr']; ?></strong></div> <div class="linje"></div> <div id="vs_opstilling">Farve: <?php echo $row_rsVare_Salg['farve']; ?></div> <div class="linje"></div> <div id="vs_opstilling">Matriale: <?php echo $row_rsVare_Salg['matriale']; ?></div> <div class="linje"></div><div id="vs_opstilling">Højde: <?php echo $row_rsVare_Salg['hoejde']; ?></div> <div class="linje"></div> <div id="vs_opstilling">Vægt: <?php echo $row_rsVare_Salg['vaegt']; ?></div> <div class="linje"></div> <div id="vs_opstilling">Diameter: <?php echo $row_rsVare_Salg['diameter']; ?></div> <div class="linje"></div> <div id="vs_opstilling">Del(e): <?php echo $row_rsVare_Salg['antal']; ?> stk.</div> <div class="linje"></div> <div id="vs_opstilling">Oprettet: <?php echo $row_rsVare_Salg['dato']; ?></div> <div class="linje"></div> <div><div id="vs_opstilling">Status: <strong><?php echo $row_rsVare_Salg['status']; ?></strong></div> <div class="linje"></div> <div id="vs_opstilling"><strong>Pris: <?php $samletpris = $row_rsVare_Salg['pris'] * $row_rsFortjenste['fortjenste']/100 + $row_rsVare_Salg['pris'] ; echo $samletpris; ?> kr.</strong></div> <a href="indkoeb/indkoeb.php?id=<?php echo $row_rsVare_Salg['id']; ?>&vare=<?php echo $row_rsVare_Salg['vare']; ?>&pris=<?php echo $row_rsVare_Salg['pris']; ?>"><strong style="color:#0F0;">Læg i kurv</strong></a></div> id kommer fra mysqldatabasen Håber i kan hjælpe mig :-) Har knoklet med det i to dag måske 3 snart... $please = "please help me"; echo $please; ;oP
Annonceindlæg fra GlobalConnect
15. februar 2015 - 19:42
#1
Vi ved ikke hvad der sker i indkoeb.php. Hvorfor sende andet end id og evt. antal med til denne side? navn og pris står vel i databasen?
15. februar 2015 - 20:05
#2
Ja men så kommer det ikke med i min kurv, så kan man ikke se hvad det koster det man har købt <?php session_start(); // Dine kald til database m.m. skal ind her include('../admin/thevalue/GetSQLValueString.php'); $colname_rsVare_Salg = "-1"; if (isset($_GET['id'])) { $colname_rsVare_Salg = $_GET['id']; } mysql_select_db($database_hellestrik, $hellestrik); $query_rsVare_Salg = sprintf("SELECT * FROM vare WHERE id = %s", GetSQLValueString($colname_rsVare_Salg, "int")); $rsVare_Salg = mysql_query($query_rsVare_Salg, $hellestrik) or die(mysql_error()); $row_rsVare_Salg = mysql_fetch_assoc($rsVare_Salg); $totalRows_rsVare_Salg = mysql_num_rows($rsVare_Salg); if(isset($row_rsVare_Salg['id'])){ if(!isset($_SESSION['indkoeb'])){ $_SESSION['indkoeb']=array($row_rsVare_Salg['vare'],$row_rsVare_Salg['antal'],$row_rsVare_Salg['pris']); } if(isset($_SESSION['varenr'][$row_rsVare_Salg['varenr']])) { $_SESSION['varenr'][$row_rsVare_Salg['varenr']]++; } else { $_SESSION['varenr'][$row_rsVare_Salg['varenr']]=1; } } else { echo "Fejl: Ingen vareid"; } $tilbage = $_SERVER['HTTP_REFERER']; header("location: $tilbage"); // Her han du se hvordan $_SESSION['id'] er struktureret dump($_SESSION['id']); // Her han du se hvordan $_SESSION['total'] er struktureret // Blot for at vise at dump kan bruges på flere måder dump($row_rsVare_Salg, $rsVare_Salg, $_SESSION); /* * Funktionen dump.php kan med stor fordel gemmes i dump.php for * derefter at inkluderes således * * include_once "dump.php"; * */ function dump() { $dump_body_background = "navy"; $dump_body_font_color = "yellow"; $dump_body_border = "2px"; $dump_body_border_color = "red"; $dump_body_border_type = "solid"; $dump_body_border_padding = "5px"; $top_legend_background_color = "lightgrey"; $info_legend_background_color = "lightgrey"; $top_legend_padding = "5px"; $show_info_background = "lightgrey"; $show_info_font = "blue"; $show_info_padding = "5px"; $top_legend_font_color = "blue"; $show_info = 0; $fil = "Fil"; $line = "Linje"; $variable_name = "Variabel navn"; $variable_type = "Variabel type"; $of = "af"; if(!function_exists('_dump_type')) { function _dump_type($value) { $type = ""; if(is_int($value)) $type = 'integer'; if(is_null($value)) $type = 'null'; if(is_string($value)) $type = 'string'; if(is_float($value)) $type = 'float'; if(is_bool($value)) $type = 'boolean'; if(is_array($value)) $type = 'array'; if(is_object($value)) $type = 'object'; return $type; } } if(!function_exists('_d_')) { function _d_($value,$level=0) { if ($level==-1) { $trans["\t"]='⇒'; $trans["\n"]='¶;'; $trans["\r"]='↵'; $trans["\0"]='⊕'; return strtr(htmlspecialchars($value),$trans); } if ($level==0) echo '<pre>'; $type = _dump_type($value); if ($type == 'string') { $value= _d_($value,-1); } elseif ($type == 'boolean') { $value = ($value?'true':'false'); } elseif ($type == 'object') { $props= get_class_vars(get_class($value)); echo $type.' ('.count($props).') <u>'.get_class($value).'</u>'; foreach($props as $key=>$val) { echo "\n".str_repeat("\t",$level+1).$key.' => '; _d_($value->$key,$level+1); } $value= ''; } elseif ($type=='array') { echo $type.' ('.count($value).')'; foreach($value as $key=>$val) { echo "\n".str_repeat("\t",$level+1)._d_($key,-1).' => '; _d_($val,$level+1); } $value= ''; } echo '<strong>'.$value.'</strong>'; if ($level==0) echo '</pre>'; } } list($debug_list) = debug_backtrace(); $arguments = func_get_args(); $total_arguments = count($arguments); $source = file($debug_list['file']); echo '<fieldset style="background:'.$dump_body_background.'; color: '.$dump_body_font_color.'; !important; border:'.$dump_body_border.' '.$dump_body_border_color.' '.$dump_body_border_type.'; padding:'.$dump_body_border_padding.'">'; echo '<legend style="background:'.$top_legend_background_color.'; color:'.$top_legend_font_color.'; padding:'.$top_legend_padding.';">'.$fil.': '.$_SERVER['HTTP_HOST'].$debug_list['file'].' @ '.$line.': '.$debug_list['line'].'</legend><pre>'; if ($show_info >= 1) { echo '<fieldset style="background:'.$show_info_background.'; color:'.$show_info_font.'; padding:'.$show_info_padding.';">'; echo '⇒ <b>=> tab (\t)</b>   ¶ <b>=> new line (\n)</b>   ↵; <b>=> carrige retun (\r)</b>   ⊕ <b>=> (\0)</fieldset></b>'; } $i = 0; foreach ($arguments as $argument) { $tmp = explode("(",$source[$debug_list['line']-1]); $tmp = explode(")",$tmp[1]); $var_names = explode(",",$tmp[0]); $type = _dump_type($argument); if ($type == 'string') $type .= ' ('.strlen($argument).')'; echo '<strong>Debug #'.(++$i).' '.$of.' '.$total_arguments.' '.$variable_name.': '.trim($var_names[$i-1]).' '.$variable_type.': '.$type.'</strong>'; _d_($argument); } echo "</pre></fieldset>"; } ?>
15. februar 2015 - 22:09
#4
Du henter alligevel alle varens data ud fra databasen inden du opdaterer din session. Og det eneste du gemmer i din session er netop varens id og antal.
16. februar 2015 - 07:13
#5
Hvordan får jeg det printet med ud.?
16. februar 2015 - 09:23
#6
morticms: Når du gennemløber din session, hvor du har ID og antal, så lav et opslag mod databasen. Så kan du jo "igen" trække alle de info om dine produkter du ønsker.
16. februar 2015 - 09:57
#7
Hej Jeg har prøvet det men så kommer der til at stå det samme ved f.eks to vare.
16. februar 2015 - 10:02
#8
Så er mit bud du gør noget forkert. :o) Eller... Du gør måske som du vil. Men alt efter om du jo ønsker følgende resultat: vare1 - 1 stk vare2 - 1 stk vare1 - 1 stk vare1 - 1 stk Eller: vare1 - 3 stk vare2 - 1 stk men det er jo din "opdater" varekurv kode der skal håndtere dette.
16. februar 2015 - 10:08
#9
Hvordan for jeg den til det :)
16. februar 2015 - 10:12
#10
Ved at kode det sjovt nok. :o) Det er jo noget med, når du tilføjer en vare. Så tjekker du om der allerede er en lign. vare i din kurv. Er der det, så skal antal tælles op. Og ellers skal den tilføjes som nyt produkt.
16. februar 2015 - 10:19
#11
Det her prøver jeg at gøre for at få det ind i min mailform. Men mangler jeg at gøre det samme et andet sted. Foreach skulle da være til men kan jeg tilføje mere der f.eks. min vare navn. Jeg prøver at tage det fra min database med vare nr. <?php /* List varer i kurv */ session_start(); $rsSalg['pris'] = $pris; $foerstelinie=true; foreach($_SESSION['varenr'] as $varenr => $antal){ if($antal>0){ if($foerstelinie){ $foerstelinie=false; } echo ' Antal: ' . $antal; echo ' Varenr: ' . $varenr; echo ' Pris: ' . $pris; } } if(!$foerstelinie){ } ?>
16. februar 2015 - 10:25
#12
Start med at del din opgave lidt mere op. Pt virker det til du blander rundt i tingene. Mit forslag er følgende: 1): Lav en side der viser dine varer og en "tilføj til kurv" knap. 2): Lav funktion der kan modtage en vare (og evt. antal) og smid det ind i kurven. Hvis varen findes i forvejen, opdater antal med modtagne antal. Og ellers indsæt vare med antal (evt. default 1). 3): Hvis kurvens indhold med de ønskede info. (kan nemt trækkes fra databasen efterfølgende)
16. februar 2015 - 10:32
#13
skal det laves i form så knappen virker :o) jeg spørger dum men jeg er ude på dybt vand lige pluselig
16. februar 2015 - 10:50
#14
Hvis du viser dine varer sådan her: Vare 1 [ ANTAL ] [KØB] Altså hvor antal kan ændres til f.eks. 10. Så skal det være en form. (eller man kan lave tricks med links, ajax osv) Men du kunne jo starte den nemme, hvor du har et link pr vare.
16. februar 2015 - 10:54
#15
<form id="kurv" name="kurv" method="post" action="indkoeb/indkoeb.php?id=<?php echo $_GET['id']; ?>"> <p><?php echo $row_rsVare_Salg['id']; ?> </p> <p><?php echo $row_rsVare_Salg['vare']; ?></p> <p><?php echo $row_rsVare_Salg['pris']; ?></p> <p> <input type="submit" name="kurv2" id="kurv2" value="Tilføj i kurv" /> </p> <p> <input name="id" type="hidden" id="id" value="<?php echo $row_rsVare_Salg['id']; ?>" /> </p> </form> Det virker men så siger den ingen vare i indkøbskurv
16. februar 2015 - 11:13
#16
<form id="kurv" name="kurv" method="post" action="indkoeb/indkoeb.php?id=<?php echo $_GET['id']; ?>"> <p><?php echo $row_rsVare_Salg['id']; ?> </p> <p><?php echo $row_rsVare_Salg['vare']; ?></p> <p><?php echo $row_rsVare_Salg['pris']; ?></p> <p> <input type="submit" name="kurv2" id="kurv2" value="Tilføj i kurv" /> </p> <p> <input name="id" type="hidden" id="id" value="<?php echo $row_rsVare_Salg['id']; ?>" /> </p> </form> <?php /* List varer i kurv */ session_start(); $foerstelinie=true; foreach($_SESSION['varenr'] as $varenr => $antal){ if($antal>0){ if($foerstelinie){ $foerstelinie=false; } echo ' Antal: ' . $antal; echo ' Varenr: ' . $row_rsVare_Salg['id']; echo ' Pris: ' . $row_rsVare_Salg['pris']; } } if(!$foerstelinie){ } ?> Så har jeg prøvet sådan det virker med pris og antal den stiger.
16. februar 2015 - 11:17
#17
17. februar 2015 - 08:07
#18
Hej Hvorfor virker det her ikke? <?php session_start(); $_SESSION["varesalg"][] = "test"; $_SESSION["varesalg"][] = "test"; $_SESSION["varesalg"][] = "test"; $_SESSION["varesalg"][] = "test"; $_SESSION["varesalg"][] = "test"; $_SESSION["varesalg"][] = "test"; $_SESSION["varesalg"][] = "test"; $_SESSION["varesalg"][] = "test"; $_SESSION["varesalg"][] = "test"; $_SESSION["varesalg"] = 0; while ($_SESSION["varesalg"] < 9) { echo "".$_SESSION["varesalg"]." <br/>"; $_SESSION["varesalg"]++; } ?>
17. februar 2015 - 08:09
#19
17. februar 2015 - 08:14
#20
Det her virker heller ikke <?php $_SESSION["varesalg"] = "test"; $_SESSION["varesalg"] = "test"; $_SESSION["varesalg"] = "test"; $_SESSION["varesalg"] = "test"; $_SESSION["varesalg"] = "test"; $_SESSION["varesalg"] = "test"; $_SESSION["varesalg"] = "test"; $_SESSION["varesalg"] = "test"; $_SESSION["varesalg"] = "test"; $vare = 0; while ($vare < 9) { echo $vare++; } ?>
17. februar 2015 - 08:19
#21
17. februar 2015 - 08:40
#22
Jeg ville nok lave noget ala dette: //tilføj vare: $_SESSION['kurv']['vare_id'] = $antal; //hvis antal ikke altid er = 1 //opdater vare: $_SESSION['kurv']['vare_id'] = $_SESSION['vare_id'] + $antal; //hvis antal ikke altid er = 1 //vis kurv: foreach($_SESSION['kurv'] as $vare_id => $antal){ //Her skal du lave dit database udtræk baseret på $vare_id... echo "Du har $antal af vare(r) i din kurv: $vare_id" . '<br>'; }
17. februar 2015 - 12:56
#23
Hmm hvorfor deler den id og pris fra hinanden? <?php session_start(); // Dine kald til database m.m. skal ind her include('../admin/thevalue/GetSQLValueString.php'); $colname_rsVare_Salg = "-1"; if (isset($_GET['id'])) { $colname_rsVare_Salg = $_GET['id']; } mysql_select_db($database_hellestrik, $hellestrik); $query_rsVare_Salg = sprintf("SELECT * FROM vare WHERE id = %s", GetSQLValueString($colname_rsVare_Salg, "int")); $rsVare_Salg = mysql_query($query_rsVare_Salg, $hellestrik) or die(mysql_error()); $row_rsVare_Salg = mysql_fetch_assoc($rsVare_Salg); $totalRows_rsVare_Salg = mysql_num_rows($rsVare_Salg); if(isset($row_rsVare_Salg['id'])){ if(!isset($_SESSION['indkoeb'])){ $_SESSION['indkoeb']=array($row_rsVare_Salg['id'],$row_rsVare_Salg['antal'],$row_rsVare_Salg['pris']); } if(isset($_SESSION['id'][$row_rsVare_Salg['id']])) { $_SESSION['id'][$row_rsVare_Salg['id']]++; } else { $_SESSION['id'][$row_rsVare_Salg['id']]=1; } } else { echo "Fejl: Ingen vareid"; } $tilbage = $_SERVER['HTTP_REFERER']; header("location: $tilbage"); ?>
17. februar 2015 - 13:10
#24
hvad mener du med deler pris og id ?
17. februar 2015 - 13:14
#25
Det er fordi hvis du ser på
www.em-deko.dk og trykke på de forskellige test vare kommer den med samme pris på begge vare. selvom hver id har en pris for sig.
17. februar 2015 - 13:23
#26
Gør evt. dig sel den tjeneste at opret en "debug" side. <?php session_start(); echo '<h1>Min session indeholder</h1>'; echo '<pre>'; print_r($_SESSION); echo '</pre>'; ?> indeholder din session hvad du forventer?
17. februar 2015 - 13:27
#27
Array ( [vare] => Test2 [pris] => 300 [indkoeb] => Array ( [0] => 11 [1] => 1 [2] => 500 ) [id] => Array ( [11] => 1 [12] => 1 ) )
17. februar 2015 - 13:35
#28
Men jeg tror desværre ikke du forstår nogle af de inputs du får. Du BØR nøjes med at gemme ID og antal i din kurv. Du kan til en hver tid hente resten fra din database.
17. februar 2015 - 13:37
#29
Er der en mere ren måde jeg kan gøre det her på?
17. februar 2015 - 13:42
#30
Jeg tror jeg har givet dig en masse inputs. Så du kunne starte med at læse min inputs igen.
17. februar 2015 - 13:46
#31
Det vil jeg prøve :-)
17. februar 2015 - 14:18
#32
Tusinde tak for din hjælp, jeg bruger din måde med data udtrækning. Du kan prøve det og se hvad jeg har gjort. Håber du vil syntes det er en god ide for købere.
17. februar 2015 - 14:19
#33
hvordan giver jeg dig point jakobdo :o)
17. februar 2015 - 14:22
#34
Sådan her! :o)
17. februar 2015 - 14:40
#35
Lige en sidste ting hvordan for jeg lagt de to ids prisers sammen :o)
17. februar 2015 - 14:43
#36
takker for point. $total = 0; foreach($indkobs_kurv as $vare => $antal){ //træk fra db... $vare_pris = $pris_fra_db * $antal; $total += $vare_pris; } echo "Kurvens pris er: " . $total;
17. februar 2015 - 14:45
#37
Ja selv tak, du har været meget toldmodig med mig.
17. februar 2015 - 14:51
#38
Det synes du alligevel. :o) Selv tak.
Vi tilbyder markedets bedste kurser inden for webudvikling