dreamweaver php vraag

Plaats reactie
verdickt
Premium Member
Premium Member
Berichten: 647
Lid geworden op: 12 maa 2004, 22:24

ik heb momenteel een login pagina gemaakt, de gebruiker kan hier een categorie selecteren ( in een dynamic listbox ) en moet nadien nog bevestigen met een wachtwoord.

De listbox wordt geladen met records uit de tabel categorie ( categorie_id en categorie_naam ) enkel de naam is zichtbaar.

Bedoeling:

Als iemand een bepaalde categorie selecteerd in de listbox + ook nog eens het juiste wachtwoord intypt moet de persoon op een andere pagina ( bijvoorbeeld: catalog.php ) de lijst te zien krijgen van alle producten ( met hun details: naam, prijs ) die tot deze categorie behoren.

Dus de catalog.php is dus gewoon een tabel met recordsets en een repeat region in dreamweaver.

recordset is dus gewoon: select * from products where products.categorie_id = categorie.categorie_id ( syntax is hier wellicht fout)

Probleem:

Hoe geef je in dreamweaver het categorie_id op de eerste pagina door zodat je op de 2de pagina een selectie querie kan draaien van alle producten die tot deze categorie behoren ????

alvast bedankt
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

Ik vermoed dat je dat allemaal in een formulier heb steken? Dus normaal POST je die dingen naar de volgende pagina. Op de volgende pagina kan je dan die info opvragen via $_POST['categorie_id'] (kan via een knopje op de PHP-werkbalk).
Ik kan nu niet meteen kijken, maar ik dacht dat je in de query-builder kon zeggen dat de variabele voor een bepaald veld uit MySQL uit de POST-data moest komen.

In code zou het er dan zo uitzien:

Code: Selecteer alles

$sql_catalog = "SELECT * FROM table WHERE product_id = ".$_POST['product_id'].";";

Ik heb hier nu wel niet de juiste veldnamen en zo gebruikt, maar dat zie je wel wat jij moet hebben ;)
Gast

hallo meon,

ik versta uw uitleg wel maar het lukt hier niet.

Ik heb dan nog lang moeten zoeken waar ik kon redirecten. Het is gewoon op de rode lijnen klikken om de eigenschappen van het form te bekijken.

Ik was eerst met post bezig maar dan kreeg ik op de redirect pagina in mijn browser niet te zien wat er nu geselecteerd was.

Gebruik ik echter op de aanmeldingspagina de get functie dan krijg ik op
de redirect pagina nu wel bovenaan het volgende te zien.
http://localhost/vhdr2/index.php?select ... =aanmelden

select = 3 en ik heb inderdaad de 3de categorie geselecteerd, en dit wordt correct aangepast naar 1,2,of 3

Dus ik vermoed dat de get moet worden gebruikt of vergis ik me hier en dat ik eventueel nog iets moet ingeven bij parameters

Maar het is mogelijk dat ik dit volledig verkeerd zie natuurlijk ??
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

Als je het naar de URI post, dan moet je $_GET['varnaam'] gebruiken ja.
Squirtle
Plus Member
Plus Member
Berichten: 166
Lid geworden op: 22 jan 2004, 08:27
Contacteer:

ik wist niet dat dreamweaver nu ook PHP kon genereren en heb dus ook geen zicht op wat voor code die aanmaakt, maar denk ook aan error handling als je je variabelen via de url doorgeeft:

http://localhost/vhdr2/index.php?select=Squirtle&aanmelden=aanmelden
en meer van dat fraais moeten opgevangen worden, net zoals numerieke IDs die niet in je DB bestaan
verdickt
Premium Member
Premium Member
Berichten: 647
Lid geworden op: 12 maa 2004, 22:24

via dreamweaver heb ik het nog steeds niet aan de praat gekregen.

Via het post commando geeft hij gewoon categorie_id= 1 door ook al selecteer ik in de listbox categorie 2 of 3.

Ik zal wel nog iets verkeerds doen maar wat.
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

Ik wil er gerust naar kijken, naar je code, want momenteel is het beetje moeilijk om te volgen waar je juist iets fout doet ...
verdickt
Premium Member
Premium Member
Berichten: 647
Lid geworden op: 12 maa 2004, 22:24

listbox ingezet en een submit knop.
Van deze pagina moet de categorie_id doorgegeven worden aan de 2 de pagina om in de sql query te worden gebruikt

aanmelden.php

Code: Selecteer alles

<?php require_once('Connections/testdatabase.php'); ?>
<?php
mysql_select_db($database_testdatabase, $testdatabase);
$query_rsaanmelden = "SELECT categorie_id, categorie_naam FROM categories";
$rsaanmelden = mysql_query($query_rsaanmelden, $testdatabase) or die(mysql_error());
$row_rsaanmelden = mysql_fetch_assoc($rsaanmelden);
$totalRows_rsaanmelden = mysql_num_rows($rsaanmelden);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

<table width="623" border="0" cellpadding="0" cellspacing="0">
  <!--DWLayoutTable-->
  <tr>
    <td width="623" height="30"><form name="form1" method="post" action="producten.php">
      <p>
        <select name="select">
            <?php
do { 
?>
            <option value="<?php echo $row_rsaanmelden['categorie_id']?>"><?php echo $row_rsaanmelden['categorie_naam']?></option>
            <?php
} while ($row_rsaanmelden = mysql_fetch_assoc($rsaanmelden));
  $rows = mysql_num_rows($rsaanmelden);
  if($rows > 0) {
      mysql_data_seek($rsaanmelden, 0);
     $row_rsaanmelden = mysql_fetch_assoc($rsaanmelden);
  }
?>
        </select>
</p>
      <p>
        <input type="submit" name="Submit" value="Submit"> 
          </p>
    </form></td>
  </tr>
</table>
</body>
</html>
<?php
mysql_free_result($rsaanmelden);
?>
verdickt
Premium Member
Premium Member
Berichten: 647
Lid geworden op: 12 maa 2004, 22:24

ik heb hier nu tijdelijk in de selectie query opgegeven:
select ... from producten where categorie_id=1. Probeer ik hier een variabele in te geven dan geeft dreamweaver me een error en verdwijnt de hele query.

producten.php

Code: Selecteer alles

<?php require_once('Connections/testdatabase.php'); ?>
<?php
mysql_select_db($database_testdatabase, $testdatabase);
$query_rsproducten = "SELECT producten.product_id, producten.product_naam, producten.product_aantal, producten.product_prijs FROM producten WHERE producten.categorie_id = 1";
$rsproducten = mysql_query($query_rsproducten, $testdatabase) or die(mysql_error());
$row_rsproducten = mysql_fetch_assoc($rsproducten);
$totalRows_rsproducten = mysql_num_rows($rsproducten);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
   margin-left: 0px;
   margin-top: 0px;
   margin-right: 0px;
}
-->
</style></head>

<body>

<table width="787" border="0" cellpadding="0" cellspacing="0">
  <!--DWLayoutTable-->
  <tr>
    <td width="787" height="268"><table width="776" border="1">
      <?php do { ?>
      <tr>
          <td width="161"><?php echo $row_rsproducten['product_id']; ?></td>
          <td width="182"><?php echo $row_rsproducten['product_naam']; ?></td>
          <td width="185"><?php echo $row_rsproducten['product_aantal']; ?></td>
          <td width="220"><?php echo $row_rsproducten['product_prijs']; ?></td>
      </tr>
      <?php } while ($row_rsproducten = mysql_fetch_assoc($rsproducten)); ?>
    </table></td>
  </tr>
</table>
</body>
</html>
<?php
mysql_free_result($rsproducten);
?>

Volgens mij moet er dus komen;

in de query bovenaan:

producten.product_prijs FROM producten WHERE producten.categorie_id = <?php $_POST[categorie_id]; ?>";

Of toch iets in de aard

Maar het lijkt er op dat deze $_POST[categorie_id]; ?>"; nooit wordt doorgegeven
Squirtle
Plus Member
Plus Member
Berichten: 166
Lid geworden op: 22 jan 2004, 08:27
Contacteer:

de namen van de variabelen die je binnen krijgt zijn deze van je FORM ITEMS

uit je aanmelden.php:

Code: Selecteer alles

 <select name="select"> 


geef ofwel deze select box een meer zinvolle naam (bvb. categorie_id), ofwel haal je gewoon 'select' op uit je POST array ipv 'categorie_id':

Code: Selecteer alles

 $_POST[select] 



als het niet duidelijk is dan zeg je het maar :roll:
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

$_POST['select'] , met quotes gebruiken, of je krijgt errors op je dak ;)
Squirtle
Plus Member
Plus Member
Berichten: 166
Lid geworden op: 22 jan 2004, 08:27
Contacteer:

dacht dat het niet meer uitmaakte
toen ik enkele weken terug aan een module in PHP-Nuke lag te prutsen bleek deze zowel $row['veldnaam'] als $row[veldnaam] te aanvaarden
airzimmy
Erelid
Erelid
Berichten: 1047
Lid geworden op: 19 sep 2002, 14:01
Contacteer:

Squirtle schreef:dacht dat het niet meer uitmaakte
toen ik enkele weken terug aan een module in PHP-Nuke lag te prutsen bleek deze zowel $row['veldnaam'] als $row[veldnaam] te aanvaarden


Aanvaarden ja, maar wellicht afh van je setup krijg je leuke notices in je logs
Plaats reactie

Terug naar “Development”