Avatar billede nickyc Nybegynder
18. maj 2005 - 19:38 Der er 21 kommentarer og
1 løsning

mysql results virker vist ikke?

Hey alle

Får denne fejl:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in c:\websteder\Private\mySite\news.php on line 20
------------

Forstår ikke helt hvad der er galt?

Hele min kode:

<?
include("includes/conn.inc.php");

$getnews = mysql_query("SELECT id, emne, forfatter, dato, nyhed FROM nyheder ORDER by dato DESC");
if(mysql_num_rows($getnews) > 0 )
{
   
    while($myrow = mysql_fetch_assoc($getnews))
    {
        $nyhedsid = $myrow['id'];
        $emne = stripslashes($myrow['emne']);
        $forfatter = $myrow['forfatter'];
        $dato = $myrow['dato'];
        $nyhed = stripslashes(nl2br($myrow['nyhed']));
       
        // Vi henter nu antallet af kommentarer til denne nyhed
       
        $getcomment = mysql_query("SELECT COUNT (id) FROM kommentarer WHERE nyhedsid='".$nyhedsid."'");
       
        $antalcomments = mysql_result($getcomment, 0, 0);
       
        //Vi udskriver nu nyheden og antallet af kommentarer
       
        echo "<table width=245><tr>";
        echo "<td><strong>" . $emne . "</strong>";
        echo "<td>" . $dato . "</td></td></tr></table><table width=245>";
        echo "<tr><td>" . $nyhed . "</td></tr>";
        echo "<tr><td>Comments: <a href='comments.php?id=" . $nyhedsid . ">" .$antalcomments. "</a>";
        echo "</td></tr></table>";
    }
}
    else
    {
        echo "No news yet";
    }



?>
----------------

Håber der er nogen der kan hjælpe mig?
Avatar billede busschou Praktikant
18. maj 2005 - 19:41 #1
Skal det ikke bare være
$antalcomments = mysql_result($getcomment, 0);
Avatar billede nickyc Nybegynder
18. maj 2005 - 19:54 #2
hmm, nope, får stadig fejlen:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in c:\websteder\Private\mySite\news.php on line 20
Avatar billede busschou Praktikant
18. maj 2005 - 19:58 #3
ok strange.
I princippet kunne du lave en select * i stedet for count og så lave en mysql_num_rows på den
Men det andet burde virke
Prøv smide en or die(mysql_error()) på dine database kald
Avatar billede hmortensen Nybegynder
18. maj 2005 - 20:20 #4
Vil nok næmere tro at det er fordi du har '' om dit id, som vel er et talfelt ?

$antalcomments = mysql_result(mysql_query("SELECT COUNT (*) FROM kommentarer WHERE nyhedsid=".$nyhedsid), 0);
Avatar billede busschou Praktikant
18. maj 2005 - 20:22 #5
det ville en or die(mysql_error()) vel afsløre ;)
Avatar billede nickyc Nybegynder
18. maj 2005 - 20:25 #6
hmm, meget mærkeligt... ingen af delene virker?

uanset hvad for jeg enten denne fejl :

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\websteder\Private\mySite\news.php on line 20

eller den anden deropppe?
Avatar billede busschou Praktikant
18. maj 2005 - 20:27 #7
også når du fjerner dine plinger '  `?
Avatar billede oonofearoo Nybegynder
18. maj 2005 - 20:29 #8
fejlen betyder at det du sender til MySQL er invalid.

prøv med:

mysql_query("SELECT `count`, `id` FROM `kommentarer` WHERE `nyhedsid` = `$nyhedsid`");

går ud fra du vil vælge count og id, ellers så burde denne her nede virke:

mysql_query("SELECT COUNT (id) FROM `kommentarer` WHERE `nyhedsid` = `$nyhedsid`");
Avatar billede busschou Praktikant
18. maj 2005 - 20:32 #9
og ellers put den or die på ...den må give dig en fejl
$getcomment = mysql_query("SELECT COUNT (id) FROM kommentarer WHERE nyhedsid='".$nyhedsid."'") or die (mysql_error());
Avatar billede hmortensen Nybegynder
18. maj 2005 - 20:35 #10
Og en anden fejl:
Der må ik være mellemrum mellem COUNT og (id)
Avatar billede oonofearoo Nybegynder
18. maj 2005 - 20:47 #11
nu sad jeg lige og kiggede hele din kode igennem, og så lagde jeg lige mærke til at du bruger echo "No news yet";

man skal helst undgå at bruge " " og man skal da slet ikke echo "...".$foo."...";

PHP checker alt mellem " " for variable så echo "$foo"; // vil give bar(hvis $foo = 'bar';)

i stedet burde du bruge ' ', altså echo 'No news yet' og så skal du bruge echo $antal.' news so far'; | echo 'hey '.$bruger.' dette er dit besøg nr. '.$besoeg;

sig til hvis jeg skal uddybe dette da det vil gøre din kode mere effektiv, og også nemmere nå det kommer til MySQL kode.
Avatar billede busschou Praktikant
18. maj 2005 - 20:50 #12
Jeg har nu set mange som laver
echo "blabla".$noget."blabla";
har så selv altid lave
echo "blabla $noget blabla";
Men har aldrig brugt ' istedet for "
Hvorfor skulle man undgå bruge " når det virker??
Avatar billede busschou Praktikant
18. maj 2005 - 20:50 #13
Selv i "manualen" (den jeg kender) bruger de "
http://dk.php.net/echo
Avatar billede busschou Praktikant
18. maj 2005 - 20:52 #14
oonofearoo >> Det er fint nok at man kan bruge ' og " frit.. det der "bider" mig er at du du skriver :
"da det vil gøre din kode mere effektiv"
Hvor er dit belæg for det?
Avatar billede oonofearoo Nybegynder
18. maj 2005 - 21:00 #15
http://www.evolt.org/article/PHP_Guidelines/17/26440/index.html

den side forklare det lidt bedre end jeg kan.

og selv om ting virke skal man altid lige overveje om det ikke kan laves bedre. Ellers bliver ens kode ofte fuld a bugs og usikker. ( har fået crashet min SQL server før )
Avatar billede busschou Praktikant
18. maj 2005 - 21:03 #16
ok den forklaring har jeg så aldrig set eller hørt før...fair nok
Tvivler dog på det har nogen som helst betydning for ganske almindelige små scripts
Avatar billede oonofearoo Nybegynder
18. maj 2005 - 21:06 #17
nej har det heller ikke, men bare fordi det er et lille script betyder det ikke at man ikke skal gøre det ordentligt.

og mange bække små laver stor stor amazon flod =)
Avatar billede busschou Praktikant
18. maj 2005 - 21:11 #18
jojooo
Men der står jo også at der er en mening med " !
Så jeg vil ikke sige at bruge " ikke er at gøre det ordentligt
Man skal nok bare have det i mente vil jeg mene
Avatar billede oonofearoo Nybegynder
18. maj 2005 - 21:18 #19
tja høre bare alle sige at det er hurtigere at bruge ' og så bare escape dem

$foo.' hey der '.$bar.' hey right back! '.$end;

men okay, har endnu ikke lavet en benchmark af det, så kan ikke sige hvad der er mest effektivt, men stoler på dem jeg har fået det afvide af, så holder mig til '
Avatar billede busschou Praktikant
18. maj 2005 - 21:24 #20
tja jeg ved det ikke, har ikke testet det
svært at sige hvad der er hurtigst med 1mill variable
echo 'a'.$a.' b'.$b.' c'.$d.' e'.e. osv
eller
echo "a$a b$b c$c d$d e$e osv
Men ja det er jo lige nemt at skrive ;o)
--
Avatar billede nickyc Nybegynder
17. juni 2005 - 09:31 #21
....
Avatar billede busschou Praktikant
17. juni 2005 - 10:02 #22
nikyc >> Hvad betyder "...." ? Er det takken for vores tid og hjælp? Skriv lige din løsning nu du selv har taget point har du vel løst det - og det vil da være rart at vide hvordan :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