Avatar billede donwang Nybegynder
05. juni 2003 - 14:33 Der er 11 kommentarer og
1 løsning

PHP fejl?

Nå, du har jeg selv fået makket en php søgemskine sammen som søger i en mysql db. Men jeg får desværre denne fejl: argument is not a valid MySQL result resource in c:\apache\htdocs\minportal\soeg.php on line 18... Why?

<?php
include("top.php");
?>
<form action='tilfoej.php' method='post'>
<span class='font'>Søg</span><br>
<input type='font' name='soeg' size='16' maxlength='32'>
<input name='reset' type='reset' value='Slet'>
<input name='submit' value='Send' type='submit'>
</form>
<?php
include ( "config.php" );
if($_POST['navn']) {
mysql_query("INSERT INTO portal (beskrivelse,id,navn,url,hits,kat) VALUES ('$_POST[beskrivelse]','id','$_POST[navn]','$_POST[url]','1','$_POST[kat]')") or die(mysql_error());
}
if($_POST['soeg']) {
$resultat = mysql_query("select beskrivelse, id, kat, url, navn, hits from portal where kat like '$soeg' or beskrivelse like '$soeg'");
}
while ($raekke = mysql_fetch_array($resultat)) {
  extract($raekke);
  echo "
    <table width='250' border='0' cellpadding='0' cellspacing='0' bordercolor='#000000'>
    <tr>
      <td height='10' width='250'></td>
  </tr>
  <tr>
        <td align='left' width='100%' valign='middle' bgcolor='#89D63E'><span class='fontfed'><b><a href='$url' target='_blank'>$navn</a></b></span></td>
  </tr>
  <table width='250' border='0' cellpadding='0' cellspacing='0' bordercolor='#000000'>
  <tr>
      <td  width='250' bgcolor='#FFFFFF'><span class='font'>$beskrivelse</span></td>
  </tr>
</table>";
}
?>
<?php
include("bund.php");
?>
Avatar billede schaefner Juniormester
05. juni 2003 - 14:35 #1
Fordi du forsøger at køre din while-løkke før du rent faktisk har trykket på knappen.

<?php
include("top.php");
?>
<form action='tilfoej.php' method='post'>
<span class='font'>Søg</span><br>
<input type='font' name='soeg' size='16' maxlength='32'>
<input name='reset' type='reset' value='Slet'>
<input name='submit' value='Send' type='submit'>
</form>
<?php
include ( "config.php" );
if($_POST['navn']) {
mysql_query("INSERT INTO portal (beskrivelse,id,navn,url,hits,kat) VALUES ('$_POST[beskrivelse]','id','$_POST[navn]','$_POST[url]','1','$_POST[kat]')") or die(mysql_error());
}
if($_POST['soeg']) {
$resultat = mysql_query("select beskrivelse, id, kat, url, navn, hits from portal where kat like '$soeg' or beskrivelse like '$soeg'");
while ($raekke = mysql_fetch_array($resultat)) {
  extract($raekke);
  echo "
    <table width='250' border='0' cellpadding='0' cellspacing='0' bordercolor='#000000'>
    <tr>
      <td height='10' width='250'></td>
  </tr>
  <tr>
        <td align='left' width='100%' valign='middle' bgcolor='#89D63E'><span class='fontfed'><b><a href='$url' target='_blank'>$navn</a></b></span></td>
  </tr>
  <table width='250' border='0' cellpadding='0' cellspacing='0' bordercolor='#000000'>
  <tr>
      <td  width='250' bgcolor='#FFFFFF'><span class='font'>$beskrivelse</span></td>
  </tr>
</table>";
}
}
?>
<?php
include("bund.php");
?>
Avatar billede donwang Nybegynder
05. juni 2003 - 14:50 #2
Opdateret code:

<?php
include("top.php");
?>
<form action='soeg.php' method='post'>
<span class='font'>Søg</span><br>
<input type='font' name='soeg' size='16' maxlength='32'>
<input name='submit' value='Søg' type='submit'>
</form>
<?php
include ( "config.php" );
if($_POST['navn']) {
mysql_query("INSERT INTO portal (beskrivelse,id,navn,url,hits,kat) VALUES ('$_POST[beskrivelse]','id','$_POST[navn]','$_POST[url]','1','$_POST[kat]')") or die(mysql_error());
}
if($_POST['soeg']) {
$resultat = mysql_query("select beskrivelse, id, kat, url, navn, hits from portal where kat like '$soeg' or beskrivelse like '$soeg'");
while ($raekke = mysql_fetch_array($resultat)) {
  extract($raekke);
  echo "
    <table width='250' border='0' cellpadding='0' cellspacing='0' bordercolor='#000000'>
    <tr>
      <td height='10' width='250'></td>
  </tr>
  <tr>
        <td align='left' width='100%' valign='middle' bgcolor='#89D63E'><span class='fontfed'><b><a href='$url' target='_blank'>$navn</a></b></span></td>
  </tr>
  <table width='250' border='0' cellpadding='0' cellspacing='0' bordercolor='#000000'>
  <tr>
      <td  width='250' bgcolor='#FFFFFF'><span class='font'>$beskrivelse</span></td>
  </tr>
</table>";
}
}
?>
<?php
include("bund.php");
?>
Avatar billede donwang Nybegynder
05. juni 2003 - 14:51 #3
Jeg syntes bare ikke den viser nogle resultater selv om at jeg søger på et ord som findes, i databasen...?
Avatar billede schaefner Juniormester
05. juni 2003 - 14:52 #4
Det skal vel også være:
$soeg = $_POST['soeg'];
$resultat = mysql_query("select beskrivelse, id, kat, url, navn, hits from portal where kat like '$soeg' or beskrivelse like '$soeg'");

hvis register_globals er sat til off.
Avatar billede schaefner Juniormester
05. juni 2003 - 14:54 #5
und:
$resultat = mysql_query("select beskrivelse, id, kat, url, navn, hits from portal where kat like '$soeg' or beskrivelse like '$soeg'") or die(mysql_error());
Avatar billede donwang Nybegynder
05. juni 2003 - 14:58 #6
Opdateret code:

<?php
include("top.php");
?>
<form action='soeg.php' method='post'>
<span class='font'>Søg</span><br>
<input type='font' name='soeg' size='16' maxlength='32'>
<input name='submit' value='Søg' type='submit'>
</form>
<?php
include ( "config.php" );
if($_POST['navn']) {
mysql_query("INSERT INTO portal (beskrivelse,id,navn,url,hits,kat) VALUES ('$_POST[beskrivelse]','id','$_POST[navn]','$_POST[url]','1','$_POST[kat]')") or die(mysql_error());
}
$soeg = $_POST['soeg'];
$resultat = mysql_query("select beskrivelse, id, kat, url, navn, hits from portal where kat like '$soeg' or beskrivelse like '$soeg'") or die(mysql_error());
  extract($raekke);
  echo "
    <table width='250' border='0' cellpadding='0' cellspacing='0' bordercolor='#000000'>
    <tr>
      <td height='10' width='250'></td>
  </tr>
  <tr>
        <td align='left' width='100%' valign='middle' bgcolor='#89D63E'><span class='fontfed'><b><a href='$url' target='_blank'>$navn</a></b></span></td>
  </tr>
  <table width='250' border='0' cellpadding='0' cellspacing='0' bordercolor='#000000'>
  <tr>
      <td  width='250' bgcolor='#FFFFFF'><span class='font'>$beskrivelse</span></td>
  </tr>
</table>";

?>
<?php
include("bund.php");
?>
Avatar billede donwang Nybegynder
05. juni 2003 - 14:58 #7
Nu får jeg fejl:
Warning: extract() expects first argument to be an array in c:\apache\htdocs\minportal\soeg.php on line 16
Avatar billede schaefner Juniormester
05. juni 2003 - 15:02 #8
$resultat = mysql_query("select beskrivelse, id, kat, url, navn, hits from portal where kat like '%$soeg%' or beskrivelse like '%$soeg%'") or die(mysql_error());
Avatar billede schaefner Juniormester
05. juni 2003 - 15:08 #9
Du har jo også fjernet din while-løkke:

<?php
include("top.php");
?>
<form action='soeg.php' method='post'>
<span class='font'>Søg</span><br>
<input type='font' name='soeg' size='16' maxlength='32'>
<input name='submit' value='Søg' type='submit'>
</form>
<?php
include ( "config.php" );
if($_POST['navn']) {
mysql_query("INSERT INTO portal (beskrivelse,id,navn,url,hits,kat) VALUES ('$_POST[beskrivelse]','id','$_POST[navn]','$_POST[url]','1','$_POST[kat]')") or die(mysql_error());
}
if($_POST['soeg']) {
$soeg = $_POST['soeg'];
$resultat = mysql_query("select beskrivelse, id, kat, url, navn, hits from portal where kat like '%$soeg%' or beskrivelse like '%$soeg%'") or die(mysql_error());
while ($raekke = mysql_fetch_array($resultat)) {
  extract($raekke);
  echo "
    <table width='250' border='0' cellpadding='0' cellspacing='0' bordercolor='#000000'>
    <tr>
      <td height='10' width='250'></td>
  </tr>
  <tr>
        <td align='left' width='100%' valign='middle' bgcolor='#89D63E'><span class='fontfed'><b><a href='$url' target='_blank'>$navn</a></b></span></td>
  </tr>
  <table width='250' border='0' cellpadding='0' cellspacing='0' bordercolor='#000000'>
  <tr>
      <td  width='250' bgcolor='#FFFFFF'><span class='font'>$beskrivelse</span></td>
  </tr>
</table>";
}
}
?>
<?php
include("bund.php");
?>
Avatar billede donwang Nybegynder
05. juni 2003 - 16:40 #10
Tak, så virker det:O)

Men kan du ikke lige lave så der kommer en meddelse hvis den ikke finder noget?
Avatar billede schaefner Juniormester
05. juni 2003 - 16:53 #11
<?php
include('top.php');
?>
<form action='soeg.php' method='post'>
<span class='font'>Søg</span><br>
<input type='font' name='soeg' size='16' maxlength='32'>
<input name='submit' value='Søg' type='submit'>
</form>
<?php
include ('config.php');
if($_POST['navn']) {
    mysql_query("INSERT INTO portal (beskrivelse,id,navn,url,hits,kat) VALUES ('$_POST[beskrivelse]','id','$_POST[navn]','$_POST[url]','1','$_POST[kat]')") or die(mysql_error());
}
if($_POST['soeg']) {
    $soeg = $_POST['soeg'];
    $resultat = mysql_query("select beskrivelse, id, kat, url, navn, hits from portal where kat like '%$soeg%' or beskrivelse like '%$soeg%'") or die(mysql_error());
    if(mysql_num_rows($resultat) == 0) {
        echo 'Intet fundet';
    } else {
        while ($raekke = mysql_fetch_array($resultat)) {
            extract($raekke);
            echo "<table width='250' border='0' cellpadding='0' cellspacing='0' bordercolor='#000000'><tr>
                <td height='10' width='250'></td>
            </tr><tr>
                <td align='left' width='100%' valign='middle' bgcolor='#89D63E'><span class='fontfed'><b><a href='$url' target='_blank'>$navn</a></b></span></td>
            </tr></table>
            <table width='250' border='0' cellpadding='0' cellspacing='0' bordercolor='#000000'><tr>
                <td  width='250' bgcolor='#FFFFFF'><span class='font'>$beskrivelse</span></td>
            </tr></table>";
        }
    }
}
?>
<?php
include('bund.php');
?>
Avatar billede donwang Nybegynder
05. juni 2003 - 16:57 #12
Mange tak:O)
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