Avatar billede mt-row Nybegynder
18. juli 2004 - 17:44 Der er 73 kommentarer og
2 løsninger

Fejl i Tilføj til kurv scriptet (køre med sessions)

Hej

jeg har fundet et enkelt lille system på nettet..!

det duede indtil jeg skulle rette i det.. :s

får fejl når den skal udskrive hvad man skal "købe"

kig nede ved <table> > <tr> > <td> (HER) </td>

og det skal bare udskrives sådan (feks):

U2 - The Day - 50kr

her er filen:

basket.php

<?php
session_start();
if ( $submit == "Empty Basket" ) {
session_destroy();
header("Location: basket.php");
exit; }

$kurv = $_SESSION["kurv"];

if (!$artist == "" && !$title == "" && !$price == "") {
$kurv[count($kurv)] == "$artist, $title, $price"; }

// maybe add new stuff

$_SESSION["kurv"] = $kurv;

for ( $i = 0 ; $i < count($kurv) ; $i ++ ) {
?>
<table cellspacing="0" cellpadding="0" width="50%">
<tr>
  <td>
<?
echo "<li>$kurv[$i]</li>";
?>
  </td>
</tr>
</table>
<?
}
?>

<form action="basket.php">
<input type="text" name="artist">
<input type="text" name="title">
<input type="text" name="price">
<input type="submit" value="Add">
<input type="submit" name="submit" value="Empty Basket">
</form>
Avatar billede jammerlab Nybegynder
18. juli 2004 - 17:54 #1
hvad siger den af fejl?
Avatar billede thoeger_poertner Nybegynder
18. juli 2004 - 17:56 #2
Hvis du ligger/kører på en server hvor register_globals = off, så skal du rette alle dine get/post varabler fra f.eks. $artist til $_GET['artist']

Derudover er det en god ide at lave en method="get" (eller post alt efter behov)
Avatar billede mt-row Nybegynder
18. juli 2004 - 18:10 #3
hey, vil prøve det..

"fejlen" er at den ikke udskriver feks:

Artist Title Price

intet!

prøv den selv på

http://sourcecodes.users.whitehat.dk/shop/basket.php
Avatar billede jammerlab Nybegynder
18. juli 2004 - 18:12 #4
kunne godt lyde som om problemet er globals :)
Avatar billede mt-row Nybegynder
18. juli 2004 - 18:14 #5
Avatar billede mt-row Nybegynder
18. juli 2004 - 18:15 #6
Poertner jeg har rettet dette:

<?php
session_start();
if ( $submit == "Empty Basket" ) {
session_destroy();
header("Location: basket.php");
exit; }

$kurv = $_SESSION["kurv"];

$_GET['artist'] = $artist;
$_GET['title'] = $title;
$_GET['price'] = $price;

if (!$artist == "" && !$title == "" && !$price == "") {
$kurv[count($kurv)] == "$artist, $title, $price"; }

// maybe add new stuff

$_SESSION["kurv"] = $kurv;

for ( $i = 0 ; $i < count($kurv) ; $i ++ ) {
?>
<table cellspacing="0" cellpadding="0" width="50%">
<tr>
  <td>
<?
echo "<li>$kurv[$i]</li>";
?>
  </td>
</tr>
</table>
<?
}
?>

<form action="basket.php" method="get">
<input type="text" name="artist">
<input type="text" name="title">
<input type="text" name="price">
<input type="submit" value="Add">
<input type="submit" name="submit" value="Empty Basket">
</form>
Avatar billede detox Nybegynder
18. juli 2004 - 18:50 #7
Prøv:

<?php
session_start();
if (isset($_POST['submit']) && $_POST['submit'] == "Empty Basket") {
session_destroy();
header("Location: basket.php");
exit; }

$sess_kurv = $_SESSION["kurv"];

$artist = isset($_GET['artist']) ? $_GET['artist'] : "";
$title = isset($_GET['title']) ? $_GET['title'] : "";
$price = isset($_GET['price']) ? $_GET['price'] : "";

if ($artist != "" && $title != "" && $price != "") {
$sess_kurv[count($sess_kurv)] = "$artist, $title, $price"; }
// maybe add new stuff

$_SESSION["kurv"] = $sess_kurv;

for ( $i = 0 ; $i < count($sess_kurv) ; $i ++ ) {
?>
<table cellspacing="0" cellpadding="0" width="50%">
<tr>
  <td>
<?
echo "<li>$sess_kurv[$i]</li>";
?>
  </td>
</tr>
</table>
<?
}
?>

<form action="basket.php" method="get">
<input type="text" name="artist">
<input type="text" name="title">
<input type="text" name="price">
<input type="submit" name="submit" value="Add">
<input type="submit" name="submit" value="Empty Basket">
</form>
Avatar billede detox Nybegynder
18. juli 2004 - 18:55 #8
Var lige et par småfejl tilbage:

<?php
session_start();
if (isset($_GET['submit']) && $_GET['submit'] == "Empty Basket") {
$_SESSION = array();
session_destroy();
header("Location: basket.php");
exit; }

$sess_kurv = isset($_SESSION["kurv"]) ? $_SESSION["kurv"] : array();

$artist = isset($_GET['artist']) ? $_GET['artist'] : "";
$title = isset($_GET['title']) ? $_GET['title'] : "";
$price = isset($_GET['price']) ? $_GET['price'] : "";

if ($artist != "" && $title != "" && $price != "") {
$sess_kurv[count($sess_kurv)] = "$artist, $title, $price"; }
// maybe add new stuff

$_SESSION["kurv"] = $sess_kurv;

for ( $i = 0 ; $i < count($sess_kurv) ; $i ++ ) {
?>
<table cellspacing="0" cellpadding="0" width="50%">
<tr>
  <td>
<?
echo "<li>$sess_kurv[$i]</li>";
?>
  </td>
</tr>
</table>
<?
}
?>

<form action="basket.php" method="get">
<input type="text" name="artist">
<input type="text" name="title">
<input type="text" name="price">
<input type="submit" name="submit" value="Add">
<input type="submit" name="submit" value="Empty Basket">
</form>
Avatar billede mt-row Nybegynder
18. juli 2004 - 19:13 #9
hey..

DET VIRKER!!!

men lige én ting til..

kan du rette det til mysql funktioner,

det skal kun være for: <?=$row[kunster]?>, <?=$row[title]?>, <?=$row[pris]?>..

og så også lige en add funktion feks:
<a href="order.php?artist=u2&title=me2&price=5">add</a>

så ville det være PERFEKT!

<?
$sql = mysql_query("select * from cds WHERE kunster LIKE 'a%' order by 'kunster'");
while ($row = mysql_fetch_array($sql)) {
?>

<table cellpadding='0' cellspacing='0' class='seachresult'>
<tr>
  <td width='19%'><?=$row[kunster]?></td>
  <td width='20%'><?=$row[title]?></td>
  <td width='20%'><?=$row[specielt]?></td>
  <td width='6%'><?=$row[tracks]?></td>
  <td width='5%'><?=$row[cond]?></td>
  <td width='5%'><?=$row[promo]?></td>
  <td width='5%'><?=$row[pris]?></td>
  <td width='20%'><?=$row[num]?></td>
</tr>
</table>
Avatar billede detox Nybegynder
18. juli 2004 - 19:16 #10
Det er jeg nu ikke sikker på hvad du mener?
Avatar billede mt-row Nybegynder
18. juli 2004 - 19:24 #11
der skal bare være en "add" knap i tabellen:
<a href="order.php?artist=<?=$row[kunster]?>&title=<?=$row[title]?>&price=<?=$row[pris]?>">add</a>

og under order.php udskriver den alt feks

artist - title - price

U2 - My Day - 25$
U2 - Your Day - 50$

total: <b>75$</b> (+ s/h)

- siden: http://sourcecodes.users.whitehat.dk/shop/cds.php
Avatar billede detox Nybegynder
18. juli 2004 - 19:38 #12
Tja, linket ser jo fint nok ud. Skal det stadig være med sessions eller hvordan? For så vil jeg anbefale at du laver 3 $_SESSION variabler istedet, da det vil gøre det nemmere at styre (fx pris/total).
Avatar billede mt-row Nybegynder
18. juli 2004 - 19:41 #13
Well

det må <du> bestemme..
Avatar billede detox Nybegynder
18. juli 2004 - 19:56 #14
Så må det jo blive noget i den her stil:

<?
session_start();
$sql = mysql_query("select * from cds WHERE kunster LIKE 'a%' order by 'kunster'");
while ($row = mysql_fetch_array($sql)) {
?>

<table cellpadding='0' cellspacing='0' class='seachresult'>
<tr>
  <td width='19%'><?=$row[kunster]?></td>
  <td width='20%'><?=$row[title]?></td>
  <td width='20%'><?=$row[specielt]?></td>
  <td width='6%'><?=$row[tracks]?></td>
  <td width='5%'><?=$row[cond]?></td>
  <td width='5%'><?=$row[promo]?></td>
  <td width='5%'><?=$row[pris]?></td>
  <td width='15%'><?=$row[num]?></td>
  <td width='5%'><a href="order.php?artist=<?=$row[kunster]?>&title=<?=$row[title]?>&price=<?=$row[pris]?>">add</a></td>
</tr>
</table>
Avatar billede mt-row Nybegynder
18. juli 2004 - 19:58 #15
hele koden???
Avatar billede detox Nybegynder
18. juli 2004 - 20:09 #16
order.php:

<?php
session_start();
if (isset($_GET['submit']) && $_GET['submit'] == "Empty Basket") {
$_SESSION = array();
session_destroy();
header("Location: order.php");
exit; }

$artist = isset($_GET['artist']) ? $_GET['artist'] : "";
$title = isset($_GET['title']) ? $_GET['title'] : "";
$price = isset($_GET['price']) ? $_GET['price'] : "";

if ($artist != "" && $title != "" && $price != "") {
$_SESSION['kurv']['artist'][count($_SESSION['kurv'])] = $artist;
$_SESSION['kurv']['title'][count($_SESSION['kurv'])] = $title;
$_SESSION['kurv']['price'][count($_SESSION['kurv'])] = $price; }
?>
<table cellspacing="0" cellpadding="0" width="50%">
<tr>
  <td>Artist</td>
  <td>Title</td>
  <td>price</td>
</tr>
</table>
<?
for ( $i = 0 ; $i < count($_SESSION['kurv']) ; $i ++ ) {
?>
<table cellspacing="0" cellpadding="0" width="50%">
<tr>
  <td><?=$_SESSION['kurv']['artist'][$i]?></td>
  <td><?=$_SESSION['kurv']['title'][$i]?></td>
  <td><?=$_SESSION['kurv']['price'][$i]?>$</td>
</tr>
</table>
<?
}
?>
<table cellspacing="0" cellpadding="0" width="50%">
<tr>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td><?=array_sum($_SESSION['kurv']['price'])?>$</td>
</tr>
</table>
<form action="order.php" method="get">
<input type="submit" name="submit" value="Empty Basket">
</form>
Avatar billede mt-row Nybegynder
18. juli 2004 - 20:14 #17
er det her så index.php

<?
session_start();
$sql = mysql_query("select * from cds WHERE kunster LIKE 'a%' order by 'kunster'");
while ($row = mysql_fetch_array($sql)) {
?>

<table cellpadding='0' cellspacing='0' class='seachresult'>
<tr>
  <td width='19%'><?=$row[kunster]?></td>
  <td width='20%'><?=$row[title]?></td>
  <td width='20%'><?=$row[specielt]?></td>
  <td width='6%'><?=$row[tracks]?></td>
  <td width='5%'><?=$row[cond]?></td>
  <td width='5%'><?=$row[promo]?></td>
  <td width='5%'><?=$row[pris]?></td>
  <td width='15%'><?=$row[num]?></td>
  <td width='5%'><a href="order.php?artist=<?=$row[kunster]?>&title=<?=$row[title]?>&price=<?=$row[pris]?>">add</a></td>
</tr>
</table>
Avatar billede mt-row Nybegynder
18. juli 2004 - 20:16 #18
og så skal det går over til min mail-form?

- mange tak fordi du bruger tid på mig!

mvh

mt-row
Avatar billede mt-row Nybegynder
18. juli 2004 - 20:27 #19
gotta go,

kommer på imorgen!

- stadig mange tak fordi du bruger tid på mig !

mt-row
Avatar billede mt-row Nybegynder
18. juli 2004 - 20:34 #20
men kommer måske på lidt inden, i 2min..

når de andre holder pause med pc'en (familie computer)
Avatar billede detox Nybegynder
18. juli 2004 - 20:36 #21
Ja, den første er index.php. Her er order.php rettet noget til:

<?php
session_start();
if (isset($_GET['submit']) && $_GET['submit'] == "Empty Basket") {
$_SESSION['kurv'] = array();
//session_destroy();
header("Location: order.php");
exit; }

$artist = isset($_GET['artist']) ? $_GET['artist'] : "";
$title = isset($_GET['title']) ? $_GET['title'] : "";
$price = isset($_GET['price']) ? $_GET['price'] : "";

if ($artist != "" && $title != "" && $price != "") {
    $_SESSION['kurv']['artist'][count($_SESSION['kurv']['artist'])] = $artist;
    $_SESSION['kurv']['title'][count($_SESSION['kurv']['title'])] = $title;
    $_SESSION['kurv']['price'][count($_SESSION['kurv']['price'])] = $price;
}
?>
<table cellspacing="0" cellpadding="0" width="50%">
<tr>
  <td>Artist</td>
  <td>Title</td>
  <td align="right">price</td>
</tr>
<tr>
  <td colspan="3"><hr></td>
</tr>
<?
for ( $i = 0 ; $i < count($_SESSION['kurv']['price']) ; $i ++ ) {
?>
<tr>
  <td><?=$_SESSION['kurv']['artist'][$i]?></td>
  <td><?=$_SESSION['kurv']['title'][$i]?></td>
  <td align="right"><?=$_SESSION['kurv']['price'][$i]?>$</td>
</tr>
<?
}
?>
<tr>
  <td colspan="3"><hr></td>
</tr>
<tr>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td align="right"><?=array_sum($_SESSION['kurv']['price'])?>$</td>
</tr>
</table>
<form action="order.php" method="get">
<input type="submit" name="submit" value="Empty Basket">
</form>
Avatar billede detox Nybegynder
18. juli 2004 - 20:48 #22
Ok, rettet noget mere. Og ja så mangler der noget: 'Gå til kassen', hvor man kan bekræfte og sende div. mails.

order.php:

<?php
session_start();
if (isset($_GET['submit']) && $_GET['submit'] == "More items") {
    header("Location: index.php");
    exit;
}
if (isset($_GET['submit']) && $_GET['submit'] == "Empty Basket") {
    $_SESSION['kurv']['artist'] = array();
    $_SESSION['kurv']['title'] = array();
    $_SESSION['kurv']['price'] = array();
    header("Location: order.php");
    exit;
}

$artist = isset($_GET['artist']) ? $_GET['artist'] : "";
$title = isset($_GET['title']) ? $_GET['title'] : "";
$price = isset($_GET['price']) ? $_GET['price'] : "";

if ($artist != "" && $title != "" && $price != "") {
    $_SESSION['kurv']['artist'][count($_SESSION['kurv']['artist'])] = $artist;
    $_SESSION['kurv']['title'][count($_SESSION['kurv']['title'])] = $title;
    $_SESSION['kurv']['price'][count($_SESSION['kurv']['price'])] = $price;
}
?>
<table cellspacing="0" cellpadding="0" width="50%">
<tr>
  <td>Artist</td>
  <td>Title</td>
  <td align="right">price</td>
</tr>
<tr>
  <td colspan="3"><hr></td>
</tr>
</table>
<?
if (isset($_SESSION['kurv']['price'])) {
    ?>
    <table cellspacing="0" cellpadding="0" width="50%">
    <?
    for ( $i = 0 ; $i < count($_SESSION['kurv']['price']) ; $i ++ ) {
        ?>
        <tr>
          <td><?=$_SESSION['kurv']['artist'][$i]?></td>
          <td><?=$_SESSION['kurv']['title'][$i]?></td>
          <td align="right"><?=$_SESSION['kurv']['price'][$i]?>$</td>
        </tr>
        <?
    }
    ?>
    <tr>
    <td colspan="3"><hr></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td align="right"><?=array_sum($_SESSION['kurv']['price'])?>$</td>
    </tr>
    </table>
<?
}?>
<form action="order.php" method="get">
<input type="submit" name="submit" value="More items">
<input type="submit" name="submit" value="Empty Basket">
</form>
Avatar billede mt-row Nybegynder
18. juli 2004 - 21:03 #23
den kan hedde order-success.php :)

men hvis du kigger på den nuværende mail-form (som findes under order på siden)

så skal "køberen" indtaste mail og adresse (og kommentar, det er der godt nok ikke endnu men laver senere).

så ville det være fint i order(tekstfeltet) at der står artist - title - price(mere end 2 adskilles med <br> eller komma feks.
u2 - Day - 5$, Sum41 - Make - 19$
eller
u2 - Day - 5$
Sum41 - Make - 19$)

og så et par linier nede kan der stå "total: 24$ + s/h"
Avatar billede mt-row Nybegynder
18. juli 2004 - 21:53 #24
har du msn? så add mig t0x23@msn.com
Avatar billede mt-row Nybegynder
19. juli 2004 - 10:29 #25
får fejl i order.php > linie 64
Avatar billede mt-row Nybegynder
19. juli 2004 - 12:27 #26
PHP parse error
Avatar billede mt-row Nybegynder
19. juli 2004 - 21:48 #27
hvor bliver du af
Avatar billede detox Nybegynder
19. juli 2004 - 22:45 #28
Har ikke rigtigt haft tid i dag. Kan ikke forstå det med parse error. Det er der ikke når jeg tester?
Avatar billede mt-row Nybegynder
19. juli 2004 - 22:49 #29
hmm :S

men.. lige et problem!

når jeg add'er et item feks AC / DC så kan den jo ikke komme over på den anden side:

<a href="order.php?artist=AC / DC...."> :S

kan vi så ikke bare gøre det med mysql id > feks <a href="order.php?orderid=5">

order.php:

udskriver det samme bare via mysql?
Avatar billede mt-row Nybegynder
20. juli 2004 - 13:39 #30
Kan du sige til når du får tid ?
Avatar billede detox Nybegynder
20. juli 2004 - 20:06 #31
Jo, det vil være smartere med orderid.
Avatar billede mt-row Nybegynder
20. juli 2004 - 20:36 #32
ok..

men har du tid nu? :)
Avatar billede mt-row Nybegynder
20. juli 2004 - 23:38 #33
please nævn én dag,
da jeg hele tiden kommer forbi for at se om du har skrevet.

MT-row
Avatar billede detox Nybegynder
21. juli 2004 - 00:30 #34
Det er jo et større projekt du er i gang med, som jeg ikke har tid til at gå dybere ind i. Hvis du har konkrete spørgsmål vil jeg godt prøve at hjælpe dig henad vejen, men jeg kan ikke sige nøjagtig hvornår jeg har tid. Ellers må du prøve at oprette et nyt spørgsmål, så er der måske andre der kan hjælpe.

c",)
Avatar billede mt-row Nybegynder
21. juli 2004 - 12:20 #35
jamen vi er jo næsten færdige :)

der er kun den der parse error og siden hvor man bestiller (gå til kassen - make-order.php)

hvor den sender mail med hva man har bestilt, og hva kunden's email, navn og adresse (evt. et spørgsmål) via en Mail-Form (har lavet mail-formen, men ikke hva kunden har bestilt)

og så er den færdig PLEASE I REALLY NEED THIS
Avatar billede detox Nybegynder
21. juli 2004 - 15:21 #36
Jamen jeg kan ikke få øje på den parse error, den er der IKKE når jeg tester.
Er der nogen andre beskeder (end parse error)?
Avatar billede mt-row Nybegynder
21. juli 2004 - 15:23 #37
Nope..

Men kan teste igen :)
Avatar billede mt-row Nybegynder
21. juli 2004 - 15:23 #38
må jeg se den side du tester på ?
Avatar billede detox Nybegynder
21. juli 2004 - 15:26 #39
Det er den jeg postede: 18/07-2004 20:48:43
Avatar billede mt-row Nybegynder
21. juli 2004 - 15:27 #40
men vi kan vel starte med at lave det om til Mysql id (order.php?orderid=<?=$row[id]?>)

.. Men så står jeg blank med order.php
Avatar billede mt-row Nybegynder
21. juli 2004 - 15:30 #41
det duer også nu..

så den der parase error var nok fordi det med AC / DC osv.

men skal vi ikke kigge på order.php?orderid=<?=$row[id]?> nu :)?
Avatar billede mt-row Nybegynder
21. juli 2004 - 15:32 #42
Så vi mangler bare det med order.php?orderid=<?=$row[id]?> og Gå til kassen (21/07-2004 12:20:29)
Avatar billede detox Nybegynder
21. juli 2004 - 15:35 #43
Er eksperten ikke meget langsom lige nu, eller er det bare hos mig?
Avatar billede mt-row Nybegynder
21. juli 2004 - 15:36 #44
hmm.. det ved jeg ikke da jeg har 64k, så det er altid langsomt hos mig :)
Avatar billede mt-row Nybegynder
21. juli 2004 - 15:56 #45
kun dig tror jeg :)
Avatar billede mt-row Nybegynder
21. juli 2004 - 15:57 #46
Kan det blive idag vi bliver færdige :)? med: 21/07-2004 15:32:36
Avatar billede detox Nybegynder
21. juli 2004 - 15:58 #47
Måske noget i den her stil:

<?php
session_start();
if (isset($_GET['submit']) && $_GET['submit'] == "More items") {
    header("Location: index.php");
    exit;
}
if (isset($_GET['submit']) && $_GET['submit'] == "Empty Basket") {
    $_SESSION['kurv']['id'] = array();
    header("Location: order.php");
    exit;
}

$id = isset($_GET['id']) ? $_GET['id'] : "";

if ($id != "") {
    $_SESSION['kurv']['id'][count($_SESSION['kurv']['id'])] = $id;
}
?>
<table cellspacing="0" cellpadding="0" width="50%">
<tr>
  <td>Artist</td>
  <td>Title</td>
  <td align="right">price</td>
</tr>
<tr>
  <td colspan="3"><hr></td>
</tr>
</table>
<?
if (isset($_SESSION['kurv']['id'])) {
    $ids = implode(','$_SESSION['kurv']['id']);
    $res = mysql_query("SELECT artist, title, price FROM cds WHERE id IN '$ids'");
    ?>
    <table cellspacing="0" cellpadding="0" width="50%">
    <?
    while ($row = mysql_fetch_assoc($res)) {
        ?>
        <tr>
          <td><?=$row['artist']?></td>
          <td><?=$row['title']?></td>
          <td align="right"><?=$row['price']?>$</td>
        </tr>
        <?
    }
    $pris_ialt = mysql_result(mysql_query("SELECT sum(price) FROM cds WHERE id IN '$ids'"),0);
    ?>
    <tr>
    <td colspan="3"><hr></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td align="right"><?=$pris_ialt?>$</td>
    </tr>
    </table>
<?
}?>
<form action="order.php" method="get">
<input type="submit" name="submit" value="More items">
<input type="submit" name="submit" value="Empty Basket">
</form>
Avatar billede mt-row Nybegynder
21. juli 2004 - 16:00 #48
og en gå til kassen :)
Avatar billede mt-row Nybegynder
21. juli 2004 - 16:04 #49
hmm har du testet det?
Avatar billede detox Nybegynder
21. juli 2004 - 16:07 #50
Ja, så skal formen jo have en linie mere:

<form action="order.php" method="get">
<input type="submit" name="submit" value="More items">
<input type="submit" name="submit" value="Empty Basket">
<input type="submit" name="submit" value="Gå til kassen">
</form>

og foroven :

if (isset($_GET['submit']) && $_GET['submit'] == "Gå til kassen") {
    header("Location: make-order.php");
    exit;
}
Avatar billede detox Nybegynder
21. juli 2004 - 16:08 #51
Det er utestet!
Avatar billede mt-row Nybegynder
21. juli 2004 - 16:08 #52
Jeg har rettet i min index(test)-fil: <?
include"../config.php";
?>
<a href="order.php?orderid=2">add</a>
<a href="order.php?orderid=3">add</a>

----------------------------------------

Parse error: parse error in ......./order.php on line 33

og jeg har tilføjet: <?php
include"../config.php";

så det er her et sted:

<?
if (isset($_SESSION['kurv']['id'])) {
    $ids = implode(','$_SESSION['kurv']['id']);
    $res = mysql_query("SELECT artist, title, price FROM cds WHERE id IN '$ids'");
    ?>
Avatar billede detox Nybegynder
21. juli 2004 - 16:10 #53
$ids = implode(','$_SESSION['kurv']['id']);

Mangler et komma:

$ids = implode(',', $_SESSION['kurv']['id']);
Avatar billede mt-row Nybegynder
21. juli 2004 - 16:14 #54
hmm nu er der ingen "fejl",

men den udskriver ikke fra mysql

tjek: http://sourcecodes.users.whitehat.dk/shop/cds.php
Avatar billede mt-row Nybegynder
21. juli 2004 - 16:15 #55
test filer:
index.php

<?
include"../config.php";
?>
<a href="order.php?orderid=2">add</a>
<a href="order.php?orderid=3">add</a>

----------------------------------------

order.php

<?php
include"../config.php";

session_start();
if (isset($_GET['submit']) && $_GET['submit'] == "More items") {
    header("Location: index.php");
    exit;
}
if (isset($_GET['submit']) && $_GET['submit'] == "Empty Basket") {
    $_SESSION['kurv']['id'] = array();
    header("Location: order.php");
    exit;
}

if (isset($_GET['submit']) && $_GET['submit'] == "Order CDs") {
    header("Location: make-order.php");
    exit;
}

$id = isset($_GET['id']) ? $_GET['id'] : "";

if ($id != "") {
    $_SESSION['kurv']['id'][count($_SESSION['kurv']['id'])] = $id;
}
?>
<table cellspacing="0" cellpadding="0" width="50%">
<tr>
  <td>Artist</td>
  <td>Title</td>
  <td align="right">price</td>
</tr>
<tr>
  <td colspan="3"><hr></td>
</tr>
</table>
<?
if (isset($_SESSION['kurv']['id'])) {
    $ids = implode(',', $_SESSION['kurv']['id']);
    $res = mysql_query("SELECT artist, title, price FROM cds WHERE id IN '$ids'");
    ?>
    <table cellspacing="0" cellpadding="0" width="50%">
    <?
    while ($row = mysql_fetch_assoc($res)) {
        ?>
        <tr>
          <td><?=$row['artist']?></td>
          <td><?=$row['title']?></td>
          <td align="right"><?=$row['price']?>$</td>
        </tr>
        <?
    }
    $pris_ialt = mysql_result(mysql_query("SELECT sum(price) FROM cds WHERE id IN '$ids'"),0);
    ?>
    <tr>
    <td colspan="3"><hr></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td align="right"><?=$pris_ialt?>$</td>
    </tr>
    </table>
<?
}?>
<form action="order.php" method="get">
<input type="submit" name="submit" value="More items">
<input type="submit" name="submit" value="Empty Basket">
<input type="submit" name="submit" value="Order CDs">
</form>
Avatar billede detox Nybegynder
21. juli 2004 - 16:28 #56
De to forespørgsler skal lige rettes med parenteser istedet for apostroffer:

$res = mysql_query("SELECT artist, title, price FROM cds WHERE id IN '$ids'");

til:

$res = mysql_query("SELECT artist, title, price FROM cds WHERE id IN ($ids)");
Avatar billede mt-row Nybegynder
21. juli 2004 - 16:32 #57
det duer stadig ikke :(
Avatar billede detox Nybegynder
21. juli 2004 - 16:33 #58
Kan du prøve at rette i index.php:

<a href="order.php?orderid=2">add</a>
<a href="order.php?orderid=3">add</a>

til:

<a href="order.php?id=2">add</a>
<a href="order.php?id=3">add</a>
Avatar billede detox Nybegynder
21. juli 2004 - 16:35 #59
Og her en tilrettet version af order.php:

<?php
session_start();
include"../config.php";
if (isset($_GET['submit']) && $_GET['submit'] == "More items") {
    header("Location: index.php");
    exit;
}
if (isset($_GET['submit']) && $_GET['submit'] == "Empty Basket") {
    $_SESSION['kurv']['id'] = array();
    header("Location: order.php");
    exit;
}
if (isset($_GET['submit']) && $_GET['submit'] == "Gå til kassen") {
    header("Location: make-order.php");
    exit;
}

$id = isset($_GET['id']) ? $_GET['id'] : "";

if ($id != "") {
    $_SESSION['kurv']['id'][count($_SESSION['kurv']['id'])] = $id;
}
?>
<table cellspacing="0" cellpadding="0" width="50%">
<tr>
  <td>Artist</td>
  <td>Title</td>
  <td align="right">price</td>
</tr>
<tr>
  <td colspan="3"><hr></td>
</tr>
</table>
<?
if (isset($_SESSION['kurv']['id'])) {
    $pris_ialt = 0;
    $ids = implode(',', $_SESSION['kurv']['id']);
    $res = mysql_query("SELECT artist, title, price FROM cds WHERE id IN ($ids)");
    ?>
    <table cellspacing="0" cellpadding="0" width="50%">
    <?
    if ($res) {
    while ($row = mysql_fetch_assoc($res)) {
        ?>
        <tr>
          <td><?=$row['artist']?></td>
          <td><?=$row['title']?></td>
          <td align="right"><?=$row['price']?>$</td>
        </tr>
        <?
    }
    $pris_ialt = mysql_result(mysql_query("SELECT sum(price) FROM cds WHERE id IN ($ids)"),0);
    }
    ?>
    <tr>
    <td colspan="3"><hr></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td align="right"><?=$pris_ialt?>$</td>
    </tr>
    </table>
<?
}?>
<form action="order.php" method="get">
<input type="submit" name="submit" value="More items">
<input type="submit" name="submit" value="Empty Basket">
<input type="submit" name="submit" value="Gå til kassen">
</form>
Avatar billede mt-row Nybegynder
21. juli 2004 - 16:36 #60
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /../../../../../../order.php on line 43

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /../../../../../../order.php on line 52
Avatar billede mt-row Nybegynder
21. juli 2004 - 16:38 #61
nu kommer der ingen fejl,

men mysql udskriver ikke teksten :)

http://sourcecodes.users.whitehat.dk/shop/cds.php
Avatar billede mt-row Nybegynder
21. juli 2004 - 16:41 #62
retter lige index.php

<a href="order.php?orderid=2">add</a>
<a href="order.php?orderid=3">add</a>

til:

<a href="order.php?id=3">add</a>
<a href="order.php?id=4">add</a>

da jeg ikke har en med nr 1 + 2 :>, testede med 1 og 2 da jeg allerførst lavede mysql tabellen
Avatar billede detox Nybegynder
21. juli 2004 - 16:43 #63
Hedder dit id felt i tabellen: 'id' eller 'orderid'?
Avatar billede mt-row Nybegynder
21. juli 2004 - 16:45 #64
i mysql cds hedder den id
Avatar billede detox Nybegynder
21. juli 2004 - 16:55 #65
Ja, så ved jeg ikke lige hvad der går galt?
Prøv at tilføje disse 4 linier for debug:

    $ids = implode(',', $_SESSION['kurv']['id']);
    // TILFØJ
    print ("SELECT artist, title, price FROM cds WHERE id IN ($ids)");
    exit;
    // TILFØJ
    $res = mysql_query("SELECT artist, title, price FROM cds WHERE id IN ($ids)");
Avatar billede mt-row Nybegynder
21. juli 2004 - 16:56 #66
tror jeg har fundet fejlen:

i min tabel hedder det: kunster, title, pris
Avatar billede detox Nybegynder
21. juli 2004 - 16:57 #67
Aha ;o)
Avatar billede mt-row Nybegynder
21. juli 2004 - 16:58 #68
My bad :)

nu virker det :>

men hvordan skal make-order.php så være?
Avatar billede mt-row Nybegynder
21. juli 2004 - 17:04 #69
Well..

for at gøre det nemmere for os begge:

så skal den bare udskrive artist - title - price, artist - title - price

dvs adskildt med komma i et textarea <textarea name='order' cols='50' rows='8'>HER KAN DET SÅ STÅ?</textarea>

så skulle den være færdig :)
Avatar billede mt-row Nybegynder
21. juli 2004 - 17:12 #70
og måske en total pris 2 linier nedenunder artist - title - price, artist - title - price
Avatar billede detox Nybegynder
21. juli 2004 - 17:17 #71
make-order.php

<?php
session_start();
include"../config.php";

if (isset($_SESSION['kurv']['id'])) {
    $pris_ialt = 0;
    $ids = implode(',', $_SESSION['kurv']['id']);
    $res = mysql_query("SELECT kunster, title, pris FROM cds WHERE id IN ($ids)");
    if ($res) {
    $str = '';
    while ($row = mysql_fetch_assoc($res)) {
        $str .= $row['kunster'] . " - ";
        $str .= $row['title'] . " - ";
        $str .= $row['pris'] . "$,\n";
    }
    $str = substr($str, 0, -2) . "\n\nPris ialt: ";
    $str .= mysql_result(mysql_query("SELECT sum(pris) FROM cds WHERE id IN ($ids)"),0) . "$";
    }
    ?>
<textarea name='order' cols='50' rows='8'><?=$str?></textarea>
<?
}?>
Avatar billede mt-row Nybegynder
21. juli 2004 - 17:20 #72
Du er den bedste jeg nogensinde har arbejdet sammen med !

A++++++

og MANGE TUSIND tak fordi du gad at hjælpe + bruge tid på mig

Mvh

Mike
Avatar billede detox Nybegynder
21. juli 2004 - 17:23 #73
Velbekommen og tak for roserne.
Avatar billede ken.j Nybegynder
09. februar 2007 - 13:59 #74
Hey..

ved ikke om du læser det her men tænke på om du ville lave en tagwaal for mig til min side...
Avatar billede ken.j Nybegynder
09. februar 2007 - 14:00 #75
svar her hvis det er...

kj@suen-yong.dk
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester