Avatar billede donwang Nybegynder
10. januar 2003 - 14:48 Der er 36 kommentarer og
1 løsning

PHP fejl?

Jeg kan ikke finde fejlen i dette, jeg får fejlen:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\phpdev\www\phphent.php on line 43


<?
$connection = mysql_connect("localhost","root","");
mysql_select_db("Links", $connection);

if($url  && $beski) {

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

mysql_query("insert into link(url, beski)             
values ('','$url','$beski')");
}
?>

<form action="phphent.php" method="post">
  <table border="0" align="center">
    <tr>
      <td><font face="verdana" size="2">Url:</font></td>
      <td></td>
    </tr>
    <tr>
      <td> <font size="2">
        <input type="text" name="url" size="40"  maxlength="20">
        </font></td>
    </tr>
    <tr>
      <td> <font face="verdana" size="2">Beskrivelse:</font><font size="2"><br>
        <input type="text" name="beski" 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 link order by id desc");
while($row = mysql_fetch_array($result)) {
echo"<tr><td><font face=verdana size=1>$row[url] : $row[beski] </td></tr>\n";
}
?>

Der ud over kunne jeg godt bruge en der vil hjælpe mig over MSN hvis jeg skulle få problemer med PHP:O)
Avatar billede eagle124 Nybegynder
10. januar 2003 - 14:49 #1
<?
$result = mysql_query("select * from link order by id desc");
while($row = mysql_fetch_array($result)) {
echo"<tr><td><font face=verdana size=1>$row[url] : $row[beski] </td></tr>\n";
}
?>

det ser ud til det er der den er gal
Avatar billede eagle124 Nybegynder
10. januar 2003 - 14:51 #2
helt præcist her

while($row = mysql_fetch_array($result)) {

hvis man da ser på linje 43
Avatar billede tangveje Nybegynder
10. januar 2003 - 14:51 #3
I den slags tilfælde bør du altid lige tjekke for sjulte fejlmeldinger fra mysql sådan her

$result = mysql_query("select * from link order by id desc") or die(mysql_error());
Avatar billede tangveje Nybegynder
10. januar 2003 - 14:53 #4
Og fejlen skal med stor sandsynlighed findes i din SQL query, og ikke i den linie PHP giver fejl i (det er en grunregel ved den slags fejl :)
Avatar billede jakoba Nybegynder
10. januar 2003 - 14:57 #5
den der  'or die' er i det hele taget dejlig. du kan også sætte den efter dine connect kald:

$connection = mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("Links", $connection) or die(mysql_error());

PS: husk når du lægger ud på offentlig server skal du ikke længere vise os det brugerid og password du bruger i mysql_connect.
Avatar billede donwang Nybegynder
10. januar 2003 - 14:57 #6
Så siger den Unknown column 'id' in 'order clause'... Men jeg kan da ikke se nogle fejl?
Avatar billede eagle124 Nybegynder
10. januar 2003 - 14:58 #7
jeg syntes også det ser meget rigtigt ud
Avatar billede eagle124 Nybegynder
10. januar 2003 - 14:59 #8
kunne man forestille sig det måske var MySQL serveren ??
Avatar billede tangveje Nybegynder
10. januar 2003 - 14:59 #9
Det betyder at den ikke kan finde feltet "id" i din tabel... Ikke det mest typiske felt at få den fejl på, men prøv lige at tjekke din tabel efter en gang
Avatar billede donwang Nybegynder
10. januar 2003 - 15:07 #10
Så... Nu kommer der ingen fejl mere:O) Men den printer ikke noget ud fra databasen?O(
Avatar billede tangveje Nybegynder
10. januar 2003 - 15:10 #11
Så lige en fejl i din insert her... Prøv lige sådan og se om det hjælper

mysql_query("insert into link(url, beski)           
values ('$url','$beski')");
Avatar billede tangveje Nybegynder
10. januar 2003 - 15:12 #12
Og tjek lige at der nu også er noget indhold i databasen... :)
Avatar billede donwang Nybegynder
10. januar 2003 - 15:13 #13
Næ... Det hjælper ikke:O(
Avatar billede donwang Nybegynder
10. januar 2003 - 15:15 #14
ØV! Der bilver slet ikke smidt noget i databasen?O)
Avatar billede tangveje Nybegynder
10. januar 2003 - 15:15 #15
Nok på grund af den fejl jeg lige rettede :) Prøv at indsæt noget med dit script nu
Avatar billede donwang Nybegynder
10. januar 2003 - 15:18 #16
Nope:O)
Avatar billede tangveje Nybegynder
10. januar 2003 - 15:20 #17
OK, så langt så godt :) Prøv dette, og derefter skriv lidt i formularen og send det

<?
$connection = mysql_connect("localhost","root","");
mysql_select_db("Links", $connection);

if($_POST['url']  && $_POST['beski']) {

$nick = htmlentities($_POST['url']);
$msg = htmlentities($_POST['beski']);

mysql_query("insert into link(url, beski)           
values ('','$nick','$beski')");
}
Avatar billede tangveje Nybegynder
10. januar 2003 - 15:21 #18
Hov... Sådan her

<?
$connection = mysql_connect("localhost","root","");
mysql_select_db("Links", $connection);

if($_POST['url']  && $_POST['beski']) {

$nick = htmlentities($_POST['url']);
$msg = htmlentities($_POST['beski']);

mysql_query("insert into link(url, beski)         
values ('','$nick','$msg')");
}
Avatar billede donwang Nybegynder
10. januar 2003 - 15:27 #19
Nope:O( Lortet virker ikke?
Avatar billede tangveje Nybegynder
10. januar 2003 - 15:30 #20
OK, så har jeg ikke lige så mange gode ideer tilbage :(

Prøv at gå ind i phpMyAdmin (går jeg ud fra du bruger), vælg din database i venstre side, klik på "export" (eller noget lign.), sæt hak i "strukture only" og klik "go"... Skriv resultatet her
Avatar billede donwang Nybegynder
10. januar 2003 - 15:33 #21
# phpMyAdmin MySQL-Dump
# version 2.3.2
# http://www.phpmyadmin.net/ (download page)
#
# Vært: localhost
# Genereringstidspunkt: 10/01 2003 kl. 15:34:38
# Server version: 4.00.00
# PHP version: 4.2.3
# Database: : `Links`
# --------------------------------------------------------

#
# Struktur dump for tabellen `link`
#

CREATE TABLE link (
  url varchar(20) NOT NULL default '',
  beski varchar(100) NOT NULL default '',
  id int(11) NOT NULL auto_increment,
  PRIMARY KEY  (id)
) TYPE=MyISAM;
Avatar billede tangveje Nybegynder
10. januar 2003 - 15:35 #22
OK, 2 minutter så får jeg det lige til at virke for dig :)
Avatar billede tangveje Nybegynder
10. januar 2003 - 15:38 #23
OK, følgende kode virker hos mig, og skulle meget gerne også virke hos dig

<?php
$connection = mysql_connect("localhost","root","51181337");
mysql_select_db("links", $connection);

if($_POST['url']  && $_POST['beski']) {

$nick = htmlentities($_POST['url']);
$msg = htmlentities($_POST['beski']);

mysql_query("insert into link(url, beski)
values ('$nick','$msg')");
}
?>

<form action="phphent.php" method="post">
  <table border="0" align="center">
    <tr>
      <td><font face="verdana" size="2">Url:</font></td>
      <td></td>
    </tr>
    <tr>
      <td> <font size="2">
        <input type="text" name="url" size="40"  maxlength="20">
        </font></td>
    </tr>
    <tr>
      <td> <font face="verdana" size="2">Beskrivelse:</font><font size="2"><br>
        <input type="text" name="beski" 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>

<?php
$result = mysql_query("select * from link order by id desc");
while($row = mysql_fetch_array($result)) {
echo"<tr><td><font face=verdana size=1>$row[url] : $row[beski] </td></tr>\n";
}
?>
Avatar billede tangveje Nybegynder
10. januar 2003 - 15:43 #24
For en helt fejlsikker copy-paste version

<?php
$connection = mysql_connect("localhost","root","");
mysql_select_db("links", $connection);

if($_POST['url']  && $_POST['beski']) {

$nick = htmlentities($_POST['url']);
$msg = htmlentities($_POST['beski']);

mysql_query("insert into link(url, beski)
values ('$nick','$msg')");
}
?>

<form action="phphent.php" method="post">
  <table border="0" align="center">
    <tr>
      <td><font face="verdana" size="2">Url:</font></td>
      <td></td>
    </tr>
    <tr>
      <td> <font size="2">
        <input type="text" name="url" size="40"  maxlength="20">
        </font></td>
    </tr>
    <tr>
      <td> <font face="verdana" size="2">Beskrivelse:</font><font size="2"><br>
        <input type="text" name="beski" 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>

<?php
$result = mysql_query("select * from link order by id desc");
while($row = mysql_fetch_array($result)) {
echo"<tr><td><font face=verdana size=1>$row[url] : $row[beski] </td></tr>\n";
}
?>
Avatar billede donwang Nybegynder
10. januar 2003 - 15:46 #25
Tango!O)
Avatar billede donwang Nybegynder
10. januar 2003 - 15:47 #26
Lav lige et svar... Hvor var fejlne?
Avatar billede tangveje Nybegynder
10. januar 2003 - 15:47 #27
Går ud fra det lykkedes, eller hvad :)
Avatar billede tangveje Nybegynder
10. januar 2003 - 15:49 #28
Tja, udover de sidste fejl jeg rettede så havde jeg dummet mig og genskabt en af de fejl jeg ellers lige havde rettet lidt tidligere :) Derfor virkede det ikke
Avatar billede tangveje Nybegynder
10. januar 2003 - 15:55 #29
Og for lige at forklare lidt

I nyerer versioner af PHP (efter 4.2.0 vist nok) skal du som standard bruge $_POST[] til at hente data sendt fra en formular med method="post"

Har du sat den til method="get" eller er dine variabler på anden vis havnet i url'en (såsom side.php?var=noget) skal du bruge $_GET[]

Til sessions skal bruges $_SESSION[] og til cookies $_COOKIE[]

Til de indbyggede variabler såsom PHP_SELF bruger du $_SERVER[]

Dette er gjort af sikkerhedsmæssige årsager, og skal derfor betragtes som en god ting :)
Avatar billede donwang Nybegynder
10. januar 2003 - 15:58 #30
Har du ikke msn?
Avatar billede donwang Nybegynder
10. januar 2003 - 16:01 #31
Hvad gør jeg hvis jeg gerne vil lave URL´ til links?
Avatar billede tangveje Nybegynder
10. januar 2003 - 16:05 #32
Nope, har ikke MSN

http://www.ljweb.com/?Ref=usefulscripts

Tror det er tagster_lib du har brug for der... Der er forklaring med i kildekoden

Takker for points
Avatar billede donwang Nybegynder
10. januar 2003 - 16:14 #33
Jeg syntes ikke helt det virker når jeg smider dette i hatten af det:
<?php include('tagster.php');
$str = tagster_format($str, "$str, $target, $class"); ?>
Avatar billede tangveje Nybegynder
10. januar 2003 - 16:18 #34
Tror det er sådan her du ønsker :)

<?php
$connection = mysql_connect("localhost","root","");
mysql_select_db("links", $connection);

if($_POST['url']  && $_POST['beski']) {

$nick = htmlentities($_POST['url']);
$msg = htmlentities($_POST['beski']);

include('tagster.php');
$msg = tagster_format($msg, "_NEW");

mysql_query("insert into link(url, beski)
values ('$nick','$msg')");
}
?>
Avatar billede donwang Nybegynder
10. januar 2003 - 16:22 #35
Hmmm... det virker bare ikke:O
Avatar billede donwang Nybegynder
10. januar 2003 - 16:23 #36
Er det ikke også sådan har den skal se ud:O?
include('tagster.php');
$url = tagster_format($url, "_NEW");
Avatar billede tangveje Nybegynder
10. januar 2003 - 16:28 #37
Nope, så skal det være sådan her

include('tagster.php');
$nick = tagster_format($nick, "_NEW");

$url bliver jo "lavet om til" $nick i denne linie

$nick = htmlentities($_POST['url']);
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