Avatar billede clausberg Nybegynder
14. september 2008 - 17:36 Der er 10 kommentarer og
3 løsninger

$session_id skal tælle op

Hej Eksperter
Plz hjælp mig med følgende problem:

En person skal bestille mad på en hjemmeside - han bestiller en pizza og en cola og tilføjer sig navn og adresse. Selve bestillingen (pizza osv.) ryger i tabellen: store_shoppertrack mens hans navn og adresse ryger i tabellen: store_orders.

I begge tabeller bliver personens unikke $session_id lagt ind.

Jeg er ved at lave en oversigtside der skal vise alle personer og deres bestillinger. Dvs. jeg vil gerne vise persons A´s navn og adresse og persons A´s bestillinger... og herefter vil jeg så gerne vise person B´s navn og adresse og persons B´s bestillinger... altså loope igennem med udgangspunkt i $session_id.

Giver det mening????



<?php include('includehead.txt'); ?>
    <div id="content">
           
<?php

include ('dbconnect.php');

$get_cart = "SELECT session_id FROM store_orders";
$get_cart_res = mysql_query($get_cart) or die(mysql_error());

    while ($cart = mysql_fetch_array($get_cart_res)) {
        $session_id = $cart['session_id'];
        echo $session_id . "<br />";
    }
   
    for($i = 0; $i <= count($session_id); $i++)
    {

echo "<h1>Adresse</h1>";

//check for cart items based on user session id
$get_cart = "select * from store_orders WHERE session_id = '$session_id'";
$get_cart_res = mysql_query($get_cart) or die(mysql_error());

    //get info and build cart display
    echo "<table celpadding='0' cellspacing='0' border='1' width='98%'><tr><th>Navn</th><th>Adresse</th><th>Postnr</th><th>By</th><th>Tlf</th><th>&nbsp;</th></tr>";

    while ($cart = mysql_fetch_array($get_cart_res)) {
        $order_name = $cart['order_name'];
          $order_address = $cart['order_address'];
          $order_zip = $cart['order_zip'];
          $order_city = $cart['order_city'];
          $order_tel = $cart['order_tel'];       
         
    echo "<tr><td align=center>$order_name <br></td><td align=center>$order_address <br></td><td align=center>$order_zip <br></td><td align=center>$order_city <br></td><td align=center>$order_tel <br></td></tr>";
    }
    echo "</table>";

echo "<h1>Bestilling</h1>";
//check for cart items based on user session id
$get_cart = "select st.id, st.sel_item_id, si.item_title, si.item_price, st.sel_item_qty, st.sel_item_size, st.sel_item_color from store_shoppertrack as st left join store_items as si on si.id = st.sel_item_id WHERE session_id = '$session_id'";
$get_cart_res = mysql_query($get_cart) or die(mysql_error());

    //get info and build cart display
    echo "<table celpadding='0' cellspacing='0' border='1' width='98%'><tr><th>Nr</th><th>Navn</th><th>Størrelse</th><th>Tilbehør</th><th>Pris</th><th>Antal</th><th>&nbsp;</th></tr>";

    while ($cart = mysql_fetch_array($get_cart_res)) {
          $id = $cart['id'];
        $sel_item_id = $cart['sel_item_id'];
          $item_title = $cart['item_title'];
          $item_price = $cart['item_price'];
          $item_qty = $cart['sel_item_qty'];
          $item_color = $cart['sel_item_color'];
          $item_size = $cart['sel_item_size'];
     
    echo "<tr><td align=center>$sel_item_id<br></td><td align=center>$item_title<br></td><td align=center>$item_size<br></td><td align=center>$item_color<br></td><td align=center>$item_price<br></td><td align=center>$item_qty<br></td><td align=center><a href=\"removefromcart.php?id=$id\"><img src='images/slet.gif' border='0' alt='slet denne bestilling' /></a></td></tr>";
    }
    echo "</table><hr />";
    }
?>
    <div id="footerline"></div>

    <?php include('includefooter.txt'); ?>
</div>
</body>
</html>
Avatar billede jansangill Nybegynder
14. september 2008 - 18:09 #1
Okay, hvad er det der fejler?

Men hvis vi nu leger, så har du 2 tabeller.(Om du kan bruge informationen til noget aner jeg ikke, da du ikke har sagt hvad problemet helt er:>)

Tabel1:store_shoppertrack -->Den overordnede tabel, som har de vigtigste oplysninger, som kundedata, totalpris og status.

Tabel2:store_orders--> Indeholder kun selve bestillingerne, dvs priserne og antal, plus varenavnet.

Tabel1 generer en unik ordreid, som så refererer ned til tabel 2, hvor der kan være adskillige ordre iforhold til den unikke ordreid.

Når du så kommer så langt at du vil vise alle ordrerne i systemet, så looper du vel bare alle data ud fra de 2 tabeller som hører sammen, og har status gennemført.
Avatar billede jakobdo Ekspert
14. september 2008 - 18:21 #2
I stedet for at fokuserer på session_id, så smid en NOW() med i tabellen med kunden, så kan du sortere efter den, når data trækkes ud.
Maden må vel blive leveret efter først til mølle.
Avatar billede clausberg Nybegynder
14. september 2008 - 18:21 #3
Lad mig lige uddybe:
store_shoppertrack: tabel indeholder navn på fx pizza, pris, størrelse osv.
store_orders: tabel indeholder navn og adresse på personen som bestiller.

Når personen bestiller mad, indsætter der i hver tabel et uniks session_id - som er ens i begge tabeller.

Som du skriver, så skal jeg bare loope dta ud fra de 2 tabeller med udgangspunkt i den unikke session_id - jeg kan bare ikke sætte loop-funktionen rigtigt op.
Avatar billede clausberg Nybegynder
14. september 2008 - 18:26 #4
Ja, der skal et NOW med ;-)

Men jeg skal vel fokusere på session_id for at kæde personen sammen med de retter han har bestilt.
Avatar billede mcardle Nybegynder
14. september 2008 - 18:34 #5
Det her burde virke:

$query = "SELECT store_shoppertrack.*, store_orders.* FROM store_shoppertrack LEFT JOIN store_orders ON store_shoppertrack.id = '$_SESSION[id]'";

//mcardle
Avatar billede jansangill Nybegynder
14. september 2008 - 18:36 #6
Jeg ville fokusere på at de to tabeller er kædet rigtigt sammen.

store_shoppertrack har en unik id, den skal kædes sammen med f.eks:store_orders.ordre.id

Altså "SELECT a.id, b.ordre_id FROM store_shoppertrack a, store_orders b WHERE a.id=b.ordre_id"
Avatar billede jansangill Nybegynder
14. september 2008 - 18:37 #7
men ja, du kan også kæde dem sammen med session.id.
Avatar billede clausberg Nybegynder
14. september 2008 - 20:20 #8
Jeg har fået det til at virke ;-)
Da I alle bidrog til en løsning, så smid et svar alle sammen ;-)
Avatar billede jakobdo Ekspert
14. september 2008 - 20:23 #9
Svar!
Avatar billede jansangill Nybegynder
14. september 2008 - 21:06 #10
Må man spørge hvad løsningen var så:>
Avatar billede jakobdo Ekspert
14. september 2008 - 21:12 #11
Problemet blev fundet og rettet her: http://www.eksperten.dk/spm/845200
Avatar billede mcardle Nybegynder
14. september 2008 - 23:10 #12
Mit svar...
Avatar billede jakobdo Ekspert
17. september 2008 - 14:37 #13
Takker for point.
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