query uitvoeren via formulier

Status
Niet open voor verdere reacties.

willem008

Gebruiker
Lid geworden
28 sep 2007
Berichten
792
Goede dag

Het lukt me nu aardig om een query uit te voeren met php
Nu wil ik een formulier maken met bijv 2 keuzen menu'tjes en dan met een zoek knop zodat ik via een pagina verschillende query's kan uitvoeren.

Ik loop al een tijdje op internet te zoeken maar kan nog niet vinden hoe dit werk

Graag een kleine aanwijzig of een link naar een site (ned) waar dat uitgelegen wordt.

Ik snap nog niet hoe ik verschillende query's op een pagina kan uitvoeren

bijvoorbaat dank
 
Net zoals je er 1 uitvoert, maar dan meerdere onder elkaar...?

Je kunt de mysql_query() functie zo vaak aanroepen als je wilt om verschillende queries uit te voeren, en je kunt met een stukje PHP bepalen welke query er gedaan moet worden. Het werkt precies hetzelfde als je tot nu toe gedaan hebt.
 
ok bedankt

Ik ga even rustig verder proberen zeg het eerlijk ben er nog niet uit.

Mischien maar weet niet of dat zo simpel is kan je even iets laten zien bijv een pagina met twee query's
en waar je dan met een menu''je kan bepalen welke query wordt uitgevoert.

Ik moet even het pincipe door hebben dan kan ik zelf verder uitproberen.

Mischien vraag ik wel iets wat niet zo simpel is
 
Men neme een formulier:

HTML:
<form action="verwerk.php" method="POST">
<input type="radio" name="choice" value="A" /> Optie A
<input type="radio" name="choice" value="B" /> Optie B
<input type="submit" name="submit" value="Klik!" />
</form>

En een verwerk pagina:
PHP:
if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
  // er is een formulier ingezonden.
  if ( $_POST['choice'] == 'A' ) {
    mysql_query( "SELECT * FROM tabel WHERE veld = 'A' " );
  } 
  if ( $_POST['choice'] == 'B' ) {
    mysql_query( "SELECT * FROM tabel WHERE veld = 'B' " );
  } 
}

Dit is een heel simpel voorbeeldje van hoe het ongeveer werkt :)
 
ok

Ik begin het te begrijpen

Ik heb nu in de pagina verwerk.php een verbinding met mijn database gemaakt dat gaat allemaal goed.
alleen nog even uitzoeken waar de query''s komen in de formulier of in verwerk.php of in beide.
 
Nog even dit

Ik heb nu dit gemaakt
Verwerk.php

<html>
<head>
<title></title>
</head>
<body>
<?php
// Verbinding maken, een database selecteren
$link = mysql_connect("10.110.8", "wlvdmeer_montag", "xxx")
or die("Kan geen verbinding maken");
print "";
mysql_select_db("wlvdmeer_montag")
or die("Kan geen database selecteren");


//selecteer de juiste database
mysql_select_db("wlvdmeer_montag", $link);

if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
// er is een formulier ingezonden.
if ( $_POST['choice'] == 'A' ) {
mysql_query( "SELECT * FROM paard WHERE veld = 'naam' " );


echo "Paarden: " . $_POST . " uit deze tabel.";


}
if ( $_POST['choice'] == 'B' ) {
mysql_query( "SELECT * FROM tabel WHERE veld = 'B' " );


}
}

?>
</body>
</html>

als ik via het formulier via knop A ga geeft hij de tekst

paarden array uit deze tabel

Ik heb nu $_POST ingevult als variabele maar dat gaat hellemaal fout

Ik loop al een tijd op internet te zoeken maar kom hier niet uit hoe ik het voor elkaar krijg
was ik via knop A naar de verwerk pagina ga en zodat de goede query wordt uitgevoerd.
 
$_POST is altijd een array... wat probeer je te tonen? Als je de inhoud van het veld wil tonen moet je de juiste key meegeven:

PHP:
 echo $_POST['veldnaam']

Als je de resultaten van de query wilt tonen moet je die eerst ophalen met mysql_fetch() functies.
 
Ok is na veel proberen gelukt.

Ik heb even een heel simpel formulier aan mijn database gekoppeld ,
Hij werk het gaat mijn alleen even om het pricipe ,alleen denk ik dat er een fout in zit
met het sluiten van de database.

Moet ik nu na elke query de database sluiten of eenmaal op het eind.

<html>
<head>
<title></title>
</head>
<body>
<?php
// Verbinding maken, een database selecteren
$link = mysql_connect("10.246.85.17", "wlvdmeer_montag", "xxxxx")
or die("Kan geen verbinding maken");
print "";
mysql_select_db("wlvdmeer_montag")
or die("Kan geen database selecteren");


//selecteer de juiste database
mysql_select_db("wlvdmeer_montag", $link);

if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
// er is een formulier ingezonden.
if ( $_POST['choice'] == 'A' ) {
$commando="select * from paard, plaats, uitslag, paard_uitslag where
plaats = 'assendelft' and
paard.paard_id = paard_uitslag.paard_id and
plaats.plaats_id = paard_uitslag.plaats_id and
uitslag.uitslag_id = paard_uitslag.uitslag_id";
$resultaat=mysql_query($commando);
$array=mysql_fetch_array($resultaat);



echo "Eerste assendelft: " . $array['naam'] . "<br />";
}


if ( $_POST['choice'] == 'B' ) {
$commando="select * from paard, plaats, uitslag, paard_uitslag where
plaats = 'Wognum' and
paard.paard_id = paard_uitslag.paard_id and
plaats.plaats_id = paard_uitslag.plaats_id and
uitslag.uitslag_id = paard_uitslag.uitslag_id";
$resultaat=mysql_query($commando);
$array=mysql_fetch_array($resultaat);


echo "Eerste Wognun: " . $array['naam'] . "<br />";
}



if ( $_POST['choice'] == 'C' ) {
$commando="select * from paard, plaats, uitslag, paard_uitslag where
plaats = 'venhuizen' and
paard.paard_id = paard_uitslag.paard_id and
plaats.plaats_id = paard_uitslag.plaats_id and
uitslag.uitslag_id = paard_uitslag.uitslag_id";
$resultaat=mysql_query($commando);
$array=mysql_fetch_array($resultaat);


echo "Eerste venhuizen " . $array['naam'] . "<br />";
}


if ( $_POST['choice'] == 'D' ) {
$commando="select * from paard, plaats, uitslag, paard_uitslag where
plaats = 'amsterdam' and
paard.paard_id =paard_uitslag.paard_id and
plaats.plaats_id = paard_uitslag.plaats_id and
uitslag.uitslag_id = paard_uitslag.uitslag_id";
$resultaat=mysql_query($commando);
$array=mysql_fetch_array($resultaat);


echo "Eerste amsterdam " . $array['naam'] . "<br />";
}

}

?>
</body>
</html>
 
Database verbinding sluit je op het eind pas, en beter nog sluit je hem gewoon niet; dat doet het script namelijk automatisch voor je.
 
ok bedankt.

Ik heb voorlopig weer genoeg te oefenen

nog even een dingetje als in nu in plaats van die radio botum formulier ,deze wil gebruiken


<FORM METHOD="post" ACTION="verwerk.php">
<SELECT NAME="">
<OPTION VALUE="" SELECTED>------ Maak hier je keuze ------</OPTION>
<OPTION VALUE="A">paard</OPTION>
<OPTION VALUE="B">plaats</OPTION>
<OPTION VALUE="C">pikeur</OPTION>
<OPTION VALUE="D">prijzengeld</OPTION>
<OPTION VALUE="E">afstand</OPTION>
<OPTION VALUE="F">aantal deelnemmers</OPTION>
</SELECT>
</FORM>

Hoe krijg ik hem dan zoals in mijn geval dat hij verwijst naar "A" en choice
 
Gewoon de name field van de select instellen:

HTML:
<select name="choice" />

HTML:
<input type="radio" name="choice" />

Gedragen zich in PHP exact hetzelfde.
 
Heb het nu zo gedaan maar werkt niet

<FORM METHOD="post" ACTION="verwerk.php">
<SELECT NAME="choice">
<OPTION VALUE="" SELECTED>------ Maak hier je keuze ------</OPTION>
<OPTION VALUE="A">paard</OPTION>
<OPTION VALUE="B">plaats</OPTION>
<OPTION VALUE="C">pikeur</OPTION>
<OPTION VALUE="D">prijzengeld</OPTION>
<OPTION VALUE="E">afstand</OPTION>
<OPTION VALUE="F">aantal deelnemmers</OPTION>
</SELECT>
</FORM>
 
Hij wil niet naar de verwerk pagina gaan een de juiste query uitvoeren, wat hij met
het formulier met radio butom wel doet.

mischien kan je het simpel uitleggen ,anders ga ik wel verder mat lezen in boeken over formulieren
het is me nog niet hellemaal duidelijk
 
Heb je een submit button om het formulier te verzenden? Anders gaat ie inderdaad nergens heen :)
 
Ok het is me gelukt hij werkt goed

het was inderdaad die verzend knop logisch maar je moet het even door hebben.
 
Even over deze query
Hij geeft 3 resultaten hij slaat de eerste over ,hoe kan ik dat veranderen

if ( $_POST['choice'] == 'B' ) {
$commando="select * from paard, plaats, uitslag, paard_uitslag where
plaats = 'Wognum' and
paard.paard_id = paard_uitslag.paard_id and
plaats.plaats_id = paard_uitslag.plaats_id and
uitslag.uitslag_id = paard_uitslag.uitslag_id";
$resultaat=mysql_query($commando);
$array=mysql_fetch_array($resultaat);

while($array=mysql_fetch_array($resultaat)){

echo "Naam: " . $array['naam'] . "<br />";
}
 
Laatst bewerkt:
Ik heb nu eindelijk een werkende query gemaakt die alle vier de paarden weergeeft,
Alleen ik ik krijg het niet voor elkaar op hem via het formulier op te roepen.

dit is het werkende gedeelte

$sql = "select * from paard, plaats, uitslag, paard_uitslag where
plaats = 'wateringen' and
paard.paard_id =paard_uitslag.paard_id and
plaats.plaats_id = paard_uitslag.plaats_id and
uitslag.uitslag_id = paard_uitslag.uitslag_id";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "<tr><td><br /><br />" . $row[""] . $row["naam"] . "</td><br />
<td> " . $row[""] . "</td></tr>\n";
echo "<tr><td colspan='2'>" . $row["uitslag"] . "</td></tr>\n";

}

en ik gebruik dit formulier(hier even zonder verzend knop maar dit zit er bij mijn wel op)

<FORM METHOD="post" ACTION="verwerk.php">
<SELECT NAME="choice">
<OPTION VALUE="" SELECTED>------ Maak hier je keuze ------</OPTION>
<OPTION VALUE="A">paard</OPTION>
<OPTION VALUE="B">plaats</OPTION>
<OPTION VALUE="C">pikeur</OPTION>
<OPTION VALUE="D">prijzengeld</OPTION>
<OPTION VALUE="E">afstand</OPTION>
<OPTION VALUE="F">aantal deelnemmers</OPTION>
</SELECT>
</FORM>



ik heb dit er al voor gezet maar werk echt niet

if ( $_POST['choice'] == 'C' ) {
$commando=" enz
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan