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?
Door bijvoorbeeld <a href="/?doe=iets">...</a> toe te voegen voor een link. Wat bedoel je met "verdere query"? Wat moet die query doen?
"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.
laat eens zien hoe je die "Piet", "Pien" en "Pimelda" ophaalt?

<html>
<body>
<?php      
$database ="test";     
$server ="localhost";     
$user ="root";     
$wachtwoord ="";     
mysql_connect($server,$user, $wachtwoord);      
mysql_select_db($database);       
if(!$_GET['submit'])      
 {        
?>             
<form  method="get">         
Naam:         
<input type="text" name="naam">        
<br>    
<br>  
 <!--RR Hoewel hij submit met enter, kun je de knoppen niet weglaten-->      
<input type="submit" value="Verstuur" name="submit">        
<input type="Reset" name="Reset"> </form>      
</html>        
<?php       
}        
else        
{        
$naam =$_GET['naam'];          
$select2 = "SELECT DISTINCT Ruiter FROM UitslagenRR 
WHERE  Ruiter LIKE'%$naam%'"; 
 $sql3 = mysql_query($select2) or die (mysql_error());   
       print "<table width=300 bordercolor=black border=1>  
<tr bgcolor=gray><td>Paard</td><td>Ruiter<td></tr>";  
while ($gegeven = mysql_fetch_object($sql3)) {  
print "<tr><td>$gegeven->Ruiter</td></tr> ";  
}   
print "</table>";  
}  
?>
 
</body>
</html>


heb de boel een klein beetje verdeeld over een paar bestandjes

mysqlstart.php:

<?php

$database ="test";     
$server ="localhost";     
$user ="root";     
$wachtwoord ="";

if(!mysql_connect($server,$user, $wachtwoord))
	echo 'Ik kon geen verbinding met de database maken.';
	
if(!mysql_select_db($database))
	echo 'database '.$database.' niet gevonden.';

?>


index.php:

<?php

include_once 'mysqlstart.php';

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
	if(isset($_POST['naam']))
		header('Location: showfound.php?name=' .urlencode($_POST['naam']));
}

?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>zoeken</title>
</head>
<body>
    <form action="" method="post"> 
        Naam: <input type="text" name="naam"> 
        <br> 
        <br> 
        <!--RR Hoewel hij submit met enter, kun je de knoppen niet weglaten--> 
        <input type="submit" value="Verstuur" name="submit"> 
        <input type="Reset" name="Reset">
    </form> 
</html> 
</body>
</html>


showfound.php:

<?php

include_once 'mysqlstart.php';

if(isset($_GET['naam']))
{
       
	$query = "SELECT DISTINCT id, Ruiter FROM UitslagenRR WHERE Ruiter LIKE'%".$_GET['naam']."%'"; 
	$result = mysql_query($query) or die (mysql_error());   
}   
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>

<body>
<table width=300 bordercolor=black border=1>
	<tr bgcolor=gray>
    	<td>Paard</td>
        <td>Ruiter<td>
    </tr>
<?php
	while ($row = mysql_fetch_object($result))
		echo '<tr><td><a href="showone.php?id=' . $row->id . '">' . $row->Ruiter . '</a></td></tr>';  
?>
</table>
</body>
</html>


[b]showone.php:

<?php

include_once 'mysqlstart.php';

if(isset($_GET['id']))
{
       
	$query = "SELECT * FROM UitslagenRR WHERE id=" . $_GET['id']; 
	$result = mysql_query($query) or die (mysql_error());   
	$row = mysql_fetch_object($result);
}   
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>

<body>
id: <?php echo $row->id; ?><br>
ruiter: <?php echo $row->Ruiter; ?>
</body>
</html>



[/code]
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>



Let wel op: Alles is lek. Er zit geen beveiliging in.

Reageren