Gå til innhold

feil i nettbutikk (handlevogn)


Anbefalte innlegg

Hei!

 

Holder på med et nettbutikk-prosjekt og får en feil jeg ikke skjønner :\\ Flott hvis noen luringer hadde giddi å se gjennom og kanskje finne feilen(e) =)

 

Er vel egentlig 3 ting om ikke virker helt, men kan begynne med denne:

 

Når jeg går inn på cart.php (handlekurven) i browseren får jeg denne feilen:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\Programfiler\xampp\htdocs\nettbutikk\cart.php on line 130

 

Kildenkoden er slik:

 

Klikk for å se/fjerne innholdet nedenfor
<?php
session_start();

if(isset($_SESSION['userlevel'])){
 $userlevel=($_SESSION['userlevel']);
}else $userlevel=0;

require_once ('stasj/mysql_connect.php'); // Connecte til databasen.
require_once ('stasj/functions.php'); // Masse funksjoner

if($userlevel == 0){
redirect('index.php');}

$brukernavn=($_SESSION['brukernavn']);
$brukernr=($_SESSION['brukernr']);

switch($_GET["action"])
{
 case "add_item":
 {
 	AddItem($_GET["id"], $_GET["qty"]);
 	ShowCart();
 	break;
 }
 case "update_item":
 {
 	UpdateItem($_GET["id"], $_GET["qty"]);
 	ShowCart();
 	break;
 }
 case "remove_item":
 {
 	RemoveItem($_GET["id"]);
 	ShowCart();
 	break;
 }
 default:
 {
 	ShowCart();
 }
}

function AddItem($id, $qty)
{
 // Will check whether or not this item
 // already exists in the cart table.
 // If it does, the UpdateItem function
 // will be called instead
 
 
 
 // Check if this item already exists in the users cart table
 $result = mysql_query("select count(*) from vogn where brukernr = $brukernr and filmnr = $Filmnr");
 $row = mysql_fetch_row($result);
 $numRows = $row[0];
 
 if($numRows == 0)
 {
 	// This item doesn't exist in the users cart,
 	// we will add it with an insert query

 	@mysql_query("insert into vogn(brukernr, Filmnr, antall) values($brukernr, $id, $qty)");
 }
 else
 {
 	// This item already exists in the users cart,
 	// we will update it instead
 	
 	UpdateItem($id, $qty);
 }
}

function UpdateItem($id, $qty)
{
 // Updates the quantity of an item in the users cart.
 // If the qutnaity is zero, then RemoveItem will be
 // called instead

 
 if($qty == 0)
 {
 	// Remove the item from the users cart
 	RemoveItem($id);
 }
 else
 {
 	mysql_query("update vogn set antall = $qty where brukernr = $brukernr and Filmnr = $id");
 }
}

function RemoveItem($id)
{
 // Uses an SQL delete statement to remove an item from
 // the users cart

 
 mysql_query("delete from vogn where brukernr = $brukernr and Filmnr = $id");
}

function ShowCart()
{
 // Gets each item from the cart table and display them in
 // a tabulated format, as well as a final total for the cart
 
 $totalCost = 0;
 $result = mysql_query("select * from vogn inner join filmer on vogn.filmnr = filmer.filmnr where vogn.brukernr = $brukernr order by filmer.tittel asc");
 ?>
 <html>
 <head>
 <title> Handlevogn </title>
 <script language="JavaScript">
 
 	function UpdateQty(item)
 	{
   Filmnr = filmer.Tittel;
   newQty = filmer.options[filmer.selectedIndex].text;
   
   document.location.href = 'cart.php?action=update_item&id='+Filmnr+'&qty='+newQty;
 	}
 
 </script>
 </head>
 <body bgcolor="#ffffff">
 <h1>Handlevogn</h1>
 <form name="frmCart" method="get">
 <table width="100%" cellspacing="0" cellpadding="0" border="0">
 	<tr>
   <td width="15%" height="25" bgcolor="red">
   	<font face="verdana" size="1" color="white">
       <b>Antall</b>
   	</font>
   </td>
   <td width="55%" height="25" bgcolor="red">
   	<font face="verdana" size="1" color="white">
     <b>Tittel</b>
   	</font>
   </td>
   <td width="20%" height="25" bgcolor="red">
   	<font face="verdana" size="1" color="white">
     <b>Pris</b>
   	</font>
   </td>
   <td width="10%" height="25" bgcolor="red">
   	<font face="verdana" size="1" color="white">
     <b>Slette?</b>
   	</font>
   </td>
 	</tr>
 	<?php
 	
 	while($row = mysql_fetch_array($result))
 	{
   // Increment the total cost of all items
   $totalCost += ($row["antall"] * $row["NOK"]);
   ?>
   	<tr>
     <td width="15%" height="25">
     	<font face="verdana" size="1" color="black">
       <select name="<?php echo $row["Filmnr"]; ?>" onChange="UpdateQty(this)">
       <?php
       
       	for($i = 1; $i <= 20; $i++)
       	{
         echo "<option ";
         if($row["qty"] == $i)
         {
         	echo " SELECTED ";
         }
         echo ">" . $i . "</option>";
       	}
       ?>
       </select>
     	</font>
     </td>
     <td width="55%" height="25">
     	<font face="verdana" size="1" color="black">
       <?php echo $row["Tittel"]; ?>
     	</font>
     </td>
     <td width="20%" height="25">
     	<font face="verdana" size="1" color="black">
       $<?php echo number_format($row["NOK"], 2, ".", ","); ?>
     	</font>
     </td>
     <td width="10%" height="25">
     	<font face="verdana" size="1" color="black">
       <a href="cart.php?action=remove_item&id=<?php echo $row["Filmnr"]; ?>">Remove</a>
     	</font>
     </td>
   	</tr>
   <?php
 	}
 	
 	// Display the total
 	?>
   	<tr>
     <td width="100%" colspan="4">
     	<hr size="1" color="red" NOSHADE>
     </td>
   	</tr>
   	<tr>
     <td width="70%" colspan="2">
     	<font face="verdana" size="1" color="black">
       <a href="index.php"><< Fortsett å handle</a>
     	</font>
     </td>
     <td width="30%" colspan="2">
     	<font face="verdana" size="2" color="black">
       <b>Totalt: <?php echo number_format($totalCost, 2, ".", ","); ?> ,-</b>
     	</font>
     </td>
   	</tr>
   </table>
   </form>
 	</body>
 	</html>
 	<?php
}

?>

 

I følge notepad++ er linje 130

        <b>Antall</b>

og det gir jo ikke mye mening :\

 

(cart.php er opprinnelig fra en guide, men jeg har endra en god del, og seff ble det krøll... )

 

Databasen er slik:

Klikk for å se/fjerne innholdet nedenfor
CREATE TABLE brukere(

brukernr int auto_increment not null,

brukernavn varchar(50),

fornavn varchar(50),

etternavn varchar(50),

adresse varchar(50),

passord varchar(50),

userlevel int,

primary key(brukernr),

unique id(brukernr)

);

 

CREATE TABLE filmer(

filmnr int auto_increment not null,

tittel varchar(50),

kommentar varchar(50),

sjanger varchar(50),

nok int,

primary key(filmnr)

);

 

CREATE TABLE vogn(

ordrenr int auto_increment not null,

brukernr int,

filmnr int,

antall int,

bekreftet int,

primary key(ordrenr)

);

..og det er altså 'vogn' som brukes her..

 

På forhånd, tusen takk.

Lenke til kommentar
Videoannonse
Annonse

Bra noen andre også er nattdyr =)

Gjorde mariyo sa, og lokaliserte feilen til sql-setninga rett før javaskriptet. Bytta til det ståle sa der, og det ser ut til å virke =)

 

Nå viste selvfølgelig neste problem seg..

Når jeg legger til i 'carten' får jeg en ny feilmelding:

 

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in D:\Programfiler\xampp\htdocs\nettbutikk\cart2.php on line 46

 

EDIT: Tusen takk!

Endret av adg
Lenke til kommentar

Feilmelding:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'and filmnr =' at line 1

 

Bytta fra $brukernr til '$brukernr', og samme med $filmnr.. Da forsvant feilmeldinga, men jeg får ikke opp at jeg har noe i handlekurven når jeg legger til...

Nå er jo begge int'er, så kan jo være derfor, men... Rart at det blir feilmelding uten disse 'fnuttene'.

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...