Door
Rein Duijts
op 13-12-2013 22:55
gewijzigd op 14-12-2013 01:06
1.113 views
Ik ben een beginner in PHP/MYSQL.
Iemand zoekt op de webpagina in de database op veld naam naar de records die daarbij horen. Dat kan mooi met een SQL LIKE en DISTINCT en daar rollen een variabel aantal namen uit.
Hoe maak je die nu in HTML/PHP/MYSQL aanklikbaar voor een verdere query?
"pi" leverde in de database "Piet", "Pien" en "Pimelda" op. "Pimelda" was degene die gezocht werd. Nu moet bij klikken op "Pimelda" alle gegevens van haar uit de database tevoorschijn gehaald worden, dus een nieuwe query. Dus er moeten in dit geval drie knoppen komen.
Goh! Ik ben onder indruk,Frank Nietbelangrijk, wat een werk! Bedankt!!
Ik had dit op het forum gezet om wat suggesties te krijgen om verder te gaan zoeken. Maar ik krijg nu een complete oplossing!
Goed, op de late avond, krijg ik hem nog niet werkend, maar ik zal hier nog mijn vorderingen melden, en dat het gaat lukken lijkt nu zeker.
Het is me gelukt, zonder me heel ver in php t hoeven verdiepen, met veel knip en plak werk.
De basis van het programma:
1. iemand geeft (een deel van) de naam ruiter
2. in pag 2 worden alle combinaties ruiter paard weergegeven op knoppen, bij klikken wordt de combinatie ruiter/paard doorgegeven aan pag 3
3. hier wordt een lijst van wedstrijdresultaten gegeven.
pag 1 Binnenhalen text.
<?php
/* Hier wordt alleen - een gedeelte van de zoekterm - voor de ruiter ingegeven */
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(isset($_POST['naam']))
header('Location: gettest2I.php?name=' .urlencode($_POST['naam']));
}
?>
<html>
<head>
<meta charset="utf-8">
<title>zoeken</title>
</head>
Tik (een gedeelte van) de naam van de ruiter in
<body>
<form action="" method="post">
Ruiter: <input type="text" name="naam">
<!--RR Hoewel hij submit met enter, kun je de knop niet weglaten: >
<input type="submit" value="Verstuur" name="submit">
</form>
</body>
</html>
Nu pag2. Het grote probleem was om 2 variabelen door te geven naar de volgende, maar dan met 1 button, na verschillende vruchteloze pogingen om het url met 2 variabelen op te tuigen, besloten om het te zoeken in stringfuncties om een variabele uit elkaar te halen. Scheidingsteken was '_'.
pag2:
<html>
<head>
<meta charset="utf-8">
<title>zoeken</title>
</head>
<body>
Klik op de combinatie om de wedstrijden te zien.
<?php
/* Met de zoek term ruiter, wordt de ruiter, met de paarden waarop hij wedstrijden gereden heeft opgehaald. Het resultaat wordt in een lijst knoppen weergegeven met de tekst ruiter - paard op de knop. Door op een knop te drukken, worden alle wedstrijd resultaten in het volgende scherm getoond.*/
include_once 'mysqlstart.php';
$naam=$_GET['name'];
$select2 = "SELECT distinct Ruiter,Paard FROM UitslagenRR
WHERE Ruiter LIKE'%$naam%' ORDER BY Ruiter";
$sql3 = mysql_query($select2) or die (mysql_error());
/* nu wilde ik eindelijk van die tabel af*/
while ($gegeven = mysql_fetch_object($sql3)) {
/*Nu moet knopklikken alee wedstrijden van de combinatie opleveren, velden Locatie, Ritcode,Klasse,Afstand, Plaats, Gemiddelde_snelheid_na_Correctie, Afkeuringscode_rr*/
?>
<FORM NAME ="form1" METHOD ="GET " ACTION = "gettest3I.php">
<!-- hoe kun je nu 2 variablen doorgeven in de url -->
<INPUT TYPE = "Submit" Name ="ruiter" VALUE = "<?php echo"$gegeven->Ruiter".'_'."$gegeven->Paard"?>">
</FORM>
<?php
}
?>
</body>
</html>
Tja een beetje rare constructie, die laatste accolade in php tags, maar ja, het werkte.
pag3: het uitelkaar halen van de variabelen, en een tabel laten zien.
<html>
<head>
<meta charset="utf-8">
<title>resultaat</title>
</head>
Resultaat
<?php
/* een tabel van de wedstrijdresultaten wordt getoond, ingevoerd wordt het veld "ruiter", maar dat is ruiter paard dat door wat string functies uitelkaar gehaald wordt. */
include_once 'mysqlstart.php';
$ruiterpaard=$_GET["ruiter"];
echo "$ruiterpaard";
$ruiter=strstr($ruiterpaard,'_',true);
$paard=strstr($ruiterpaard,'_',false);
$paard=substr($paard,1);
$select = "SELECT Locatie, Ritcode,Klasse,Afstand,Plaats,Gemiddelde_snelheid_Totaal FROM UitslagenRR
WHERE Ruiter='$ruiter' AND Paard='$paard'";
$sql3 = mysql_query($select) or die(mysql_error());
/* Dit geeft een resource id */
print "<table width=700 bordercolor=black border=1>
<tr bgcolor=gray><td>Locatie</td><td>Ritcode</td><td>Klasse</td><td>Afstand</td><td>Plaats</td><td>Gem snelh</td></tr>";
/* we printen het begin van de tabel */
/* nu resource id omzetten */
while ($gegeven = mysql_fetch_object($sql3)) {
$gemsnelh=substr($gegeven->Gemiddelde_snelheid_Totaal, 0,5);
print "<tr><td>$gegeven->Locatie</td><td>$gegeven->Ritcode</td><td>$gegeven->Klasse</td><td>$gegeven->Afstand</td><td>$gegeven->Plaats</td><td>$gemsnelh</td></tr> ";
}
print "</table>";
?>
</html>