Gå til innhold

problemer med enkel handlevogn


Anbefalte innlegg

Hei.

Driver å roter med en enkel handlevogn, men har kjørt meg selv opp i et hjørne. Første kodeboksen er index siden som henter ut alle varene og leverer de på en side, mens den andre kodeboksen er selve handlekurven.

 

Problemet er med selve handlekurvsiden, den er ustabil, viser bare 6 linjer, og viser bare samme produktet unsett hvem jeg velger... kommer bare opp det siste produktet jeg valgte, og maks 6 linjer.... Jeg trenger seriøst hjelp, noen som ser hva som er galt med handlevognsiden?

 

index


<?
session_start();
?>
<html>
<head>
<title>Klientsystemet</title>
<meta http-equiv="expires" content="0">
<meta name="robots" content="noindex, nofollow">
<meta name="robots" content="noarchive">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">

<link rel="stylesheet" type="text/css" href="../style.css">
<link rel="shortcut icon" type="image/ico" href="images/favicon.ico">

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<BODY>
<?php
include 'inc_web.inc';
?>

<?php
$query="SELECT * from produkt_pris WHERE produkt_type = 'tjeneste' ORDER BY varenr";
$result=mysql_query($query);
$num=mysql_numrows($result);
$i=0;
while ($i < $num) {
$varenr=mysql_result($result,$i,"varenr");
$produktnavn=mysql_result($result,$i,"produkt_navn");
$produktmvasats=mysql_result($result,$i,"produkt_mvasats");
$produkteks=mysql_result($result,$i,"produkt_eks");
$produktink=mysql_result($result,$i,"produkt_ink");

         echo "<form action=\"handlekurvpros.php\" method=\"post\">\n";
  echo $produktnavn;
           echo " Antall: <input type=\"text\" value=\"1\" name=\"antall\" size=\"1\">\n"; 
           echo "<input type=\"hidden\" value=\"$varenr;\" name=\"vare\">\n"; 
           echo "<input type=\"submit\" value=\"Kjøp\" class=\"kjop\">\n"; 
           echo "</form>"; 
++$i;
}
?>
<?
mysql_close();
?>
<a href="utlogg.php">loggut</a>
</body>
</html>

 

handlekurvpros

<?
session_start();
$vare = intval($_POST['vare']); 
$antall = intval($_POST['antall']);
$_SESSION['handlet'][$vare] = $antall;

?>
<html>
<head>
<title>Klientsystemet</title>
<meta http-equiv="expires" content="0">
<meta name="robots" content="noindex, nofollow">
<meta name="robots" content="noarchive">

<link rel="stylesheet" type="text/css" href="../style.css">
<link rel="shortcut icon" type="image/ico" href="images/favicon.ico">

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<BODY>
<?php
include 'inc_web.inc';
?>

<?php
foreach($_SESSION['handlet'] as $visvare){ 
$query = "SELECT * FROM produkt_pris WHERE varenr = $vare";
$result=mysql_query($query);
$num=mysql_numrows($result);
$varenr=mysql_result($result,$i,"varenr");
$produktnavn=mysql_result($result,$i,"produkt_navn");
$produktmvasats=mysql_result($result,$i,"produkt_mvasats");
$produkteks=mysql_result($result,$i,"produkt_eks");
$produktink=mysql_result($result,$i,"produkt_ink");
echo $produktnavn;
echo ". Antall; ";
       echo $antall;
$sum = $antall * $produktink; 
echo ", ";
echo $produktink; 
echo ", ";
echo $sum;
echo "\n<br>";  

} 

?>
<?
mysql_close();
?>
<a href="index.php">fortsett</a>

</body>
</html>

Lenke til kommentar
Videoannonse
Annonse

Grusom kode. Det må jeg bare si.

 

Short-open-tag forsvinner i PHP6. Finnes ingen god grunn til å bruke det.

 

Luft i koden er viktig for leservennligheten.

 

<?php

session_start();

$this = mysql_real_escape_string( $_GET['that'] );
$that = mysql_real_escape_string( $_GET['this'] );


$sql = "SELECT a, lot FROM something WHERE `this` = '$that'";
$res = mysql_query( $sql ) OR die( mysql_error() );

Something something....

syns jeg er mye mer leservennlig enn

<?
session_start();
$this=mysql_real_escape_string($_GET['that']);
$that=mysql_real_escape_string( $_GET['this']);
?>
<?
$res=mysql_query( "SELECT a, lot FROM something WHERE `this` = '$that'" ) OR die( mysql_error() );
Something something....

 

 

Og mysql_numrows() er ingen funksjon, og du burde vel egentlig fått en feilmelding på den.

mysql_num_rows() er den korrekte funksjonen.

Endret av M4rTiN
Lenke til kommentar

PHP

foreach($_SESSION['handlet'] as $visvare){ 

$query = "SELECT * FROM produkt_pris WHERE varenr = $vare";

Hvis du ser på de to linjene der bruker du $vare (som er hentet fra $_POST), mens du egentlig looper igjennom med $visvare.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...