Avatar billede Morten Professor
13. april 2015 - 20:36 Der er 7 kommentarer og
1 løsning

Leger med session og database

Jeg har et problem som jeg ikke helt har løst endnu.
Nu har jeg fået hjælp til at finde data igennem id i session.

Men får et problem. jeg får udskrevet den samme data fra den ene id selvom jeg har 2 forskellige id som viser sig, men data for dem hvert er kun fra den ene.

Min kode:

<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;   
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

mysql_select_db($database_test_database_session, $test_database_session);
$query_rsVarer = "SELECT * FROM vare WHERE id ".$id;
$rsVarer = mysql_query($query_rsVarer, $test_database_session) or die(mysql_error());
$row_rsVarer = mysql_fetch_assoc($rsVarer);
$totalRows_rsVarer = mysql_num_rows($rsVarer);
  session_start();
 

    foreach($_SESSION["kurv"] as $id => $antal){ 

    echo '<br /><a href="slet_en_vare.php?id='.$id.'">Slet</a><br />';
    echo '<br /><a href="slet_antal.php?id='.$id.'">Slet antal</a><br />';

    echo $id;
    echo "<br />";
    echo $id = $row_rsVarer['vare'];
    echo "<br />";
    echo "Om varen: ".$id = $row_rsVarer['tekst'];
    echo "<br />";
    echo "Pris: ".$id = $row_rsVarer['pris']." kr.";
    echo "<br />";
    echo "Antal: ".$antal;
    echo "<br />";
    echo "Pris i alt: ".$antal * $row_rsVarer['pris']. " kr. i alt.";
    echo "<br />";
    }

   
?>

I min array viser den fint id og antal.

Med venlig hilsen
Morten
Avatar billede Morten Professor
13. april 2015 - 20:38 #1
echo $id;
    echo "<br />";
    echo $row_rsVarer['vare'];
    echo "<br />";
    echo "Om varen: ".$row_rsVarer['tekst'];
    echo "<br />";
    echo "Pris: ".$row_rsVarer['pris']." kr.";
    echo "<br />";
    echo "Antal: ".$antal;
    echo "<br />";
    echo "Pris i alt: ".$antal * $row_rsVarer['pris']. " kr. i alt.";
    echo "<br />";
Avatar billede erikjacobsen Ekspert
13. april 2015 - 21:14 #2
Hvor kommer $id fra i linien:
  $query_rsVarer = "SELECT * FROM vare WHERE id ".$id;
Avatar billede Morten Professor
13. april 2015 - 21:30 #3
foreach($_SESSION["kurv"] as $id => $antal
Avatar billede olsensweb.dk Ekspert
13. april 2015 - 21:48 #4
lad det være sagt med det sammen, jeg gider ikke bruge særlig lang tid på spørgsmål i det gamle API, ensige teste dem.

hvad er meningen med denne code ??

mysql_select_db($database_test_database_session, $test_database_session);
$query_rsVarer = "SELECT * FROM vare WHERE id ".$id;
$rsVarer = mysql_query($query_rsVarer, $test_database_session) or die(mysql_error());
$row_rsVarer = mysql_fetch_assoc($rsVarer);
$totalRows_rsVarer = mysql_num_rows($rsVarer);
  session_start();

hvor bruges resultatet ??


mine øjne bliver generet af din foreach

echo "Om varen: ".$id = $row_rsVarer['tekst'];
echo "Pris: ".$id = $row_rsVarer['pris']." kr.";

her overskriver du lige din nøgle i arrayet 2 gange :(
vil vel udskrive

Om varen: 1
Pris: 1

#3
den code erikjacobsen referare til er kaldt FØR din foreach
Avatar billede Morten Professor
13. april 2015 - 22:06 #5
echo "Om varen: ".$id = $row_rsVarer['tekst'];
echo "Pris: ".$id = $row_rsVarer['pris']." kr.";


Det var en test men er væk igen.
Ser sådan ud igen
echo "Om varen: ".$row_rsVarer['tekst'];
echo "Pris: ".$row_rsVarer['pris']." kr.";

Jeg forsøger at bruge de id, der er i min session til at hente de oplysninger, der er på databasen.

Ved godt det er det gamle API men det er bare når jeg tester det.
Avatar billede olsensweb.dk Ekspert
13. april 2015 - 22:20 #6
vil tro det er dette du vil opnå:
(utested)

<?php
foreach($_SESSION["kurv"] as $varer => $vare){
    $id = $vare['id'];
    $antal = $vare['antal'];
    $query_rsVarer = "SELECT * FROM vare WHERE id ".$id;
    $rsVarer = mysql_query($query_rsVarer, $test_database_session) or die(mysql_error());
    $row_rsVarer = mysql_fetch_assoc($rsVarer);
    echo '<br /><a href="slet_en_vare.php?id='.$id.'">Slet</a><br />';
    echo '<br /><a href="slet_antal.php?id='.$id.'">Slet antal</a><br />';
    echo $id;
    echo "<br />";
    echo $row_rsVarer['vare'];
    echo "<br />";
    echo "Om varen: ".$row_rsVarer['tekst'];
    echo "<br />";
    echo "Pris: ".$row_rsVarer['pris']." kr.";
    echo "<br />";
    echo "Antal: ".$antal;
    echo "<br />";
    echo "Pris i alt: ".$antal * $row_rsVarer['pris']. " kr. i alt.";
    echo "<br />";
}
?>


hvis du alligevel skal "lege" så test i det nye, det har du mere gavn af på sigt
Avatar billede Morten Professor
14. april 2015 - 11:21 #7
Det virkede desværre ikke.

Jeg starter lige en ny tråd, jeg må hellere komme igang med session mysqli.

Håber ikke jeg er til for meget besvær, vil gerne gøre det rigtig.

Med venlig hilsen
Morten
Avatar billede olsensweb.dk Ekspert
14. april 2015 - 12:39 #8
ret sql fejlen til
$query_rsVarer = "SELECT * FROM vare WHERE id = ".$id;
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