Avatar billede djicep Nybegynder
26. juli 2005 - 22:55 Der er 38 kommentarer og
1 løsning

Lige lidt hjælp tak

Hejsa allesammen.
Jeg er igang med et ret simpel nyhedsscript...
Meeeen, da jeg nu har lavet det så kommer den ud med en fejl:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\apache group\apache\htdocs\lamerz1\news.php on line 7

Her er selve scriptet :

<html>
<body>
<?
$db = mysql_connect("localhost", "sitenews", "");
mysql_select_db("lamerz", $db);
$res = mysql_query("SELECT date, top, text FROM sitenews ORDER BY date DESC LIMIT 0, 2");
while($data = mysql_fetch_array($res)){

    echo date("j:n:Y" , $data[0]);
    echo "<b>$data[1]</b>";
    echo "<br>$data[2]<br><br>";
}
?>
</body>
</html>

Er nemlig rimelig ny i PHP så håber nogen kan hjælpe på forhånd tak.
Avatar billede jaw Nybegynder
26. juli 2005 - 22:56 #1
Start med at ændre:

$res = mysql_query("SELECT date, top, text FROM sitenews ORDER BY date DESC LIMIT 0, 2");

til:

$res = mysql_query("SELECT date, top, text FROM sitenews ORDER BY date DESC LIMIT 0, 2") or die(mysql_error());

...så vil du få en bedre fejlmeddelese.
Avatar billede djicep Nybegynder
26. juli 2005 - 22:57 #2
Oki nice... Så siger den at jeg ikke har valgt nogen Database ?? :S
Skulle jeg da mene at jeg har ??
Avatar billede jaw Nybegynder
26. juli 2005 - 23:00 #3
Der er i hvert fald en fejl i den så:

$db = mysql_connect("localhost", "sitenews", "") or die(mysql_error());

...for der er en fejl i din forbindelse til serveren - det kan også være din mysql_select_db();
Avatar billede djicep Nybegynder
26. juli 2005 - 23:03 #4
Okay nu har jeg sat (mysql_error()); på select_db og nu kommer den så ud med
Access denied for user: '@localhost' to database 'lamerz'
Der er bare ikke nået password på mysql fordi det kun er test og det lægger på den her computer ??
Avatar billede jaw Nybegynder
26. juli 2005 - 23:04 #5
Er du så sikker på at brugernavnet er "sitenews" og ikke "root" ?
Avatar billede djicep Nybegynder
26. juli 2005 - 23:07 #6
ARGHHHHHHHHH.
Der var fejlen...
Hmm fatter jeg ikke... :S
Men mange tak for hjælpen!!!
Altså jeg har jo lavet en side til den hvor du skriver nyhed på.
Der står den til Sitenews og der virker det ??
Hvordan kan det lige være at det ikke virker her ??
Avatar billede jaw Nybegynder
26. juli 2005 - 23:08 #7
Det kan jeg så heller ikke svare på - det lyder underligt (nærmest umuligt!) hvis det er samme database :)

Men selv tak...
Avatar billede djicep Nybegynder
26. juli 2005 - 23:10 #8
Oki nu har jeg så ændret det i den hvor man skriver nyheden også.
Og nu virker det ikke mere. Eller dvs den kommer ikke ud med nogen fejl
Den skriver bare ikke til mysql ??
Her er koden lige...
Hvis du gider at kigge på den ??

<html>
<body>
<?
if($password == "password"){
    echo "Nyheden er tilføjet til siden nu!!!";
    $db = mysql_connect("localhost", "root", "");
    mysql_select_db("lamerz", $db);
    $nyhed_overskrift = time();
   
mysql_query("insert into sitenews (date, top, text) values ('$news_date', '$news_top', '$news_text')");
} else {
?>
<form method=post action=<? echo $PHP_SELF;?>>
Password:<br>
<input type=password name=Password>
<br>
Overskrift:<br>
<input type=text name=news_top><br>
Tekst:<br>
<textarea name=news_text>Her skal du bare trykke din nyhed ind :)</textarea><br>
<input type=submit value=Skriv>
</form>
<?
}
?>
</body>
</html>
Avatar billede jaw Nybegynder
26. juli 2005 - 23:55 #9
Jeg kan ikke se at der umiddelbart er noget galt, og hvis det virkede som du havde det før så kan jeg ikke helt forklare dig det...

Det eneste jeg kan se er, at jeg ville bruge:
values ('".$_POST['news_date']."', '".$_POST['news_top']."', '".$_POST['news_text']."')") or die(mysql_error());

i stedet...
Avatar billede djicep Nybegynder
27. juli 2005 - 11:09 #10
Oki Jaw.
Meen den skriver slet ikke til mySQL.
Den kommer ikke ud med nogen mySQL fejl.
Der sker bare ingen ting hehe :S
Avatar billede jaw Nybegynder
27. juli 2005 - 11:30 #11
Prøv at indsætte en echo "blah blah"; i den if-sætning og se om den overhovedet kommer derind. Eller skift til det andet brugernavn igen, hvis du påstår det virkede før. I så fald kan jeg bare ikke forklare dig helt hvorfor den kan i den ene fil og ikke i den anden fil :)
Avatar billede djicep Nybegynder
27. juli 2005 - 11:41 #12
Jamen det gjorde den heller ikke før...
Det var bare fordi jeg havde bare lagt nået ind i DB og ikke lige tænkt over at det lagde der.
Så troede jeg at det virkede.. men i if har jeg jo echo "Nyheden er tilføjet til siden nu!!!": og den siger ingenting
Avatar billede jaw Nybegynder
27. juli 2005 - 11:45 #13
Nååå, se det var jo så noget helt andet :D

Udskift:
if($password == "password"){

med:
if($_POST['password'] == "password"){
  echo "bare for at teste om der sker noget";
Avatar billede djicep Nybegynder
27. juli 2005 - 11:47 #14
Ikke en skid hehe...
den siger ingenting. gør ingenting hmm
Jeg kan virkelig ikke se hvad jeg har gjort forkert :S
Avatar billede jaw Nybegynder
27. juli 2005 - 11:52 #15
Okey, et par småting, hvor én af dem måske kan gøre en forskel.

1. Normalt bør man omkrænse streng-navne med ' eller ". Altså ved name='password' - method='post' osv. osv. Det synes jeg lige du skal gøre.

2. Denne:
<form method=post action=<? echo $PHP_SELF;?>> vil jeg udskifte med:
<form method='post' action='<?=$_SERVER['PHP_SELF'];?>'>

3. Hold dig til enten små eller store bogstaver - eller i hvert fald hold det ens. Når du sætter navnet har du name=Password men når du checker bruger du $password. Én af dem bør laves om så du har ens begge steder.

Gør lige de 3 ting, hvis det ikke virker, så må vi kigge bedre bagefter :)
Avatar billede djicep Nybegynder
27. juli 2005 - 11:53 #16
oki :)
Avatar billede djicep Nybegynder
27. juli 2005 - 11:56 #17
vil det sige at hvis jeg har en streg der hedder $db = mysql_connect("localhost", "root", ""); så skal jeg sætte ' ind ?? efter = tegnet ?? eller ?
Avatar billede djicep Nybegynder
27. juli 2005 - 11:57 #18
streng even
Avatar billede djicep Nybegynder
27. juli 2005 - 11:59 #19
ARGH :) Så virker det sQ :D
Weeeeeeeeeeeeeeeeeeeeeeeeeee
Avatar billede djicep Nybegynder
27. juli 2005 - 12:01 #20
Oki så blev jeg da lidt klogere ?? :S
Men burde den ikke komme ud med en mySQL fejl eller sådan ?
Altså hvis der mangler ' og sådan ?
Avatar billede djicep Nybegynder
27. juli 2005 - 12:03 #21
Oki så er der kun lige 1 lille problem mere...
Dato tingen virker ikke.
Mine nyheder er skrevet den 1:1 1970 nu :S
Kan du hjælpe med det også eller ?
Avatar billede jaw Nybegynder
27. juli 2005 - 13:27 #22
Nej, hvis det bare er fordi at værdien er tom - altså at det er password istedet for Password, så vil mysql ikke brokke sig.

Hvad indeholder din $news_date fra? Det er jo den dato du indsætter i databasen. Og hvilken type er feltet "date" i tabellen - DATETIME ?
Avatar billede djicep Nybegynder
27. juli 2005 - 13:40 #23
Nej den hedder bare date i tabellen ??
Avatar billede djicep Nybegynder
27. juli 2005 - 13:44 #24
Men når jeg så kigger i databasen..
Så er der ingenting i date tabellen..
Den er bare tom :(
Avatar billede jaw Nybegynder
27. juli 2005 - 13:56 #25
Ok, skift det til DATETIME og så i din insert-query skal du udskifte $news_date til now()
Avatar billede djicep Nybegynder
27. juli 2005 - 14:09 #26
oki 2 sek
Avatar billede djicep Nybegynder
27. juli 2005 - 14:14 #27
altså der hvor der står mysql_query("insert into sitenews (date, top, text) values ('".$_POST['news_date']."', '".$_POST['news_top']."', '".$_POST['news_text']."')") or die(mysql_error() hva siger du at jeg skal ændre den til ?? :S
Avatar billede djicep Nybegynder
27. juli 2005 - 14:17 #28
oki nu kommer den selvfølgelig ud med en fejl fordi den hedder jo date i koden men i tabellen hedder den jo datetime nu
Avatar billede jaw Nybegynder
27. juli 2005 - 14:45 #29
Det var ikke navnet du skulle ændre til DATETIME, det er felttypen.
Avatar billede djicep Nybegynder
27. juli 2005 - 14:54 #30
oki nu har jeg ændret det, til DATETIME nu..
Hvor skulle jeg sætte det der now() så ?
Avatar billede jaw Nybegynder
27. juli 2005 - 15:01 #31
mysql_query("insert into sitenews (date, top, text) values ('now()', '".$_POST['news_top']."', '".$_POST['news_text']."')") or die(mysql_error();
Avatar billede djicep Nybegynder
27. juli 2005 - 15:04 #32
oki nu er der en parse error :(
Avatar billede jaw Nybegynder
27. juli 2005 - 15:08 #33
Ja ok, der mangler den sidste ) -> or die(mysql_error()); <- 2 paranteser til sidst...
Avatar billede djicep Nybegynder
27. juli 2005 - 15:12 #34
Ja okay... Sorry..
Men det hjælper ikke så meget for den siger stadigvæk den 1 : 1 1970 :(
Avatar billede jaw Nybegynder
27. juli 2005 - 15:14 #35
Er det hvad den indsætter hvis du manelt kigger i tabellen? Og du er sikker på, at felttypen nu er datetime?
Avatar billede djicep Nybegynder
27. juli 2005 - 15:16 #36
felt typen står til DATETIME.. og når jeg kigger manuelt så står der bare 000.000000.000 eller sådan ca deromkring.
Avatar billede djicep Nybegynder
27. juli 2005 - 15:16 #37
0000-00-00 00:00:00
Avatar billede jaw Nybegynder
27. juli 2005 - 15:19 #38
Ja, det står under "standardværdi", ik? Prøv at fjerne '...' om now()
Avatar billede djicep Nybegynder
27. juli 2005 - 15:24 #39
oki det hjalp..
men ikke det den udskriver :S
der står stadig 1:1:1970 selvom der står i tabellen hvornår den er skrevet..
Hmm er det fordi vi skal ind og ændre det i den første kode ?
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

IT-JOB