Avatar billede snigeren Nybegynder
29. juli 2007 - 16:29 Der er 6 kommentarer og
1 løsning

problem med at tilføje til db

Jeg har for kort tid siden fået en masse hjælp omkring dette, fra jackodo,.. endnu engang mange tak for hjælp.

Nu er jeg stødt ind i et (synes jeg) mærkeligt problem. Min cart.php skal tilføje session cookieId, itemId og surfacenavn til tabellen "cart" i DB... det fungerer også fint når jeg i linie 46 fjerne surfacenavn og $surfacenavn fra query´en. Men så tilføjer den jo sjovt nok ikke $surfacenavn hvilket den skal.

Hvis ikke surfacenavn står der tilføjer den alt andet til tabellen og lader surfacenavn feltet være tomt...

Nogen der kan sige mig hvorfor dette er?:

Her kommer script:

<?php
include("db.php");

switch($_GET["action"])
{
    case "add_item":
    {
        AddItem($_GET["itemId"], $_GET["qty"], $_GET["surfacenavn"]);
        ShowCart();
        break;
    }
    case "update_item":
    {
        UpdateItem($_GET["itemId"], $_GET["qty"], $_GET["surfacenavn"]);
        ShowCart();
        break;
    }
    case "remove_item":
    {
        RemoveItem($_GET["itemId"]);
        ShowCart();
        break;
    }
    default:
    {
        ShowCart();
    }
}
    function AddItem($itemId, $qty, $surfacenavn)
{
    global $dbServer, $dbUser, $dbPass, $dbName;

    $cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName);
   
    echo '<pre>';
    print_r($_GET);
    echo '</pre>';
    $result = mysql_query("select count(*) from cart where cookieId = '" . GetCartId() . "' and itemId = $itemId");
    $row = mysql_fetch_row($result);
    $numRows = $row[0];
   
    if($numRows == 0)
    {
        // Hvis jeg sletter surfacenavn og $surfacenavn i nedenstående linie vil den gerne tilføje til databasen, hvordan det?
        @mysql_query("insert into cart(cookieId, itemId, qty, surfacenavn) values('" . GetCartId() . "', $itemId, $qty, $surfacenavn)");
    }
    else
    {
        UpdateItem($itemId, $qty, $surfacenavn);
    }
}

function UpdateItem($itemId, $qty, $surfacenavn)
{
    global $dbServer, $dbUser, $dbPass, $dbName;
    $cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName);
   
    if($qty == 0)
    {
        RemoveItem($itemId);
    }
    else
    {
        mysql_query("update cart set qty = $qty where cookieId = '" . GetCartId() . "' and itemId = $itemId");
    }
}

function RemoveItem($itemId)
{
        global $dbServer, $dbUser, $dbPass, $dbName;
        $cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName);
   
    mysql_query("delete from cart where cookieId = '" . GetCartId() . "' and itemId = $itemId");
}

function ShowCart()
{
    global $dbServer, $dbUser, $dbPass, $dbName;
    $cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName);
   
    $totalCost = 0;
    $result = mysql_query("select * from cart inner join shop_content on cart.itemId = shop_content.itemId where cart.cookieId = '" . GetCartId() . "' order by shop_content.beskrivelse asc")or die(mysql_error());
}
?>
Avatar billede snigeren Nybegynder
29. juli 2007 - 16:30 #1
og med nedenstående script kan jeg se at alle data kommer med fra forrige side:

    echo '<pre>';
    print_r($_GET);
    echo '</pre>';
Avatar billede erikjacobsen Ekspert
29. juli 2007 - 17:00 #2
Der skal måske '...' omkring:

      @mysql_query("insert into cart(cookieId, itemId, qty, surfacenavn) values('" . GetCartId() . "', $itemId, $qty, '$surfacenavn')");
Avatar billede erikjacobsen Ekspert
29. juli 2007 - 17:01 #3
Og så iøvrigt fjerne @ - og tilføje

    mysql_query("insert into cart(cookieId, itemId, qty, surfacenavn) values('" . GetCartId() . "', $itemId, $qty, $surfacenavn)") or die(mysql_error());
Avatar billede snigeren Nybegynder
29. juli 2007 - 17:48 #4
yes sir! så virker det,.. helt sikkert '...' fordi der nogle gange er mellemrum i surfacenavne... smid lige et svar =)
Avatar billede erikjacobsen Ekspert
29. juli 2007 - 17:54 #5
Nej, ikke pga mellemrum, men fordi indholdet af et tekstfelt altid skal i '....'

Jeg samler slet ikke på point, tak. Svar selv, accepter dit eget svar.
Avatar billede snigeren Nybegynder
29. juli 2007 - 18:21 #6
nå for dælen derfor,.. og tekstfelter og dropdown menuer er så det samme i denne situation...

Jamen så skal jeg da ikke belæmre dig med flere point :D  Ikke at jeg bruger mine til noget kan alligevel sjældent hjælpe folk når jeg kan er der altid nogen der har været hurtigere :D
Avatar billede snigeren Nybegynder
29. juli 2007 - 18:22 #7
for ej at glemme, tak for hjælpen! Sku rart folk er så hurtige her på eksperten! Det sætte jeg meget stor pris på. Det bedste forum ever!  =)
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