Avatar billede ej147 Nybegynder
05. oktober 2014 - 18:32 Der er 10 kommentarer og
1 løsning

Det fundne antal i PHP script.

Er der mon en af jer, der kan hjælpe med dette php script.
Jeg bruger det på min side her www.zerious.dk - Slægtsforskning - Navneopslag Test og det fungerer fint.
Man kan søge på enten et helt fornavn eller efternavn - eller dele deraf og resultatet vises som det skal.
Men det ville jo være en fordel, hvis jeg kunne få indsat en funktion i scriptet, der viser - ikke bare de fundne navne - men også antallet. Er der en af jer, der har løsningen?

<?php
if(isset($_POST['submit']))
{
$query = $_POST['query'];
$min_length = 1;
if(strlen($query) >= $min_length)
{
$query = htmlspecialchars($query);
$query = mysql_real_escape_string($query);
$raw_results =
mysql_query("SELECT * FROM person_st WHERE (`efternavn` LIKE '%".$query."%') OR (`fornavn` LIKE '%".$query."%')");

echo "<table border='0' width='500' align='center' cellpadding='1' cellspacing='1'>";

if(mysql_num_rows($raw_results) > 0)
{ while($results = mysql_fetch_array($raw_results))
{ echo "<tr><td width='125px'>".$results['efternavn']."</td><td>".$results['fornavn']."</td></tr>" ; }}

else{ echo "<tr><td colspan='2' height='20px'>Din søgning gav intet resultat!</td></tr>";
echo "</table>"; }}
else{ echo "Nej, den går ikke, du kan ikke søge på ingenting - skriv mindst $min_length bogstav!"; }}
?>
Avatar billede moddi100 Seniormester
05. oktober 2014 - 19:52 #1
Du anvender faktisk allerede funktionen, som er:
echo mysql_num_rows($raw_results);


Erstat følgende:
if(mysql_num_rows($raw_results) > 0)
{ while($results = mysql_fetch_array($raw_results))
{ echo "<tr><td width='125px'>".$results['efternavn']."</td><td>".$results['fornavn']."</td></tr>" ; }}


Med dette:
if(mysql_num_rows($raw_results) > 0)
{
  echo "Antal resultater: " . mysql_num_rows($raw_results);

  while($results = mysql_fetch_array($raw_results))
{ echo "<tr><td width='125px'>".$results['efternavn']."</td><td>".$results['fornavn']."</td></tr>" ; }}
Avatar billede ej147 Nybegynder
05. oktober 2014 - 20:15 #2
moddi100:
Jo tak, jeg anvender den godt nok, men kunne ikke få koden frem.
Din koden ser ud til at virke perfekt - ingen fejlkode - men resultatet vises ikke på skærmen, hvilket det vel burde gøre, når den står som echo - eller??
Avatar billede ej147 Nybegynder
05. oktober 2014 - 20:17 #3
Undskyld - det var noget vrøvl - resultatet vises fint.
Og tusind tak for hjælpen.
Smider du et svar?
Avatar billede ej147 Nybegynder
05. oktober 2014 - 21:17 #4
ps:
Du skulle vel ikke også kunne fortælle mig, hvordan jeg får resultatet flyttet op til at stå ved siden af Efternavn Fornavn ovenover stregen?
Avatar billede cpufan Juniormester
06. oktober 2014 - 02:59 #5
så skal du bare lige flytte det ind i tabellen

if(mysql_num_rows($raw_results) > 0)
{
  echo "<tr><td></td><td>Antal resultater: " . mysql_num_rows($raw_results)."</td></tr>";

  while($results = mysql_fetch_array($raw_results))
{ echo "<tr><td width='125px'>".$results['efternavn']."</td><td>".$results['fornavn']."</td></tr>" ; }}
Avatar billede ej147 Nybegynder
06. oktober 2014 - 03:08 #6
Tak for forslaget - jeg prøver og vender tilbage :-)
Avatar billede ej147 Nybegynder
06. oktober 2014 - 03:12 #7
Jeg kan godt se det virker - fint - men kan jeg flytte det ind i en div og få det til at virke der?
Har prøvet adskillige gange, men....
Avatar billede ej147 Nybegynder
06. oktober 2014 - 04:16 #8
moddi100 - cpufan:
Tusind tak for jeres hjælp.
Er der nogen der vil sende et svar, så tråden kan blive lukket.
Avatar billede moddi100 Seniormester
06. oktober 2014 - 20:47 #9
Med en selvstændig DIV er hele løsningen



<?php
if(isset($_POST['submit']))
{
$query = $_POST['query'];
$min_length = 1;
if(strlen($query) >= $min_length)
{
$query = htmlspecialchars($query);
$query = mysql_real_escape_string($query);
$raw_results =
mysql_query("SELECT * FROM person_st WHERE (`efternavn` LIKE '%".$query."%') OR (`fornavn` LIKE '%".$query."%')");

// Ændringen kommer her

echo "<div style='border: 1px solid red'>";
echo "Antal resultater: " . mysql_num_rows($raw_results);
echo "</div>";

// Og din tabel udskrives ligesom originalt i din kode

echo "<table border='0' width='500' align='center' cellpadding='1' cellspacing='1'>";

if(mysql_num_rows($raw_results) > 0)
{
  while($results = mysql_fetch_array($raw_results))
  {
      echo "<tr><td width='125px'>".$results['efternavn']."</td><td>".$results['fornavn']."</td></tr>" ;
  }
}
else{ echo "<tr><td colspan='2' height='20px'>Din søgning gav intet resultat!</td></tr>";
echo "</table>"; }}
else{ echo "Nej, den går ikke, du kan ikke søge på ingenting - skriv mindst $min_length bogstav!"; }}
Avatar billede ej147 Nybegynder
06. oktober 2014 - 21:05 #10
Perfekt - tusind tak for din hjælp.
Og point afgivet :-)
Avatar billede moddi100 Seniormester
06. oktober 2014 - 21:15 #11
Så lidt :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester