Just nu i M3-nätverket
Jump to content

Parse error


Starre

Recommended Posts

Får följande felmeddelande:

Parse error: parse error, unexpected T_STRING in d:\inetpub\wwwroot\las.php on line 4

 

när jag kör foljande kod:

 

<html>
<?
$open = mysql_connect("localhost", "anv", "passwd");
SELECT * FROM adresser WHERE fornamn = ’Nils’;
?>
</html>

 

Jag är helt novis på området. Vad betyder felet?

 

Tack på förhand!

 

Poäng utlovas för bra svar.

 

Link to comment
Share on other sites

Tråden bör flyttas till forumet PHP, där den hör hemma.

 

Angående felet så beror det på:

SELECT * FROM adresser WHERE fornamn = ’Nils’;

 

Du kan inte skriva SQL-frågor "bara så där".

 

Så här kan man göra:

<?php

//Koppling till databasserver
mysql_connect ("localhost", "xxx", "xxx");

//Välj databas
mysql_select_db ("databasnamn");

//SQL-fråga
$data = mysql_query("SELECT * FROM adresser WHERE fornamn = ’Nils’");

//Loopa igenom svaret (loopa ifall det finns fler svar)
while ($datarad = mysql_fetch_assoc($data))
{
echo "Namn: ".$datarad['namn']; //om fältet heter namn
}

?>

 

Och som en annan eForum-användare brukar säga: PHP-manualen är din vän!

 

http://www.php.net/manual/en/function.mysql-query.php

 

_________

TicoRoman - The One And Only

 

[inlägget ändrat 2003-04-03 22:29:43 av TicoRoman (Almir)]

Link to comment
Share on other sites

Jo, men det resulterar i följande felmeddelande:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in d:\inetpub\wwwroot\las.php on line 7

 

Rad 7:

while ($datarad = mysql_fetch_assoc($data))

 

Jo, PHP-manualen har jag kollat igenom men den verkar inte vara något för nybörjaren. =(

 

[inlägget ändrat 2003-04-03 22:44:44 av Starre]

Link to comment
Share on other sites

Då är det antagligen något fel på

$data = mysql_query("SELECT * FROM adresser WHERE fornamn = ’Nils’");

dvs att det inte returnerar tillbaka ett resultat av någon anledning (även "tomt" är ett resultat).

 

Skriv så här

$data = mysql_query("SELECT * FROM adresser WHERE fornamn = ’Nils’");
[b]echo mysql_error();[/b]

Om ovanstående är felaktigt så kommer det skrivas ut en felmeddelande. Vad står där?

 

Du kan också ha echo mysql_error(); efter mysql_connect samt mysql_select_db för att se att det inte är något fel där.

 

Jo, PHP-manualen har jag kollat igenom men den verkar inte vara något för nybörjaren. =(
Jag förstår. Det kan vara lite svårt att hitta i den om man inte vet vad man letar efter, så att säga.

 

_________

TicoRoman - The One And Only

 

 

[inlägget ändrat 2003-04-03 23:11:27 av TicoRoman (Almir)]

Link to comment
Share on other sites

Gav dig ett poäng redan nu, för ditt tålamod. :)

 

Okej. Har ändrat lite i sökparametrarna för SELECT-satsen men det upptäcker du nog.

 

las.php

<html>
<?
mysql_connect("localhost", "anv", "passwd");
mysql_select_db ("test");
$data = mysql_query("SELECT * FROM tabell1 WHERE efternamn = ’%sson’");
[b]echo mysql_error();[/b]

while ($datarad = mysql_fetch_assoc($data))
{
echo "Namn: ".$datarad['namn'];
}
?>
</html>

 

Generar följande:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in d:\inetpub\wwwroot\las.php on line 8

 

Ibland läggs även

You have an error in your SQL syntax near '’%sson’' at line 1

 

Tack på förhand ännu en gång!

[inlägget ändrat 2003-04-03 23:16:41 av Starre]

[inlägget ändrat 2003-04-03 23:26:28 av Starre]

[inlägget ändrat 2003-04-03 23:29:40 av Starre]

Link to comment
Share on other sites

Gav dig ett poäng redan nu, för ditt tålamod.
Tack. Det här ska fixas ;)

 

Då tar vi först det här:

WHERE efternamn = '%sson'

Jag antar att du vill ha alla personer vars efternamn slutar med sson. Då använder man inte = utan LIKE, dvs

WHERE efternamn LIKE ’%sson’");

 

Men det ska inte ge upphov till felet som du får.

 

Testa så här (för att kolla att anslutningen fungerar som den ska):

<?php
mysql_connect("localhost", "anv", "passwd") or die("<p>Kunde ej ansluta till databasen: " . mysql_error());

mysql_select_db("test") or die("<p>Kunde ej välja databas: " . mysql_error());

$data = mysql_query("SELECT * FROM tabell1 WHERE efternamn LIKE ’%sson’");
echo mysql_error();

while ($datarad = mysql_fetch_assoc($data))
{
echo "Namn: ".$datarad['namn'];
}
?>

 

Är det inte det, så är det möjligt att det är ett litet slarvfel i koden som jag helt enkelt inte ser. :(

 

 

_________

TicoRoman - The One And Only

 

[inlägget ändrat 2003-04-03 23:40:01 av TicoRoman (Almir)]

[inlägget ändrat 2003-04-03 23:44:13 av TicoRoman (Almir)]

Link to comment
Share on other sites

Självklart var det ett slarvfel. Nu har jag hittat den.

 

I SQL-frågor ska villkoren omges av ' (tangenten till höger om Ä) och INTE ´. Rätta till det så ska det fungera. ;)

 

Dvs:

$data = mysql_query("SELECT * FROM tabell1 WHERE efternamn LIKE '%sson'");

 

 

_________

TicoRoman - The One And Only

 

[inlägget ändrat 2003-04-03 23:47:08 av TicoRoman (Almir)]

Link to comment
Share on other sites

Underbart. Nu fungerar det (nästan).

Får en helt blank sida men då har det nog felat i inmatningen av datan.

 

Det får bli i morgon i en annan tråd. :)

 

Poäng för det här!

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...