Avatar billede magnify Nybegynder
27. september 2001 - 13:31 Der er 18 kommentarer og
1 løsning

Hjælp til fejl i \"tagwall\"

Jeg har fulgt en tutorial på en tagwall og får følgende fejl:

Warning: Supplied argument is not a valid MySQL result resource in tagwall.php3 on line 49

Koden i tagwall.php3:

<?
$connection = mysql_connect(\"localhost\",\"magnify\",\"gr4ffiti\");
mysql_select_db(\"database\", $connection);

if($nick != \" \" && $msg != \" \") {

$nick = htmlentities($nick);
$msg = htmlentities($msg);

mysql_query(\"insert into tagwall(id, navn, msg, ip)             
values (\'\',\'$nick\',\'$msg\',\'$REMOTE_ADDR\')\");

}

?>

<form action=\"tagwall.php\" method=\"post\">
  <table border=\"0\" align=\"center\">
    <tr>
      <td><font face=\"verdana\" size=\"2\">Navn:</font></td>
      <td></td>
    </tr>
    <tr>
      <td> <font size=\"2\">
        <input type=\"text\" name=\"nick\" size=\"40\"  maxlength=\"20\">
        </font></td>
    </tr>
    <tr>
      <td> <font face=\"verdana\" size=\"2\">Tag:</font><font size=\"2\"><br>
        <input type=\"text\" name=\"msg\" size=\"40\" maxlength=\"200\">
        </font></td>
    </tr>
    <tr>
      <td> <font size=\"2\">
        <input type=\"submit\" value=\"Skriv Tag\">
        </font></td>
      <td></td>
    </tr>
  </table>
</form>
<table>
<?
$result = mysql_query(\"select * from tagwall order by id desc\");
while($row = mysql_fetch_array($result)) { echo\"<tr><td><font face=verdana size=1>$row[navn] : $row[msg] </td></tr>\\n\";
}
?>

Det kunne jo være rart hvis en nubi som kunne få lidt hjælp der.. :)
Avatar billede delwin Nybegynder
27. september 2001 - 13:36 #1
altså du får jo en fejl om at den ikke har lavet et korrekt mysql opslag.. og din kode ser jo egentlig rigtig nok ud.. så det muligheder jeg kan se er:

1. du bruger forkerte informationer til at connecte til mysql serveren.

2. der er ikke nogen database der hedder \"database\"

3. der er ikke nogen tabel i databasen der hedder \"tagwall\"

Der er forresten lige i slutningen hvor du laver din while sætning.. der skriver du echo\"<tr_osv_osv.. du skal lige sætte et mellemrum mellem echo og \"
Avatar billede magnify Nybegynder
27. september 2001 - 13:49 #2
Okay det virker nu.. MEN hver gang jeg reloader siden skriver den \":\" - Det må jo være et tag uden navn og besked ? Kan man ikke ordne det og hvordan ? :)
Avatar billede mora Nybegynder
27. september 2001 - 14:19 #3
$result = mysql_query(\"select * from tagwall where navn!=\'\' and msg!=\'\' order by id desc\");

burde udelukke alt fra mysql der ikke indeholder noget, meen du kunne også slette dem manuelt, og så tjekke ved afsendelse af nye om der er noget tekst.
Avatar billede magnify Nybegynder
27. september 2001 - 15:18 #4
Hmmm det virker ok nu.. men den skriver stadigvæk det sidste skrevne tag hvergang jeg reloader.. :(
Avatar billede mora Nybegynder
27. september 2001 - 15:21 #5
Ja ?
du order desc, skriv asc hvis det skal være det første
Avatar billede magnify Nybegynder
27. september 2001 - 15:23 #6
ok jeg fik ik\' forklaret mig godt nok.. :) Den skriver det sidste tag en gang TIL hvergang jeg reloader...
Avatar billede magnify Nybegynder
27. september 2001 - 15:29 #7
altså den kopierer det sidste tag hvergang jeg reloader... :/
Avatar billede mora Nybegynder
27. september 2001 - 15:35 #8
Er det ikke kun hvis du lige har lavet en tag og så reloader ?

lav evt. en header forvard lige efter du har addet tagget ...
Avatar billede magnify Nybegynder
27. september 2001 - 15:36 #9
Hmmm den skal jeg vidst have forklaret lidt nærmere.. :)
Avatar billede mora Nybegynder
27. september 2001 - 15:37 #10
Kan jeg se din kilde, så kan jeg lige rette det :)
Avatar billede mora Nybegynder
27. september 2001 - 15:38 #11
Doh, øjeblik
Avatar billede mora Nybegynder
27. september 2001 - 15:39 #12
if($nick != \" \" && $msg != \" \") {

$nick = htmlentities($nick);
$msg = htmlentities($msg);

mysql_query(\"insert into tagwall(id, navn, msg, ip)             
values (\'\',\'$nick\',\'$msg\',\'$REMOTE_ADDR\')\");

header(\"Location: tagwall.php?\");
}


Det kræver dog at der ikek er noget output over denne linje ...
Avatar billede mora Nybegynder
27. september 2001 - 15:39 #13
HVorfor har du forresten et , lige før \"$nick ?
Avatar billede magnify Nybegynder
27. september 2001 - 15:40 #14
Hehe mange tak.. Jeg er jo totalt nubi.. Men jeg tror jeg kigger på det imorgen igen.. :)
Avatar billede mora Nybegynder
27. september 2001 - 15:42 #15
Ok, overstående går at så snart ens tag er addet, sendes man til tagbogen igen, dermed vil en reload IKKE adde ens tag en gang til.

Husk at lave en no-cache hvis du ikke har det på din hoved side?
Avatar billede magnify Nybegynder
27. september 2001 - 15:43 #16
Jeg tager det imorgen skal smutte nu .. :D
Avatar billede otis Nybegynder
08. november 2001 - 18:11 #17
Den her virker :P


<?
$connection = mysql_connect(\"localhost\",\"magnify\",\"gr4ffiti\");
mysql_select_db(\"database\", $connection);

if($nick && $msg{

$nick = htmlentities($nick);
$msg = htmlentities($msg);

mysql_query(\"insert into tagwall(id, navn, msg, ip)             
values (\'\',\'$nick\',\'$msg\',\'$REMOTE_ADDR\')\");

}

?>

<form action=\"tagwall.php\" method=\"post\">
  <table border=\"0\" align=\"center\">
    <tr>
      <td><font face=\"verdana\" size=\"2\">Navn:</font></td>
      <td></td>
    </tr>
    <tr>
      <td> <font size=\"2\">
        <input type=\"text\" name=\"nick\" size=\"40\"  maxlength=\"20\">
        </font></td>
    </tr>
    <tr>
      <td> <font face=\"verdana\" size=\"2\">Tag:</font><font size=\"2\"><br>
        <input type=\"text\" name=\"msg\" size=\"40\" maxlength=\"200\">
        </font></td>
    </tr>
    <tr>
      <td> <font size=\"2\">
        <input type=\"submit\" value=\"Skriv Tag\">
        </font></td>
      <td></td>
    </tr>
  </table>
</form>
<table>
<?
$result = mysql_query(\"select * from tagwall order by id desc\");
while($row = mysql_fetch_array($result)) { echo\"<tr><td><font face=verdana size=1>$row[navn] : $row[msg] </td></tr>\\n\";
}
?>
Avatar billede otis Nybegynder
08. november 2001 - 18:12 #18
LOL der mangler )

så her er den:

<?
$connection = mysql_connect(\"localhost\",\"magnify\",\"gr4ffiti\");
mysql_select_db(\"database\", $connection);

if($nick && $msg) {

$nick = htmlentities($nick);
$msg = htmlentities($msg);

mysql_query(\"insert into tagwall(id, navn, msg, ip)             
values (\'\',\'$nick\',\'$msg\',\'$REMOTE_ADDR\')\");

}

?>

<form action=\"tagwall.php\" method=\"post\">
  <table border=\"0\" align=\"center\">
    <tr>
      <td><font face=\"verdana\" size=\"2\">Navn:</font></td>
      <td></td>
    </tr>
    <tr>
      <td> <font size=\"2\">
        <input type=\"text\" name=\"nick\" size=\"40\"  maxlength=\"20\">
        </font></td>
    </tr>
    <tr>
      <td> <font face=\"verdana\" size=\"2\">Tag:</font><font size=\"2\"><br>
        <input type=\"text\" name=\"msg\" size=\"40\" maxlength=\"200\">
        </font></td>
    </tr>
    <tr>
      <td> <font size=\"2\">
        <input type=\"submit\" value=\"Skriv Tag\">
        </font></td>
      <td></td>
    </tr>
  </table>
</form>
<table>
<?
$result = mysql_query(\"select * from tagwall order by id desc\");
while($row = mysql_fetch_array($result)) { echo\"<tr><td><font face=verdana size=1>$row[navn] : $row[msg] </td></tr>\\n\";
}
?>
Avatar billede mora Nybegynder
08. november 2001 - 18:13 #19
den vil da adde ens tag ved reload, som den ikke skal ?
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