productvergelijkings pagina

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ronald van nielen

ronald van nielen

27/07/2011 17:56:11
Quote Anchor link
Beste mensen,

Als eerste wil ik me even voorstellen. Ik ben Ronald van Nielen en 34 jaar. Ik ben bezig met het maken van een pagina die 3 producten (die opgeslagen zijn in de database)naast elkaar moet zetten (op een nieuwe pagina) zodat het makkelijk is om de waarden met elkaar te vergelijken.
De producten moeten dmv een knop te selecteren zijn op verschillende pagina's. zelf dacht ik dit te kunnen doen dmv sessies echter krijg ik dit niet voor elkaar. kan iemand mij helpen aub. Ik ben zelf geen php deskundige en doe dit volledig uit hobby en heb verder ook geen andere programeer ervaring.

alvast super bedankt voor jullie medewerking
 
PHP hulp

PHP hulp

26/02/2025 15:13:43
 
Joren de Wit

Joren de Wit

27/07/2011 18:00:45
Quote Anchor link
Als je concrete vragen hebt, kun je die hier plaatsen. Als je op zoek bent naar iemand die je in persoon kan helpen, kun je beter een vacature plaatsen...
 
Ronald van nielen

ronald van nielen

27/07/2011 18:44:15
Quote Anchor link
Was eigelijk op zoek naar tips waarmee ik verder kon, het proberen en uitzoeken op zich vind ik al leuk dus als iemand mij een tip kan geven dan graag. Wat ik tot nu toe heb is een pagina die nu een sessie start en de volgende pagina pakt deze sessie op en haalt hiermee de gegevens uit de database. Dit lukt tot zover. Ik weet alleen niet hoe je een tweede sessie uit kan lezen, hij zal waarschijlijk eerst moeten kijken of er een tweede sessie is en indien truetype dan de tweede query met de database maken. Dus graag zou ik tips willen en niet directe kant en klare code aangezien ik hier dan ook niet van leer. Mocht dit toch niet zo werken hoor ik het graag van je Joran.
 
Joren de Wit

Joren de Wit

27/07/2011 18:51:46
Quote Anchor link
Zo werkt dat hier wel, alleen probeer dan wel een concrete vraag te stellen. Je zult op dit moment ergens vast lopen, laat dan met een stukje relevante code zien wat je hebt en wat er nu niet werkt.

Sla het id van de producten die geselecteerd zijn voor vergelijking op in een sessievariabele. Dat kan gewoon een array zijn waar dus meerdere id's in zitten. Op de vergelijkingspagina lees je deze sessievariabele uit en selecteer je voor elk product de benodigde gegevens uit de database...
 
Ronald van nielen

ronald van nielen

27/07/2011 21:31:35
Quote Anchor link
hoi Joren,

op de pagina waar je op de knop kan drukken voor de functie vergelijken, heb ik nu onderstaande code staan:

<form name="vergelijk" method="post" action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? $_SESSION["test"] = "$pid" ; session_register ("test"); ?>
"/>
<input type="submit" name="submit" value="vergelijk">

op de ontvangende pagina (vergelijkfunctie.php) staat de volgende code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
if (isset ($_SESSION['test'])){
            $y = mysql_query("SELECT * FROM products WHERE pid = '".$_SESSION['test']."' ");
        while($product = mysql_fetch_array($y)) {

?>


en op de plaats waar ik de informatie wil laten zien staat de volgende regel:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo($product['title']); ?>


dit werkt, zodra ik een product kies en op de knop druk, dan zie ik op de 2e pagina de gegevens van dat product. echter ik loop nu vast hoe ik een 2e en 3e sessie moet starten en de gegevens daarvan laten zien. ik hoop dat je me in de juiste richting kan sturen.

alvast bedankt voor de moeite
 
Joren de Wit

Joren de Wit

27/07/2011 22:28:25
Quote Anchor link
Oke, vergeet het hele session_register verhaal, dat is verouderd. Als je sessies wilt gebruiken, begin je je script met session_start() en vervolgens gebruik je de superglobal $_SESSION.

Verder lijkt de action van je formulier me erg vreemd. Daar verwacht ik juist de naam van het script dat ervoor zorg dat het product aan de sessievariabele toegevoegd wordt. Dus iets als:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<form method="post" action="add_product.php">
  <input type="hidden" name="product_id" value="..." />
  <input type="submit" value="vergelijk" />
</form>

De waarde op de ... komt uit een PHP variabele die het product id bevat.

Het script add_product.php controleert vervolgens of er een formulier gepost is en of er een geldig product id gepost is. Zo ja, dan voegt hij het toe aan de sessievariabele $_SESSION['products'] op deze manier:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$_SESSION
['products'][] = $_POST['product_id'];
?>

Uiteraard heb je de inhoud van die variabele wel gecontroleerd voordat je dit doet.

En tenslotte kun je op de vergelijkpagina de array $_SESSION['products'] uitlezen en de producten weergeven...
 
Ronald van nielen

ronald van nielen

27/07/2011 22:46:48
Quote Anchor link
Beste Joren,
Bedankt voor je snele reactie. Je uitleg begrijp ik, echter wat ik dan nog niet begrijp is hoe ik ook op jouw manier 3 verschillende sessievariabele aan kan maken. Misschien moet ik de volgende uitleg nog even geven (bedacht ik me zojuist). De pagina waarop het product zichtbaar is en waar je dus de knop "vergelijk" hebt staan is 1 pagina, die aan de hand van id's de opgevraagde informatie laat zien. op deze pagina moet ik dus kijken of er al een eerdere post is en dan een tweede of derde post maken (met andere naam ??). ik hoop dat je mijn uitleg nog kan volgen.
Ik ga in ieder geval mijn code alvast aanpassen naar deze versie, is een stuk duidelijker.
 
Joren de Wit

Joren de Wit

28/07/2011 11:38:24
Quote Anchor link
Je hoeft niet meerdere sessievariabelen aan te maken, eentje is voldoende als je zorg dat het een array is. In een array kun je meerdere waarden kwijt, en dat is precies wat jij wilt. Elke keer als je het formulier om een product aan de vergelijking toe te voegen verstuurt, voeg je gewoon een nieuw id aan die array toe...
 
Moe BE

Moe BE

28/07/2011 12:41:20
Quote Anchor link
Even een bijkomende vraag voor Ronald. Kan er ingelogd worden op je website? Anders zou het misschien wel een interessant kunnen zijn om deze waardes in je database op te slaan. Zodat een ingelogde gebruiker, volgende keer dat hij inlogt zijn vergelijking ook nog heeft.
 
Ronald van nielen

ronald van nielen

28/07/2011 14:46:15
Quote Anchor link
Hoi Moe, men kan inderdaad inloggen op de site. Ik wil echter deze gegevens niet telkens in de database hebben om zo mijn database omvang te beperken. Het is eigenlijk de bedoeling dat men 3 producten kan selecteren dmv een button en dat op de vergelijkings pagina de diverse waardes naast elkaar komen te staan.

Joren, bedankt voor je bericht ik ga ermee aan de slag.
 
Moe BE

Moe BE

29/07/2011 17:40:56
Quote Anchor link
Database omvang? Daar ga je echt geen problemen mee hebben hoor als je database een beetje goed in elkaar steekt.
 
Ronald van nielen

ronald van nielen

03/08/2011 22:08:04
Quote Anchor link
Beste mensen, ik ben weer een stap verder. Ik krijg nu inderdaad mijn kolommen en ook de gegevens uit de database te zien. Echter heb ik nu het volgende probleem:
Mijn teller moet stoppen als er drie producten gekozen zijn en dan moet er een melding komen dat er al drie keuzes gemaakt zijn en dat er eerst een product eruit gehaald moet worden.
Het feit is nu dat hij doorloopt tot 4 en niet stopt bij 3. misschien heeft iemand een oplossing of een tip.

alvast bedankt voor de moeite

Toevoeging op 03/08/2011 22:25:48:

sorry ik was vergeten de code toe te voegen, dus bij deze:

foreach($_SESSION['vergelijk'] as $pid => $aantal){
if ($aantal > 0) {
$products = mysql_query("SELECT * FROM products WHERE pid = '".$pid."'");
$rowcheck = 0;
while($obj = mysql_fetch_array($products))
{
if($rowcheck == 0)
{
echo "<td>";
}
echo "
<td valign='top'>
".$obj['processor']." <br>
".$obj['snelheid']." <br>
".$obj['geheugen']." <br>
".$obj['typegeheugen']." <br>
".$obj['maxgeheugen']." <br>
".$obj['opslaghd']." <br>
".$obj['aantalhd']." <br>
".$obj['snelheidhd']." <br>
".$obj['schermdiag']." <br>
".$obj['resolutie']." <br>
".$obj['schermtype']." <br>
".$obj['typevideo']." <br>
".$obj['videogeheugen']." <br>
".$obj['opticaldrive']." <br>
".$obj['wifi']." <br>
".$obj['lan']." <br>
".$obj['bluetooth']." <br>
".$obj['rj11']." <br>
".$obj['vga']." <br>
".$obj['usb']." <br>
".$obj['firewire']." <br>
".$obj['esata']." <br>
".$obj['cardreader']." <br>
".$obj['webcam']." <br>
".$obj['windows']." <br>
".$obj['winversie']." <br>
".$obj['fabriekgar']." <br>
".$obj['gartype']." <br>
</td>
";
$rowcheck++;
if($rowcheck==3)
{
echo "</td>";
$rowcheck = 0;
}
}
}
}
echo "</table>";
?>
 
Joren de Wit

Joren de Wit

04/08/2011 09:33:20
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
if(count($_SESSION['vergelijk']) == 3) {
  // Er zijn al 3 producten geselecteerd, geef foutmelding
}
else {

}

?>
 
Ronald van nielen

ronald van nielen

04/08/2011 16:47:40
Quote Anchor link
Hoi joren,
Bedankt voor je hulp. Ik ga vanavond na het werk gelijk even proberen. Als dit werkt kan ik op naar de volgende klus, het maken van een PC configurator.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.