Pagina 1 van 1

dreamweaver php vraag

Geplaatst: 08 sep 2004, 11:11
door verdickt
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

Geplaatst: 08 sep 2004, 11:44
door meon
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 ;)

Geplaatst: 08 sep 2004, 15:54
door 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 ??

Geplaatst: 08 sep 2004, 16:47
door meon
Als je het naar de URI post, dan moet je $_GET['varnaam'] gebruiken ja.

Geplaatst: 09 sep 2004, 08:06
door Squirtle
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

Geplaatst: 09 sep 2004, 15:16
door verdickt
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.

Geplaatst: 09 sep 2004, 15:21
door meon
Ik wil er gerust naar kijken, naar je code, want momenteel is het beetje moeilijk om te volgen waar je juist iets fout doet ...

code van de eerste pagina: heb hier nu tijdelijk enkel een

Geplaatst: 09 sep 2004, 19:36
door verdickt
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);
?>

pagina waar de variabele zou moeten inkomen

Geplaatst: 09 sep 2004, 19:43
door verdickt
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

Geplaatst: 13 sep 2004, 11:07
door Squirtle
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:

Geplaatst: 13 sep 2004, 12:23
door meon
$_POST['select'] , met quotes gebruiken, of je krijgt errors op je dak ;)

Geplaatst: 15 sep 2004, 11:08
door Squirtle
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

Geplaatst: 15 sep 2004, 11:29
door airzimmy
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