abrj Skrevet 15. juli 2007 Skrevet 15. juli 2007 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>
Martin A. Skrevet 15. juli 2007 Skrevet 15. juli 2007 (endret) 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 15. juli 2007 av M4rTiN
abrj Skrevet 15. juli 2007 Forfatter Skrevet 15. juli 2007 M4rTiN: jo takk, vet at koden er litt stygg, men nå er det bare å få det opp å funke...Trenger hjelp med den koden jeg har, og ikke bare layout på selve koden.
Ernie Skrevet 15. juli 2007 Skrevet 15. juli 2007 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.
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå