adg Skrevet 18. april 2007 Del Skrevet 18. april 2007 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
Gjest Slettet+142 Skrevet 18. april 2007 Del Skrevet 18. april 2007 legg dette inn på linjen før linje 130, og se om det kommer opp en feilmelding ifra mysql: echo mysql_error(); Lenke til kommentar
Ståle Skrevet 18. april 2007 Del Skrevet 18. april 2007 prov med: $result = mysql_query("select count(*) from vogn where brukernr = '$brukernr' and filmnr = '$Filmnr'"); Lenke til kommentar
adg Skrevet 18. april 2007 Forfatter Del Skrevet 18. april 2007 (endret) 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 18. april 2007 av adg Lenke til kommentar
Ståle Skrevet 18. april 2007 Del Skrevet 18. april 2007 legg til echo mysql_error() pa linje 45 og post feilmld. Sikker pa at det er riktig navn pa tabellen? Lenke til kommentar
adg Skrevet 18. april 2007 Forfatter Del Skrevet 18. april 2007 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
Ståle Skrevet 18. april 2007 Del Skrevet 18. april 2007 ear 'and film det skal vaere ernr' and film altsa mellomrom mellom ' og and Lenke til kommentar
adg Skrevet 18. april 2007 Forfatter Del Skrevet 18. april 2007 Er det.. Feilmeldinga har bare markert en del av spørringa. Lenke til kommentar
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å