Avatar billede fowler21 Nybegynder
07. april 2005 - 21:35 Der er 16 kommentarer og
1 løsning

Parse error

Jeg sidder og skal have hentet nogle nyheder frem fra en mySQL DB. Men jeg for følgende fejl :
Parse error: parse error in C:\Programmer\Apache Group\Apache2\htdocs\NP\news.php on line 30


Her er min kode :
<?php require_once('Connections/Noxious.php'); ?>
<?php
$colname_rsNews = "1";
if (isset($_GET['id'])) {
  $colname_rsNews = (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
}
mysql_select_db($database_Noxious, $Noxious);
$query_rsNews = sprintf("SELECT * FROM news WHERE id = %s ORDER BY id DESC", $colname_rsNews);
$rsNews = mysql_query($query_rsNews, $Noxious) or die(mysql_error());
$row_rsNews = mysql_fetch_assoc($rsNews);
$totalRows_rsNews = mysql_num_rows($rsNews);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="css/style.css" rel="stylesheet" type="text/css">
</head>

<body>
<?
$limit = 7;
$query = mysql_query("SELECT * FROM $news ORDER BY id DESC LIMIT $limit");

print "<b>Now Showing the $7 latest news items</b><br>";
while ($news = mysql_fetch_array($query))
{
print "<b> // some html for beautification
print $news['overskrift'];  // show overskrift
print "</b> - "; //html
print $news['tekst'];    //show tekst
print " - ";    //html
print $news['navn'];    //show name
}
?>
</body>
</html>
<?php
mysql_free_result($rsNews);
?>

Nogen der kan hjælpe mig ?
Avatar billede bromer Nybegynder
07. april 2005 - 21:37 #1
print "<b> // some

du har glemt at afslutte din streng.. istedet:

print "<b>";
Avatar billede fowler21 Nybegynder
07. april 2005 - 22:04 #2
Doh... Sikke da en flovmand jeg fik lavet der. Jeg så dem lige efter jeg havde postet.
Jeg rettede det med dem samme, men får istedet denne fejl : Now Showing the $7 latest news items

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Programmer\Apache Group\Apache2\htdocs\NP\news.php on line 27

Hvad er der galt der ?
Avatar billede bromer Nybegynder
07. april 2005 - 22:07 #3
Det er ikke særlig pænt at benytte variabler direkte inde i strenge. Hvad hvis du bruger denne kode:

<?
$limit = 7;
$query = mysql_query("SELECT * FROM " . $news . "ORDER BY id DESC LIMIT " . $limit) OR DIE(mysql_error());

print "<b>Now Showing the " . $limit . " latest news items</b><br>";

while ($news = mysql_fetch_array($query)) {
  print "<b>"; // some html for beautification
  print $news['overskrift'];  // show overskrift
  print "</b> - "; //html
  print $news['tekst'];    //show tekst
  print " - ";    //html
  print $news['navn'];    //show name
}
?>
Avatar billede fowler21 Nybegynder
07. april 2005 - 22:14 #4
hvad er alternativet, lave noget med include ?
Avatar billede bromer Nybegynder
07. april 2005 - 22:16 #5
det var ikke det jeg mente. Jeg synes at

print "test" . $var . "test;

er pænere end

print "test $var test";

fordi man manuelt har sammensat strengene "test", $var og "test". Hvad sker der med den kode jeg har skrevet til dig?
Avatar billede fowler21 Nybegynder
07. april 2005 - 22:23 #6
For endnu en fejlmelding :-(
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 'ORDER BY id DESC LIMIT 7' at line 1

Kan godt se din kode er meget pænere end min. Er forholdsvis ny i PHP, så det kan godt se jeg har "mere brød i ovnen, end jeg kan bage"
Avatar billede bromer Nybegynder
07. april 2005 - 22:30 #7
Det er da godt at du kan se det, for så tænker du nok over det næste gang du skal bruge værdier i din streng. Som du kan se er det en MySQL fejl, så din query er forkert. Jeg tror du har glemt at definere variablen $news

Prøv:

<?
$limit = 7;

print "Hvad indeholder news: " . $news;

$query = mysql_query("SELECT * FROM " . $news . "ORDER BY id DESC LIMIT " . $limit) OR DIE(mysql_error());

print "<b>Now Showing the " . $limit . " latest news items</b><br>";

while ($news = mysql_fetch_array($query)) {
  print "<b>"; // some html for beautification
  print $news['overskrift'];  // show overskrift
  print "</b> - "; //html
  print $news['tekst'];    //show tekst
  print " - ";    //html
  print $news['navn'];    //show name
}
?>
Avatar billede fowler21 Nybegynder
07. april 2005 - 23:47 #8
For stadig følgende fejl :
Hvad indeholder news: 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 'ORDER BY id DESC LIMIT 7' at line 1

Har bare brugt copy/paste

Det er da tabellen og ikke databasen jeg skal tage det fra ik ?
Tænker på der hvor jeg skriver news ( som min tabel hedder )
Avatar billede bromer Nybegynder
07. april 2005 - 23:49 #9
News er jo en variabel, så den skal du definere.. får du ikke noget output som "Hvad indehoder ..." og så noget mere.. prøv med:

$query = mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT " . $limit) OR DIE(mysql_error());

istedet for

$query = mysql_query("SELECT * FROM " . $news . "ORDER BY id DESC LIMIT " . $limit) OR DIE(mysql_error());
Avatar billede fowler21 Nybegynder
07. april 2005 - 23:54 #10
Jo den får jeg, det står også i den sidste fejlmeddelse jeg skrev.
Har også prøvet med den sidste mulighed du kom med, den gav følgende :
Hvad indeholder news: 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 'ORDER BY id DESC LIMIT 7' at line 1
Avatar billede fowler21 Nybegynder
07. april 2005 - 23:54 #11
Forresten, tak for at du er så hurtig med svarene
Avatar billede bromer Nybegynder
07. april 2005 - 23:59 #12
det var så lidt. Problemet var som jeg sagde at der ikke var noget i din $news variabel så din SQL sætning blev:

SELECT * FROM ORDER BY id DESC LIMIT 7

hvor den burde være

SELECT * FROM news ORDER BY id DESC LIMIT 7
Avatar billede fowler21 Nybegynder
08. april 2005 - 00:05 #13
Jamen for ******* da. Så kører det bare derudaf. Helt perfekt.
Så kommer det store spørgsmål bare om hvor dan jeg får det styret på plads med css, så det kommer til at stå pænt. Men hva' fanden, natten er jo ung ;-)
Du får ihvertfald points med det samme. Tak endnu engang for den store hjælp
Avatar billede fowler21 Nybegynder
08. april 2005 - 00:12 #14
Ja, og så ikke helt alligevel, rettede lidt idet igen så det hedder $limit i stedet for LIMIT 7, men den viser alle posts istedet for de 7 jeg ville have den til
Avatar billede bromer Nybegynder
08. april 2005 - 00:15 #15
det er klart. Min pointe var også at jeg manuelt erstattede variablerne i din query med deres værdi så du kunne se hvad der blev sendt til databasen. Tak for point :)
Avatar billede fowler21 Nybegynder
08. april 2005 - 00:26 #16
Jamen igen har du da fuldstændig ret. Det er vidst bare mig der har for travlt. Skal blive bedre til at læse koderne igennem, engang mere. Det er jo indelysende når du lige siger det. Har lige smidt 100% god karma til dig. Så skal du nok slippe for mig. ( Ihvertfald i denne tråd ) ;-)
Avatar billede bromer Nybegynder
08. april 2005 - 00:27 #17
hey, mange tak for det. Men nu er jeg her jo for at hjælpe så du forstyrrer bare alt det du vil.
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