Nou ben ik weer, een week geleden begon ik met sessies, en nu vraag ik het hier maar eens want ik ben al weer dagen bezig met dit probleem.

ik zal hier de code van me pagina plakken.
De fout die ik krijg is:
Warning: Bad arguments to implode() in c:\phpdev\www\project2\factuur.php on line 20

Het gaat er om dat ik een sessie uit wil lezen en in een query wil gebruiken...
Het 1e stukje code checkt of de sessie een waarde heeft, en dat heeft ie...
met print_r($_SESSION); kan ik ook de waarde uit printen uit de sessie... maar het script daaronder, en daar gaat het om, die doet het niet...

<?php session_start(); ?>
<h1>Factuur</h1><p>
<h2>Producten</h2>

<?php
error_reporting(E_ALL);
if(isset($_SESSION['prdid'])) {
echo "productid bestaat.<br>";
} else {
echo "productid bestaat niet!<br>";
}
?>

<?php
print_r($_SESSION);
?><p>

<?php
include("dbconnect1.php");
$IDsession = implode(",",$_SESSION['prdid']);
$query = "SELECT * FROM pdklant WHERE prdid IN ('.$IDsession.')";
$resultaat = mysql_query($query) or die ("Er is iets mis met de database");
?>

<table>
<tr>
<td width="50"><b>Nr</td>
<td width="75"><B>Product</td>
<td width="75"><b>Prijs</td>
<td width="75"><b>Aantal</td>
<td><b>Totaal</td>
</tr>
<?php
while($obj = mysql_fetch_array($resultaat)){
?>
<tr>
<td>
<?php echo $obj['prdid'];?>
</td>
<td>
<?php echo $obj['naampd'];?>
</td>
<td>&euro;
<?php echo $obj['prijs'];?>
</td>
<td>
<?php echo $obj['aantal'];?>
</td>
<td>&euro;
<?php echo $totaal = $obj['aantal']*$obj['prijs']; ?>
</td>
</tr>
<?php

}
?><p>
</table><p>
Bestaat $_session['prdid'] wel dan?
ja, dit script checkt het

<?php
error_reporting(E_ALL);
if(isset($_SESSION['prdid'])) {
echo "productid bestaat.<br>";
} else {
echo "productid bestaat niet!<br>";
}
?>

ja hij bestaat.

en met
<?php
print_r($_SESSION);
?>

krijg ik ook de waarde te zien
Is het een array?
Zo, nee, dat is het probleem :)
um..

hoe check ik dat??
een sessie is toch een soort array?
Jah, maar de slice $_SESSION['prdid'] gebruik je in de functie implode (die gebruik je om een array plat te drukken), dus de slice $_SESSION['prdid'] moet ook een array zijn.
aha.

Ik heb al een keer een array hiervoor gebruikt..
ik maakte het aan met dit script

<?
$array = $_POST['array'];
echo $array . "<br />";
print_r($array);
?>

de checkbox zo:

<input type="checkbox" name="array[]" value="<?php echo $obj['prdid'];?>

en op de volgende pagina ( factuur.php ) kon ik de waardes eruit halen en idd ging alles goed met implode.

Maar op factuur.php heb ik nog een formuliertje dat een paar berekeningen doet, en zodra je daarvoor op submit klik, raak ik de gegevens kwijt die in die array zaten.

De oplossing was: Sessies

En daar ben ik nu mee bezig. Alles gaat goed, alleen weet ik niet hoe ik de waardes uit de sessie kan gebruiken in die query!

kunnen jullie misschien een voorbeeld geven?
die implode functie kan dus in principe weg.

Reageren