Avatar billede jonatanharring Nybegynder
30. november 2008 - 20:16 Der er 12 kommentarer og
1 løsning

Søgefunktion fejl php

Hej!
Jeg havde en oprindeligt et Frac.dk webhotel, men har nu skiftet til One.com.
På min side var en søgefunktion i PHP, mysql, som virkede fint på mit Frac webhotel, men desværre ikke virker mere nu når jeg har flyttet det over til one.com.
Jeg har på fornemmelsen af et har noget med deres version af PHP (http://one-docs.com/php5/) at gøre.
Det kunne måske tænkes at de ikke understøtter funktion PHP_SELF, som jeg bruger i min formel?
I bedes venligst guide mig til hvordan jeg så skal lave en søgefunktion, skal det gøres i 2 filer, så action i formel skal hedde action="side.php" i stedet for PHP_SELF??
- Jeg er IKKE særligt trænet i PHP, så jeg skal muligvis have det mere eller mindre skåret ud i pap... TAK FOR HJÆLPEN!


- Der sker intet når trykker søg..

KODEN TIL MIN SØGEFUNKTION:

include("config.php");

if($tekst_soeg){
$hent = mysql_query("SELECT dato, forfatter, sporg, id FROM forum WHERE sporg LIKE '%$tekst_soeg%' OR forfatter LIKE '%$tekst_soeg%' ORDER BY dato DESC");
echo "<b>Search results:</b>";
while($vis = mysql_fetch_array($hent)){
echo "<table width=\"350\" bgcolor=\"#e4ecff\" cellspacing=\"1\"><tr><td>";
echo "$vis[sporg]";
echo "<br/><br/><i>";
echo $vis[forfatter];
echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
echo $vis[dato];
echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
echo "<font color=\"#3f74ec\"><a href=\"read.php?id=$vis[id]\">Comments(";

$antal = mysql_query("SELECT COUNT(*) AS antal FROM forum_svar WHERE nr = '$vis[id]'") or die(mysql_error());
echo mysql_result($antal, 0);
echo ")</a></font></i></td></tr></table><br/><br/>";
}
echo "<br/>No results? - <a href=\"search.php\">New search!</a>";
} else {
?>
<?
echo "<b>Search all confessions</b><br/>;"
echo "<form action='".$_SERVER['PHP_SELF']."' method=post>";
echo "<input type=text name=tekst_soeg><br>";
echo "<input type=submit value=Search for confession>";
echo "</form>";
Avatar billede themaster Nybegynder
30. november 2008 - 20:42 #1
du kan ændre $_SERVER['PHP_SELF'] til $_SERVER['SCRIPT_NAME'] - så skulle det virke.

så kommer din form til at se sådan ud:

echo "<b>Search all confessions</b><br/>;"
echo "<form action='".$_SERVER['SCRIPT_NAME']."' method=post>";


se evt http://php.about.com/od/learnphp/qt/_SERVER_PHP.htm
echo "<input type=text name=tekst_soeg><br>";
echo "<input type=submit value=Search for confession>";
echo "</form>";
Avatar billede dkfire Nybegynder
30. november 2008 - 20:45 #2
Hmmm tror nu mere problemet ligger i register_global problem

Prøv at erstat $tekst_soeg med $_POST['tekst_soeg']
Avatar billede dkfire Nybegynder
30. november 2008 - 20:46 #3
eller måske bare tilføje øverst:
$tekst_soeg = $_POST['tekst_soeg'];
Avatar billede themaster Nybegynder
30. november 2008 - 20:47 #4
dkfire > også en mulighed. Det er jo one ;-)
Avatar billede jonatanharring Nybegynder
30. november 2008 - 20:57 #5
hmm.. siden siger: The website cannot display the page  :(
Avatar billede jonatanharring Nybegynder
30. november 2008 - 21:04 #6
jeres forslag ændrer desværre intet
Avatar billede dkfire Nybegynder
30. november 2008 - 22:56 #7
Nu har du jo heller ikke vist os hele din kode, så måske er der mere galt.
Avatar billede jonatanharring Nybegynder
01. december 2008 - 18:08 #8
har altså en ide om at der er fordi at one.com's php-version ikke kan forstå udtrykket php_self! er der noget man kan gøre ved det / gøre anderledes?
Avatar billede dkfire Nybegynder
01. december 2008 - 18:28 #9
Om one.com har sat deres server til $_SERVER['php_self'] gør ingen forskel i forhold til din kode.
Men prøv at vise os din kode som den er nu, med de ændringer som her foreslået.
Avatar billede jonatanharring Nybegynder
01. december 2008 - 18:42 #10
Allright..! Jeg ville være yderst taknemmelig hvis du [dkfire] vil rette fejlene i koden, for den reagerer virkeligt underligt .. lige pt. vil den ingen gang vise siden (page not found) - det skyldes fejl i koden! .. jeg har prøvet at sætte en del forskellige koder sammen for at lave en søgefunktion men lige meget hjælper det - og når man trykker 'søg' siger den intet - det er som om den ikke registrer man trykker 'søg'.. kort sagt: vil du venligst fikse koden her, så kan jeg smide den på ftp. og give en tilbage melding om den virker. (ps. jeg skal have det skåret ud i P A P). På forhånd: TAK DKFIRE!

<?
$title = 'xxx;
include 'top.html';
?>
<?
include("config.php");

if($tekst_soeg){
$hent = mysql_query("SELECT dato, forfatter, sporg, id FROM forum WHERE sporg LIKE '%$tekst_soeg%' OR forfatter LIKE '%$tekst_soeg%' ORDER BY dato DESC");
echo "<b>Search results:</b>";
while($vis = mysql_fetch_array($hent)){
echo "<table width=\"350\" bgcolor=\"#e4ecff\" cellspacing=\"1\"><tr><td>";
echo "$vis[sporg]";
echo "<br/><br/><i>";
echo $vis[forfatter];
echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
echo $vis[dato];
echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
echo "<font color=\"#3f74ec\"><a href=\"read.php?id=$vis[id]\">Comments(";

$antal = mysql_query("SELECT COUNT(*) AS antal FROM forum_svar WHERE nr = '$vis[id]'") or die(mysql_error());
echo mysql_result($antal, 0);
echo ")</a></font></i></td></tr></table><br/><br/>";
}
echo "<br/>No results? - <a href=\"search.php\">New search!</a>";
} else {
?>
<form method="post" action="<? $_SERVER['php_self'] ?>">
<input type="text" name="tekst_soeg">
<input type="submit" value="Search all confession">
</form>
<?
}
?>
<?
include('bund.html');
?>
Avatar billede dkfire Nybegynder
01. december 2008 - 18:57 #11
Prøv med denne her kode :
<?php

include("config.php");
$title = 'xxx';
include('top.html');

if(isset($_POST['tekst_soeg'])){
    $tekst_soeg = $_POST['tekst_soeg'];
    $sql_hent = "SELECT dato, forfatter, sporg, id FROM forum WHERE sporg LIKE '%$tekst_soeg%' OR forfatter LIKE '%$tekst_soeg%' ORDER BY dato DESC";
    $hent = mysql_query($sql_hent) or die(mysql_error());
    if($hent && (mysql_num_rows($hent) > 0)){
        echo "<b>Search results:</b>";
        echo "<table width=\"350\" bgcolor=\"#e4ecff\" cellspacing=\"1\">";
        while($vis = mysql_fetch_array($hent)){
            echo "<tr><td>";
            echo $vis['sporg'];
            echo "<br/><br/><i>";
            echo $vis['forfatter'];
            echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
            echo $vis['dato'];
            echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
            echo "<font color=\"#3f74ec\"><a href=\"read.php?id=$vis[id]\">Comments(";
            $antal = mysql_query("SELECT COUNT(*) AS antal FROM forum_svar WHERE nr = '{$vis['id']}'") or die(mysql_error());
            echo mysql_result($antal, 0);
            echo ")</a></font></i></td></tr>";
        }
        echo '</table>';
    }else
        echo "<br/>No results? - <a href=\"search.php\">New search!</a>";
} else {
?>
<form method="post" action="<?php echo $_SERVER['php_self']; ?>">
<input type="text" name="tekst_soeg">
<input type="submit" value="Search all confession">
</form>
<?php
}

include('bund.html');
?>

Hvis du oplever nogle fejl, så skriv dem her.
Avatar billede jonatanharring Nybegynder
01. december 2008 - 19:20 #12
Nu virker det!!! Tusinde tak dk-fire..!
EN sidste lille ting: er du flink at gøre således at hvis man intet indtaster i søgeboksen og trykker 'søg' så bliver alle resultater ikke vist?

ps: lav svar :)
Avatar billede dkfire Nybegynder
01. december 2008 - 19:37 #13
<?php

include("config.php");
$title = 'xxx';
include('top.html');

if(isset($_POST['tekst_soeg']) && !empty($_POST['tekst_soeg'])){
    $tekst_soeg = $_POST['tekst_soeg'];
    $sql_hent = "SELECT dato, forfatter, sporg, id FROM forum WHERE sporg LIKE '%$tekst_soeg%' OR forfatter LIKE '%$tekst_soeg%' ORDER BY dato DESC";
    $hent = mysql_query($sql_hent) or die(mysql_error());
    if($hent && (mysql_num_rows($hent) > 0)){
        echo "<b>Search results:</b>";
        echo "<table width=\"350\" bgcolor=\"#e4ecff\" cellspacing=\"1\">";
        while($vis = mysql_fetch_array($hent)){
            echo "<tr><td>";
            echo $vis['sporg'];
            echo "<br/><br/><i>";
            echo $vis['forfatter'];
            echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
            echo $vis['dato'];
            echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
            echo "<font color=\"#3f74ec\"><a href=\"read.php?id=$vis[id]\">Comments(";
            $antal = mysql_query("SELECT COUNT(*) AS antal FROM forum_svar WHERE nr = '{$vis['id']}'") or die(mysql_error());
            echo mysql_result($antal, 0);
            echo ")</a></font></i></td></tr>";
        }
        echo '</table>';
    }else
        echo "<br/>No results? - <a href=\"search.php\">New search!</a>";
} else {
?>
<form method="post" action="<?php echo $_SERVER['php_self']; ?>">
<input type="text" name="tekst_soeg">
<input type="submit" value="Search all confession">
</form>
<?php
}

include('bund.html');
?>
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