Hoi,
Ik zit al dagen met dit probleem. Het is namelijk zo dat het script de query niet uit voert, en dus niet fetcht. Ik kan echter nergens de fout vinden. Dit is mijn code:
iemand die het ziet?PHP Code:
<?
class shoppingcart
{
static $cart;
private $db;
function __construct(PDO $db) {
$this->cart = array(); //standaard je mandje leeg
$this->db = $db;
}
public function toevoegen($ladeId, $stuks, $loperId = false)
{
//door alle producten in het mandje lopen
$this->cart = array( 'ladeId' => $ladeId,
'aantal' => $stuks,
'loperId' => $loperId
);
if(isset($_SESSION['cart']))
{
foreach($_SESSION['cart'] as $sleutel => $items)
{
if($items['ladeId'] == $ladeId && $items['loperId'] == $loperId)
{
$_SESSION['cart'][$sleutel]['aantal'] += $stuks;
}
else
{
$_SESSION['cart'][] = $this->cart;
}
}
}
else
{
$_SESSION['cart'][] = $this->cart;
}
// print_r($_SESSION['cart']);
}
public function fetchCart()
{
$aId = array();
foreach($_SESSION['cart'] as $items)
{
$aLadeId[] = $items['ladeId'];
if(!$items['loperId'])
{
$aLoperId[] = 'NULL';
}
else
{
$aLoperId[] = $items['loperId'];
}
}
$zoekLade = implode(',', $aLadeId);
$zoekLoper = implode(',', $aLoperId);
try
{
$sql = "SELECT * FROM lade as la,loper as lo WHERE la.id IN (" . $zoekLade . ") and lo.id IN (" . $zoekLoper . ")";
$results = $this->db->query($sql);
// $results->fetch(PDO::FETCH_ASSOC)
}
catch(PDOException $e)
{
echo '<pre>';
echo 'Regel: '.$e->getLine().'<br>';
echo 'Bestand: '.$e->getFile().'<br>';
echo 'Foutmelding: '.$e->getMessage();
echo '</pre>';
}
}
}
?>
- Fetch werkt niet?
-
10-10-2009, 17:25 #1
- Berichten
- 167
- Lid sinds
- 16 Jaar
Fetch werkt niet?
-
In de schijnwerper
Te Koop: 3 Geweldige Websites - Winprijzen.be, Wedstrijden.be & Prijzen.be als pakketWebsite te koopWPC.be - DA28 - DR7 - Uit 1999 - 1k EMD zoekvolume p.mndDomein te koopZeer complete WordPress VPS pakkettenHostingLinkvada.com Linkbuilding Platform: Direct Linkbuilden op 77.000+ premium domeinenSEO/Linkbuilding -
10-10-2009, 17:29 #2
- Berichten
- 392
- Lid sinds
- 15 Jaar
Hoi,
Ik zit al dagen met dit probleem. Het is namelijk zo dat het script de query niet uit voert, en dus niet fetcht. Ik kan echter nergens de fout vinden. Dit is mijn code:
PHP Code:<?php
class shoppingcart
{
static $cart;
private $db;
function __construct(PDO $db) {
$this->cart = array(); //standaard je mandje leeg
$this->db = $db;
}
public function toevoegen($ladeId, $stuks, $loperId = false)
{
//door alle producten in het mandje lopen
$this->cart = array( 'ladeId' => $ladeId,
'aantal' => $stuks,
'loperId' => $loperId
);
if(isset($_SESSION['cart']))
{
foreach($_SESSION['cart'] as $sleutel => $items)
{
if($items['ladeId'] == $ladeId && $items['loperId'] == $loperId)
{
$_SESSION['cart'][$sleutel]['aantal'] += $stuks;
}
else
{
$_SESSION['cart'][] = $this->cart;
}
}
}
else
{
$_SESSION['cart'][] = $this->cart;
}
// print_r($_SESSION['cart']);
}
public function fetchCart()
{
$aId = array();
foreach($_SESSION['cart'] as $items)
{
$aLadeId[] = $items['ladeId'];
if(!$items['loperId'])
{
$aLoperId[] = 'NULL';
}
else
{
$aLoperId[] = $items['loperId'];
}
}
$zoekLade = implode(',', $aLadeId);
$zoekLoper = implode(',', $aLoperId);
try
{
$sql = "SELECT * FROM lade as la,loper as lo WHERE la.id IN (" . $zoekLade . ") and lo.id IN (" . $zoekLoper . ")";
$results = $this->db->query($sql);
// $results->fetch(PDO::FETCH_ASSOC)
}
catch(PDOException $e)
{
echo '<pre>';
echo 'Regel: '.$e->getLine().'<br>';
echo 'Bestand: '.$e->getFile().'<br>';
echo 'Foutmelding: '.$e->getMessage();
echo '</pre>';
}
}
}
?>
ik heb het bijgevoegd, in het vet, onderstreept en cursief.
-----
Zo te zien zie je het verschil niet.
Heb er dus gewoon php achter gezet.
-
10-10-2009, 17:41 #3
- Berichten
- 167
- Lid sinds
- 16 Jaar
Nee, dat is slechts om de code goed te weergeven. Dit is slechts een fractie van de code. Begin tag is goed ;)
De query,
$sql = "SELECT * FROM lade as la,loper as lo WHERE la.id IN (" . $zoekLade . ") and lo.id IN (" . $zoekLoper . ")";
, is goed, maar het uitvoeren, daar zit de fout. Als ik var dump doe, dan komt er ook bool(false) uit
: $results = $this->db->query($sql);
-
10-10-2009, 17:54 #4
- Berichten
- 935
- Lid sinds
- 17 Jaar
lade la is toch ook goed? en loper lo ,....is korter..
-
10-10-2009, 18:52 #5
- Berichten
- 167
- Lid sinds
- 16 Jaar
Tuurlijk kan dat ;) Maar toch, is niet het probleem :D
-
10-10-2009, 19:05 #6
- Berichten
- 2.392
- Lid sinds
- 17 Jaar
Echo $SQL eens, en ik zie geen foutafhandeling voor als de query niet lukt
De SQL loopt namelijk fout, en zonder foutafhandeling weet je de error niet ;-)
-
11-10-2009, 13:26 #7
- Berichten
- 167
- Lid sinds
- 16 Jaar
try / catch is toch foutafhandeling?
en $sql is goed, namelijk:
SELECT * FROM lade as la,loper as lo WHERE la.id IN (138
) and lo.id IN (2
) (wat werkt in PHPMyAdmin)
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic