Slettet bruger
22. november 2005 - 21:30
Der er
36 kommentarer og 1 løsning
Blank side ved indhentning af data fra db
Hej eksperter! Her har jeg en kode, der af en eller anden grund bare retunerer en blank skærm... Hvorfor? Indholdet af 'index.php': <?php mysql_connect("localhost", "2ke", "sniper") or die(mysql_error()); mysql_query("INSERT INTO messages(from, subject, text, day, month, year, hour, minute, second) values('USER', 'SUBJECT', 'CONTENT', '01', '23', '4567', '01', '23', '45')"); mysql_select_db("forum") or die(mysql_error()); print "<title>Forum</title>"; $load = mysql_query("SELECT * FROM messages") or die(mysql_error()); while ($array = mysql_fetch_array($load)) { print " <br><br>" .$array["from"]. " <b>" .$array["subject"]. "</b> - " .$array["date"]. "/" .$array["month"]. " " .$array["year"]. " (" .$array["hour"]. " " .$array["minute"]. ":" .$array["second"]. ")<br>" .$array["text"]. " "; } ?>
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
22. november 2005 - 21:32
#1
Dit password m.v. burde ikke stå her på siden!
Slettet bruger
22. november 2005 - 21:36
#2
Siden er ikke publiseret på nettet; jeg bruger EasyPHP, så filerne ligger kun på min maskine...
22. november 2005 - 21:36
#3
Okay... Indeholder DB'en noget?
22. november 2005 - 21:37
#4
if(mysql_num_rows($load) == 0) { echo"Ingen rows fundet!"; exit; }
22. november 2005 - 21:38
#5
Og så out en or die mysql_error() på din insert
22. november 2005 - 21:38
#6
Nåh, så put
Slettet bruger
22. november 2005 - 21:39
#7
Haha... Du har ret; 'Ingen rows fundet!'!
22. november 2005 - 21:39
#8
Hvid DB'en er tom, vil din side jo også være blank!
Slettet bruger
22. november 2005 - 21:39
#9
Men hvorfor mon ikke...?
Slettet bruger
22. november 2005 - 21:40
#10
Men... Jeg sætter jo noget ind i starten?!
Slettet bruger
22. november 2005 - 21:41
#11
Oh... Og så lige en ting til: Hvorfor 'exit;'?
22. november 2005 - 21:41
#12
Du skal være 100% sikker på at du har stavet rigtigt - både "messages" og alle "from, subject, text, day, month, year, hour, minute, second"
Slettet bruger
22. november 2005 - 21:42
#13
k
22. november 2005 - 21:43
#14
exit var blot for testens skyld. Men flyt din mysql_select_db("forum") or die(mysql_error()); op foran din insert
Slettet bruger
22. november 2005 - 21:53
#15
Heee... Nogle steder havde jeg skrevet 'day' i stedet for 'date' (f.eks. i MySQL!)... Det er rettet nu, og den kan da også fint vise det den skal, men den kan stadig ikke indsætte dataen i db'en...
Slettet bruger
22. november 2005 - 21:54
#16
Har i et forslag...?
22. november 2005 - 21:56
#17
Har du ændret day til date ? så husk det samme i din "INSERT INTO messages(from, subject, text, day, month, year............"
22. november 2005 - 21:57
#18
Brug ` omkring feltnavne, så er du sikekr på IKKE at "konflikte" med reservede ord <html><head><title>Forum</title></head> <body> <?php mysql_connect("localhost", "2ke", "sniper") or die(mysql_error()); mysql_select_db("forum") or die(mysql_error()); mysql_query("INSERT INTO messages(`from`, `subject`, `text`, `day`, `month`, `year`, `hour`, `minute`, `second`) values('USER', 'SUBJECT', 'CONTENT', 01, 23, 4567, 01, 23, 45)") or die (mysql_error()); print "<title>Forum</title>"; $load = mysql_query("SELECT * FROM messages") or die(mysql_error()); if(mysql_num_rows($load) !=0) { while ($array = mysql_fetch_array($load)) { print " <br><br>" .$array["from"]. " <b>" .$array["subject"]. "</b> - " .$array["date"]. "/" .$array["month"]. " " .$array["year"]. " (" .$array["hour"]. " " .$array["minute"]. ":" .$array["second"]. ")<br>" .$array["text"]. " "; } }else{ echo"Ingen rows fundet i DB!"; } mysql_free_result($load); ?> </body></html>
22. november 2005 - 21:58
#19
Og hvis du alligevel ønsker at indsætte tidspunkt, så lav et felt i DB'en som er "datetime" og brug NOW() ved insert
Slettet bruger
22. november 2005 - 22:23
#20
datetime?! Hvordan præcist indsætter jeg f.eks. minutter?
Slettet bruger
22. november 2005 - 22:23
#21
OBS: Det virker stadig ikke...
Slettet bruger
22. november 2005 - 22:24
#22
Her er min testkode: <?php $from = "from"; $subject = "subject"; $text = "text"; $date = date(d); $month = date(m); $year = date(Y); $hour = "hour"; $minute = "min"; $second = "sec"; mysql_connect("localhost", "2ke", "sniper") or die(mysql_error()); mysql_select_db("forum") or die(mysql_error()); mysql_query("INSERT INTO messages('from', 'subject', 'text', 'date', 'month', 'year', 'hour', 'minute', 'second') values('$from', '$subject', '$text', '$date', '$month', '$year', '$hour', '$minute', '$second')"); print "<title>Forum</title>"; $load = mysql_query("SELECT * FROM messages") or die(mysql_error()); if(mysql_num_rows($load) == 0) { print "Ingen data fundet."; } else { while ($array = mysql_fetch_array($load)) { print " <br><br><u>" .$array["from"]. ": <b>" .$array["subject"]. "</b> - " .$array["date"]. "/" .$array["month"]. " " .$array["year"]. " (" .$array["hour"]. ":" .$array["minute"]. ":" .$array["second"]. ")</u><br>" .$array["text"]. " "; } } ?>
23. november 2005 - 13:33
#23
Prøv nu at smide or die (mysql_error()) på din insert! Og så ved jeg ikke om det evt. kan gi' probs i din echo når du smider punktum på næste linie?
Slettet bruger
25. november 2005 - 18:07
#24
Med mysql_error retunerer den: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from, subject, text, date, month, year, hour, minute, second) va
25. november 2005 - 18:17
#25
Som sagt, brug ` omkring mysqlnavne, og IKKE ' som du gør her: mysql_query("INSERT INTO messages('from', 'subject', 'text', 'date', 'month', 'year', 'hour', 'minute', 'second') values('$from', '$subject', '$text', '$date', '$month', '$year', '$hour', '$minute', '$second')"); det rigtige er så: mysql_query("INSERT INTO messages(`from`, `subject`, `text`, `date`, `month`, `year`, `hour`, `minute`, `second`) VALUES ('$from', '$subject', '$text', '$date', '$month', '$year', '$hour', '$minute', '$second')"); endvidere, så brug gerne ". $var ." når det er en php variabel, altså: mysql_query("INSERT INTO messages(`from`, `subject`, `text`, `date`, `month`, `year`, `hour`, `minute`, `second`) VALUES ('".$from ."', '". $subject ."', '". $text ."', '". $date ."', '". $month ."', '". $year ."', '". $hour ."', '". $minute ."', '". $second ."')"); endvidere mere, hvis det er et tal du vil insert, skal der ikke bruges ' omend det virker. Men for også at sikre det er et tal, kan bruges intval() Og har du noget som tjekker der ikke laves ged i den, altså sørger for at escape tegn som ' og "?
Slettet bruger
26. november 2005 - 08:24
#26
Ok... Men når du laver `... bruger du så bare en accant egu? (eller hvorden f**k det franske gejl nu staves...)
Slettet bruger
27. november 2005 - 08:12
#27
Nu ser min kode såden ud: (Jeg ved, det ikke er nødvendigt ned de der ` du har skrevet, jeg skal bruge... Jeg har lavet mange PHP-sider uden.) <?php // Hent variabler: $from = "from"; $subject = "subject"; $text = "text"; $date = date("d"); $month = date("m"); $year = date("Y"); $hour = "hour"; $minute = "min"; $second = "sec"; // Skab forbindelse: mysql_connect("localhost", "2ke", "sniper") or die(mysql_error()); // Opret database og tabel: mysql_query("DREATE DATABASE messages"); mysql_select_db("forum") or die(mysql_error()); mysql_query("CREATE TABLE messages ( from varchar(50), subject varchar(50), text varchar(50), date varchar(50), month varchar(50), year varchar(50), hour varchar(50), minute varchar(50), second varchar(50), )"); // Indsæt data: mysql_query("INSERT INTO messages(from, subject, text, date, month, year, hour, minute, second) values('$from', '$subject', '$text', '$date', '$month', '$year', '$hour', '$minute', '$second')") or die(mysql_error()); // Dokumentets titel: print "<title>Forum</title>"; // Marker data: $load = mysql_query("SELECT * FROM messages") or die(mysql_error()); // Tjek data: if(!mysql_num_rows($load)) { print "Ingen data fundet."; } else { // Hent data: while ($array = mysql_fetch_array($load)) { print " // Indsæt data: <br><br><u>" .$array["from"]. ": <b>" .$array["subject"]. "</b> - " .$array["date"]. "/" .$array["month"]. " " .$array["year"]. " (" .$array["hour"]. ":" .$array["minute"]. ":" .$array["second"]. ")</u><br>" .$array["text"]. " "; } } ?> - Og det dur stadig ikke!
Slettet bruger
27. november 2005 - 08:14
#28
Tja... Indtil viddere gørdet ikke noget at det er tal... Se db'ens opsætning.
Slettet bruger
04. december 2005 - 12:39
#29
Det kunne ingen forstå...? Hmm... Tak for hjælpen!
Slettet bruger
04. december 2005 - 12:40
#30
showsource, du kan bare smide et svar...
04. december 2005 - 14:40
#31
mails her fra exp kommer ret uregelmæssigt. Den sidste kode du viser, vil du oprette en database, uanset om den findes eller ej! Og så er det CREATE og ikke DREATE Og du kommer langt, hvis du putter "or die (mysql_error())" på dine query's
Slettet bruger
04. december 2005 - 15:31
#32
Ok... Points anyone? Showsource?
08. december 2005 - 09:20
#33
Har du fået det til at virke?
28. januar 2006 - 14:13
#34
???
Slettet bruger
01. april 2006 - 08:25
#35
Dang... Jeg glemmer at skrive tilbage på alle de spørgsmål jeg stiller... UNDSKYLD ALLE!!! PS: Bare smid et svar begge to - hvis I nogensinde ser dette :(
Slettet bruger
06. april 2007 - 18:51
#36
Suk... Sorry.
Slettet bruger
06. april 2007 - 18:52
#37
Haha der gik så lige et år og fem dage :)
Vi tilbyder markedets bedste kurser inden for webudvikling