webForumDet fria alternativet

Sökfunktion i PHP och MySQL

2 svar · 342 visningar · startad av Blockqoute

BlockqouteMedlem sedan dec. 200380 inlägg
#1

Jag håller på med en sida som sparar hockeystatistik för användarna. Nu vill jag ha en sökfunktion där man kan söka på fler olika saker, som t.ex. användarnamn, förnamn, efternamn m.m. Resultatet skall sedan presenteras i en lista över användare där användarnamnet skall vara en länk. Detta har jag lyckats få till på så sätt som nedan:

<?php 
session_start(); // Alltid överst på sidan 
 
// Kolla om inloggad = sessionen satt 
if(!isset($_SESSION['sess_user'])){ 
header("Location: innehall.php"); 
}else{ 
$username=$_SESSION['sess_user']; 
$userid=$_SESSION['sess_id']; 
$userpos=$_SESSION['sess_poss']; 
} 
 
include("conn.php"); 
 
if (isset($_POST['submit'])){ 
echo "<table width=950>"; 
echo "<tr><td width=140 bgcolor='#eeeeee'><b>Användarnamn:</b></td>"; 
echo "<td width=140 bgcolor='#D4D7DA'><b>Förnamn:</b></td>"; 
echo "<td width=140 bgcolor='#eeeeee'><b>Efternamn:</b></td>"; 
echo "<td width=200 bgcolor='#D4D7DA'><b>E-post:</b></td>"; 
echo "<td width=50 bgcolor='#eeeeee'><b>Ålder:</b></td>"; 
echo "<td width=70 bgcolor='#D4D7DA'><b>Position:</b></td>"; 
echo "<td width=140 bgcolor='#eeeeee'><b>Lagnamn:</b></td>"; 
echo "<td width=25 bgcolor='#D4D7DA'><b>Nr:</b></td>"; 
echo "</table>"; 
 
$sql="SELECT * FROM members WHERE user='$user' OR fornamn='$fornamn' OR efternamn='$efternamn' OR email='$email' OR alder='$alder' OR position='$position' OR lagnamn='$lagnamn' OR nummer='$nummer'"; 
$res = mysql_query($sql); 
while($rad=mysql_fetch_array($res)){ 
echo "<table width=950>"; 
echo "<tr><td width=140 bgcolor='#eeeeee'><a href=\"filnamn.php?userid=".$userid."\">".$rad['user']."</a></td>"; 
echo "<td width=140 bgcolor='#D4D7DA'>".$rad['fornamn']."</td>"; 
echo "<td width=140 bgcolor='#eeeeee'>".$rad['efternamn']."</td>"; 
echo "<td width=200 bgcolor='#D4D7DA'>".$rad['email']."</td>"; 
echo "<td width=50 bgcolor='#eeeeee'>".$rad['alder']."</td>"; 
echo "<td width=70 bgcolor='#D4D7DA'>".$rad['position']."</td>"; 
echo "<td width=140 bgcolor='#eeeeee'>".$rad['lagnamn']."</td>"; 
echo "<td width=25 bgcolor='#D4D7DA'>".$rad['nummer']."</td>"; 
} 
} 
?> 
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
 
<html> 
<head> 
<title>Sök</title> 
</head> 
<body bgcolor="#BBBBBB"> 
 
<form action="sok.php" method="post"> 
<table> 
<br> 
<tr><td bgcolor="#eeeeee">Användarnamn:</td><td bgcolor="#D4D7DA">Ålder:</td></tr> 
<tr><td bgcolor="#eeeeee"><input type="text" name="user"></td><td bgcolor="#D4D7DA"><input type="text" name="alder"></td></tr> 
<tr><td bgcolor="#D4D7DA">Förnamn:</td><td bgcolor="#eeeeee">Position:</td></tr> 
<tr><td bgcolor="#D4D7DA"><input type="text" name="fornamn"></td><td bgcolor="#eeeeee"><select name="position"> 
     <option value=""></option> 
      <option value="malvakt">Målvakt</option> 
      <option value="malvakt">Back</option> 
      <option value="center">Center</option> 
      <option value="forward">Forward</option> 
   </select></td></tr> 
<tr><td bgcolor="#eeeeee">Efternamn:</td><td bgcolor="#D4D7DA">Lagnamn:</td></tr> 
<tr><td bgcolor="#eeeeee"><input type="text" name="efternamn"></td><td bgcolor="#D4D7DA"><input type="text" name="lagnamn"></td></tr> 
<tr><td bgcolor="#D4D7DA">E-post:</td><td bgcolor="#eeeeee">Nummer:</td></tr> 
<tr><td bgcolor="#D4D7DA"><input type="text" name="email"></td><td bgcolor="#eeeeee"><input type="text" name="nummer"></td></tr> 
<tr><td><input type="submit" name="submit" value="Sök"></td></tr> 
</table> 
</from> 
 
</body> 
</html>

Problemet jag har är att jag vill att om man klickar på länken så skall man komma vidare så att man ser denna användarens sammanlagda statistik. Hur gör jag detta som?

Om det är till någon hjälp så ser tabellen med användare ut som följer:

CREATE TABLE `members` ( 
  `id` int(11) NOT NULL auto_increment, 
  `fornamn` varchar(30) NOT NULL default '', 
  `efternamn` varchar(30) NOT NULL default '', 
  `user` varchar(30) NOT NULL default '', 
  `pass` varchar(30) NOT NULL default '', 
  `email` varchar(50) NOT NULL default '', 
  `alder` int(3) NOT NULL default '0', 
  `position` varchar(10) NOT NULL default '', 
  `lagnamn` varchar(30) NOT NULL default '', 
  `nummer` char(3) NOT NULL default '', 
  PRIMARY KEY  (`id`) 
) TYPE=MyISAM AUTO_INCREMENT=21 ;

Och tabellen därifrån statistiken skall hämtas:

CREATE TABLE `malvakt` ( 
  `id` int(11) NOT NULL auto_increment, 
  `PersonID` int(11) NOT NULL default '0', 
  `datum` date NOT NULL default '0000-00-00', 
  `hemmalag` varchar(30) NOT NULL default '', 
  `bortalag` varchar(30) NOT NULL default '', 
  `hemmamal` mediumint(9) NOT NULL default '0', 
  `bortamal` mediumint(9) NOT NULL default '0', 
  `minuter` int(11) NOT NULL default '0', 
  `skott` int(11) NOT NULL default '0', 
  `inslappta` int(11) NOT NULL default '0', 
  `utvisning` int(11) NOT NULL default '0', 
  PRIMARY KEY  (`id`) 
) TYPE=MyISAM AUTO_INCREMENT=23 ;
BlockqouteMedlem sedan dec. 200380 inlägg
#2

Finns det verkligen ingen som kan hjälpa mig med detta?

PeddaMedlem sedan juni 20006 032 inlägg
#3

Antar att PersonID är referens till id i members tabellen?

Då är det ju bara att du hämtar informationen i filnamn.php från malvakt tabellen

SELECT * FROM malvakt WHERE PersonID='{$_GET['userid']}'

och sen skriver ut det du vill från tabellen.
Eller är det något jag har missuppfattat?

132 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)