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)
Annonceindlæg fra Sabio
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
10. januar 2003 - 14:51
#2
helt præcist her while($row = mysql_fetch_array($result)) { hvis man da ser på linje 43
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());
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 :)
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.
10. januar 2003 - 14:57
#6
Så siger den Unknown column 'id' in 'order clause'... Men jeg kan da ikke se nogle fejl?
10. januar 2003 - 14:58
#7
jeg syntes også det ser meget rigtigt ud
10. januar 2003 - 14:59
#8
kunne man forestille sig det måske var MySQL serveren ??
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
10. januar 2003 - 15:07
#10
Så... Nu kommer der ingen fejl mere:O) Men den printer ikke noget ud fra databasen?O(
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')");
10. januar 2003 - 15:12
#12
Og tjek lige at der nu også er noget indhold i databasen... :)
10. januar 2003 - 15:13
#13
Næ... Det hjælper ikke:O(
10. januar 2003 - 15:15
#14
ØV! Der bilver slet ikke smidt noget i databasen?O)
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
10. januar 2003 - 15:18
#16
Nope:O)
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')"); }
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')"); }
10. januar 2003 - 15:27
#19
Nope:O( Lortet virker ikke?
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
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;
10. januar 2003 - 15:35
#22
OK, 2 minutter så får jeg det lige til at virke for dig :)
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"; } ?>
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"; } ?>
10. januar 2003 - 15:46
#25
Tango!O)
10. januar 2003 - 15:47
#26
Lav lige et svar... Hvor var fejlne?
10. januar 2003 - 15:47
#27
Går ud fra det lykkedes, eller hvad :)
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
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 :)
10. januar 2003 - 15:58
#30
Har du ikke msn?
10. januar 2003 - 16:01
#31
Hvad gør jeg hvis jeg gerne vil lave URL´ til links?
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"); ?>
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')"); } ?>
10. januar 2003 - 16:22
#35
Hmmm... det virker bare ikke:O
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");
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']);
Vi tilbyder markedets bedste kurser inden for webudvikling