webForumDet fria alternativet
Logga in / Bli medlem

Sökfunktion i PHP och MySQL

PHP

2 svar · 342 visningar · startad av Blockqoute

Medlem sedan dec. 200380 inlägg
Trådstart#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 ;
Medlem sedan dec. 200380 inlägg
#2

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

Medlem sedan juni 20006 031 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?

502 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
242 ms — deklarationer (db)
122 ms — hämta statistik (db)
135 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)