Skrevet lør. d. 02. oktober 2004 kl. 21:58:02| #1
Her kommer et virkeligt simpelt eksempel.
search.html:
<FORM METHOD="POST" ACTION="show.php">
F2: <INPUT TYPE="TEXT" NAME="F2">
<BR/>
<INPUT TYPE ="SUBMIT" VALUE="Søg">
</FORM>
show.php:
<?php
$con = mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("Test") or die(mysql_error());
?>
<table border="1">
<tr>
<th>F1</th>
<th>F2</th>
</tr>
<?php
$f2 = $_POST["F2"];
$rs = mysql_query("SELECT * FROM T1 WHERE F2 LIKE '%$f2%'") or die(mysql_error());
while ($row = mysql_fetch_array($rs, MYSQL_ASSOC)) {
print "<tr>\n";
print "<td>" . $row["F1"] . "</td>\n";
print "<td>" . $row["F2"] . "</td>\n";
print "</tr>\n";
}
mysql_free_result($rs);
?>
</table>
<?php
mysql_close($con);
?>
Der er en tabel T1 med 2 felter F1 og F2. I søge formen angiver man en streng
og PHP siden viser alle rækker hvor den søgestreng er i F2.
Det kan gøres meget mere avanceret. Men det er da en start.
Skrevet lør. d. 02. oktober 2004 kl. 22:02:37| #2
Noget i den her retning. Skal den søge efter noget, eller skal d bare ha en bestemt række med et bestemt id ?
<form method="get" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
ID:<br>
<input type="text" name="id"><br>
<input type="submit">
</form>
<?php
if (isset($_GET["search"])) {
mysql_connect("server", "brugernavn", "kodeord");
mysql_select_db("database");
$query = mysql_query("SELECT * FROM medlemmer WHERE id = '".$_GET["id"]."'");
$antal = mysql_num_rows($query);
if ($antal > 0) {
while ($row = mysql_fetch_array($query)) {
echo $row["felt1"]." - ".$row["felt2"]."<br>";
}
}
}
?>
Skrevet lør. d. 02. oktober 2004 kl. 22:05:43| #3
vil lige prøve begge.
hindu> det skal bare være sådan, at hvis jeg eksempelvis har 100 forskellige ID i min db og jeg skriver 3 id søgefeltet, så viser den række 3 og ikke andet ..
Skrevet lør. d. 02. oktober 2004 kl. 22:07:47| #4
Ok, så havde jeg forstået det rigtigt
Arne's laver en rigtig søgning, hvor min udgave blot vælger en række, hvor id = det indtastede
Skrevet lør. d. 02. oktober 2004 kl. 22:08:05| #5
Så måske er søgefunktion overflødig hvis man eksempelvis kan lave en form for SHOW?
Skrevet lør. d. 02. oktober 2004 kl. 22:11:48| #6
Du kan jo prøve at fortælle hvad du vil lave, så kan det være vi kan lave en bedre løsning.
Måske vil du hellere ha listet alle navne, og så når du trykker på et navn, så får du alle oplysninger om den person
Skrevet lør. d. 02. oktober 2004 kl. 22:13:19| #7
Se :) det var faktisk det jeg oprindeligt helst ville have, men tænkte at det nok var for kompliceret til at nogen gad bruge tid på at hjælpe.. :)
Skrevet lør. d. 02. oktober 2004 kl. 22:19:55| #8
Her er en letter tilrettet version af min kode.
showall.php:
<?php
$con = mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("Test") or die(mysql_error());
?>
<table border="1">
<tr>
<th>F1</th>
</tr>
<?php
$rs = mysql_query("SELECT * FROM T1") or die(mysql_error());
while ($row = mysql_fetch_array($rs, MYSQL_ASSOC)) {
print "<tr>\n";
print "<td><a href='showone?F1=" . $row["F1"] . "'>" . $row["F1"] . "</a></td>\n";
print "</tr>\n";
}
mysql_free_result($rs);
?>
</table>
<?php
mysql_close($con);
?>
showone.php:
<?php
$con = mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("Test") or die(mysql_error());
?>
<table border="1">
<tr>
<th>F1</th>
<th>F2</th>
</tr>
<?php
$f1 = $_GET["F1"];
$rs = mysql_query("SELECT * FROM T1 WHERE F1=$f1") or die(mysql_error());
while ($row = mysql_fetch_array($rs, MYSQL_ASSOC)) {
print "<tr>\n";
print "<td>" . $row["F1"] . "</td>\n";
print "<td>" . $row["F2"] . "</td>\n";
print "</tr>\n";
}
mysql_free_result($rs);
?>
</table>
<?php
mysql_close($con);
?>
Skrevet lør. d. 02. oktober 2004 kl. 22:20:43| #9
showall.php viser første felt og alle rækker, når man klikker på en værdi
så åbner den showone.php som viser alle felter for den række.
Skrevet lør. d. 02. oktober 2004 kl. 22:23:12| #10
show.php
<?php
mysql_connect("server", "brugernavn", "kodeord");
mysql_select_db("database");
$query = mysql_query("SELECT id, navn FROM medlemmer ORDER BY navn ASC");
while ($row = mysql_fetch_array($query)) {
echo "<a href=\"show_member.php?id=".$row["id"]."\">".$row["navn"]."</a><br>";
}
?>
show_member.php
<?php
if (isset($_GET["id"])) {
mysql_connect("server", "brugernavn", "kodeord");
mysql_select_db("database");
$query = mysql_query("SELECT * FROM medlemmer WHERE id = '".$_GET["id"]."'");
if (mysql_num_rows($query) == '1') {
while ($row = mysql_fetch_array($query)) {
echo $row["navn"]." - ".$row["andenfelt"];
}
} else {
echo "Ugyldig forespørgelse!";
}
} else {
echo "Der er ikke valgt et ID!";
}
?>
Skrevet lør. d. 02. oktober 2004 kl. 22:24:47| #11
hej Arne, i din showone har man ikke mulighed for at indtaste et nummer og den så finder og viser posten vel?
Skrevet lør. d. 02. oktober 2004 kl. 22:25:55| #12
ahh nu giver det mere mening :) vil lige prøve at lege med de to ... takker indtil videre :)
Skrevet lør. d. 02. oktober 2004 kl. 22:26:51| #13
show one kan kaldes manuelt med:
showone.php?F1=137
Skrevet lør. d. 02. oktober 2004 kl. 22:26:54| #14
Arne, du er alt for hurtig. Jeg får slet ik set dansk film i fjernsynet ;)
Skrevet lør. d. 02. oktober 2004 kl. 22:41:11| #15
Hindu> nu har jeg lige prøvet din og den kan jeg få til at virke helt perfekt :) Er det muligt at integrere noget alm kode i det her således når man klikker på ID og kommer ind i detaljerne, så kommer det frem pænt struktureret, måske i en kasse?? har prøvet lidt forskelligt, men får bare diverse parse errors :)
Skrevet lør. d. 02. oktober 2004 kl. 22:43:02| #16
Du kan lige lave en html box som den skal se ud, og smide koden her, så skal jeg sætte det ind for dig. Der hvor du vil ha udskrevet variabler, der skriver du bare fx $navn, så retter jeg det til
Skrevet lør. d. 02. oktober 2004 kl. 22:53:10| #17
Arne_v <- ville det ikke være en fordel at bruge GET til søgefeltet da du kan kopiere det i browseren?
Skrevet lør. d. 02. oktober 2004 kl. 22:54:49| #18
ok :) men tror du fortryder hurtigt :) har omkring 40 kolonner *GG* anyway idag har jeg et output skema, som jeg faktisk er glad for, som er lavet som en almindelig html fil.
Giver lige en lille bid
__________________________-
<?php
mysql_connect("localhost", "xxxx", "xxx");
mysql_select_db("users");
$sql = mysql_query("SELECT navn, id, tekst FROM medlemmer");
while ($row = mysql_fetch_array($sql)) {
?>
<body bgcolor="#4C6161">
<table width="100%" cellpadding="0">
<tr>
<td width="100%"><div class="headline">ID: <b><?php echo $row["id"]; ?></b> </div></td>
<td rowspan="4" valign="top"></td>
</tr>
<tr>
<td height="1" bgcolor="#000000"></td>
</tr>
<tr><td> </td></tr>
<tr>
<td>
<table width="100%" cellpadding="0">
<tr>
<td height="20"><b>Navn</b></td>
<td width="20"> </td>
<td><?php echo $row["navn"]; ?></td>
</tr>
<tr>
<td height="20"><b>Tekst</b></td>
<td width="20"> </td>
<td><?php echo $row["tekst"]; ?></td>
</tr>
Og så fortsætter den derud af i samme stil :)
Er den mulig at integrere enten den ene vej eller den anden?
Skrevet lør. d. 02. oktober 2004 kl. 22:55:11| #19
Måske.
Måske vil man synes at det er en fordel at man ikke kan se de sendte parametre.
Det afhænger af omstændighederne.
Skrevet lør. d. 02. oktober 2004 kl. 22:58:14| #20
Du sagtens bruge det du har der. Du skal bare lige stoppe php koden inden din html kommer, og så lige huske at slutte while løkken til sidst:
<?php
}
?>
Skrevet lør. d. 02. oktober 2004 kl. 23:05:44| #21
kan det passe den så vil se ca. sådan her ud?
<?php
if (isset($_GET["id"])) {
mysql_connect("localhost", "xxxxx", "xxxxx");
mysql_select_db("xxxxx");
$query = mysql_query("SELECT * FROM medlemmer WHERE id = '".$_GET["id"]."'");
if (mysql_num_rows($query) == '1') {
while ($row = mysql_fetch_array($query)) {
?>
<html>
fyld
<html>
<?php
}
?>
Skrevet lør. d. 02. oktober 2004 kl. 23:07:13| #22
Ja, så udskriver du bare som du har gjort i det andet:
<?php echo $row["feltnavn"]; ?>
Skrevet lør. d. 02. oktober 2004 kl. 23:10:12| #23
se nu giver det mening oppe i hovedet, hvilket jeg er glad for, men på skærmen laver den bøvl *GG* får kostant parse errors på den opsætning..
Skrevet lør. d. 02. oktober 2004 kl. 23:12:46| #24
Skrevet lør. d. 02. oktober 2004 kl. 23:14:22| #25
Parse error: parse error, unexpected $
på en af de sidste linier
Skrevet lør. d. 02. oktober 2004 kl. 23:15:31| #26
for at være helt præcis er den aller sidste linie
?>
Skrevet lør. d. 02. oktober 2004 kl. 23:17:01| #27
Tror du har glemt at lukke en php kode, eller startet en for meget, eller glemt et semikolon
Skrevet lør. d. 02. oktober 2004 kl. 23:22:01| #28
HAHAHA det hjalp at putte det sidste kode på DOOHHHH .. ligger du svar og mange tusind tak :)
Skrevet lør. d. 02. oktober 2004 kl. 23:23:18| #29