webForumDet fria alternativet

Jag är nybörjare hjälp mej!!!

PHP

21 svar · 346 visningar · startad av fundersam

Medlem sedan aug. 2002101 inlägg
Frågan#1

Jag har ett litet problem... jag vill göra en enkel bannerslumpare utan några som helst speciella finesser men det e nåt fel på min kod;

<?
mysql_connect("localhost", "mittinlogg");
mysql_select_db("mindatabas");
$slump = mysql_query("SELECT FROM banner ORDER BY RAND() LIMIT 1);
while ("$r = mysql_fetch_array($slump)")
{
$id = $r["id"];
$banner = $r["banner"];
$sokvag = $r["sokvag"];
}
echo = "<a href=\"$sokvag"\ target=\"_blank"\><img src=\"$banner"\></a>
?>

jag får bara 'parse-errors' on line 13
(while ("$r = mysql_fetch_array($slump)")-raden)

Medlem sedan okt. 2001152 inlägg
#2

Till och börja med så är det ju fel på flera ställen i scriptet
orginal:
<?
mysql_connect("localhost", "mittinlogg");
mysql_select_db("mindatabas");
$slump = mysql_query("SELECT FROM banner ORDER BY RAND() LIMIT 1);
while ("$r = mysql_fetch_array($slump)")
{
$id = $r["id"];
$banner = $r["banner"];
$sokvag = $r["sokvag"];
}
echo = "<a href=\"$sokvag"\ target=\"_blank"\><img src=\"$banner"\></a>
?>

som jag tycker det borde se ut:
<?
mysql_connect("localhost", "mittinlogg", "mittlösenord");
mysql_select_db("mindatabas");
$slump = mysql_query("SELECT banner, sokvag FROM banner ORDER BY RAND() LIMIT 1);

$r = mysql_fetch_array($slump);

$banner = $r["banner"];
$sokvag = $r["sokvag"];

echo = "<a href=\"$sokvag\" target=\"_blank"\><img src=\"$banner"\></a>
?>

Du måste ju välja vilka fält som ska hämtas (* = alla, fungerar också) (id-fältet används ju inte ?)
Varför använda en while-loop när det bara är ett fält som ska hämtas?

Edit: Småfel i koden, som jag missade tidigare...

Medlem sedan aug. 2002101 inlägg
#3

Tack för ditt svar men... tyvärr hjälpte det ej! :( :(

Medlem sedan okt. 2001152 inlägg
#4

Om det inte fungerar nu heller så se vad det står för felmeddelande, brukar ju säga vad som är fel så du kan återgärda det menar jag

Om du inte får bukt på det hela ändå, så klistra in felmeddelandet du får...

edit: Redigareda inlägget ovan, läs

Medlem sedan aug. 2002101 inlägg
#5

Jag vet att jag är nybörjare...!

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in banner.php on line 16 är meddelandet

Medlem sedan aug. 2002101 inlägg
#6

Förresten har jag alltid lärt mej att man måste "escapa" såhär \" "\ när man vill ha 'specialtecken'!

Medlem sedan okt. 2001152 inlägg
#7

Rad 16 ? Har du mera kod i filen så skriv gärna i det också (den här lilla kodbiten innehåller ju endast 11-12 rader)

Medlem sedan aug. 2002101 inlägg
#8

<html>
<head>
<title>
Testet
</title>
</head>
<body>

<?
mysql_connect("localhost", "mittinlogg");
mysql_select_db("doomquaker_se_db");
$slump = mysql_query("SELECT banner, sokvag FROM banner ORDER BY RAND() LIMIT 1);

$r = mysql_fetch_array($slump);

$banner = $r["banner"];
$sokvag = $r["sokvag"];

echo = "<a href=\"$sokvag"\ target=\"_blank"\><img src=\"$banner"\></a>

?>
Det blev bara rad 16 pga att jag använde din kod :e

Medlem sedan aug. 20002 975 inlägg
#9

Det saknas ett avslutande citationstecken runt sql-frågan i mysql_query().

Medlem sedan aug. 2002101 inlägg
#10

Parse error: parse error, expecting `','' or `';'' in banner.php on line 19

Koden ser nu ut såhär:

<html>
<head>
<title>
Testet
</title>
</head>
<body>

<?
mysql_connect("localhost", "doomquaker");
mysql_select_db("doomquaker_se_db");
$slump = mysql_query("SELECT banner, sokvag FROM banner ORDER BY RAND() LIMIT 1");

$r = mysql_fetch_array($slump);

$banner = $r["banner"];
$sokvag = $r["sokvag"];

echo = "<a href=\"$sokvag"\ target=\"_blank"\><img src=\"$banner"\></a>";

?>
Du får ursäkta om jag låter dum... men tar inte mysql_query:n bara ut sokvag??

Medlem sedan aug. 2002101 inlägg
#11

Eller nej det gör den ju ej! Ups nu var jag visst riktigt dumm

Medlem sedan okt. 2001152 inlägg
#12

Du har svamlat ihop det litet med \"-grejerna, dessutom saknades det ett " i slutet av queryn (vilket även jag missade)
Detta borde fungera iaf

<html>
<head>
<title>
Testet
</title>
</head>
<body>

<?
$connect = mysql_connect("localhost", "virrdo", Hewran);
mysql_select_db("virrdo_uk_db");
$slump = mysql_query("SELECT banner, sokvag FROM banner ORDER BY RAND() LIMIT 1**"**)
or die (mysql_error());
/* or die -grejen visar ett felmeddelade som mysql generar så du vet vad som fel i queryn, om det är någe fel dvs. */

$r = mysql_fetch_array($slump);

$banner = $r["banner"];
$sokvag = $r["sokvag"];

echo "<a href=\"$sokvag**\"** target=\"_blank**\"><img src=\"$banner\"**></a>";
?>

Medlem sedan aug. 2002101 inlägg
#13

Nu funkade det. Men jag förstår ej den stora skillnaden på din kod och min? är det or die())? eller? :q

Medlem sedan aug. 2002101 inlägg
#14

men det e väl ingen stor skillnad i query har jag ju båda " " na

Medlem sedan okt. 2001152 inlägg
#15

$slump = mysql_query("SELECT banner, sokvag FROM banner ORDER BY RAND() LIMIT 1);

Så såg din ut, och utan " i slutet...
$slump = mysql_query("SELECT banner, sokvag FROM banner ORDER BY RAND() LIMIT 1**"**);
...så är inte queryn fullständig, räcker det som förklaring ?

Medlem sedan aug. 2002101 inlägg
#16

err jaha men jag har " i slutet...

Medlem sedan aug. 20002 975 inlägg
#17

Fundersam:

den stora skillnaden mellan ditt och virrdos sist visade kod är den här raden:
echo "<a href=\"$sokvag\" target=\"_blank\"><img src=\"$banner\"></a>";
virrdo har lagt sina escape-tecken före citationstecken, vilket du inte gjort på alla ställen. Kolla virrdos betoning (fetstil).

Medlem sedan aug. 2002101 inlägg
#18

Oki Tackar!

Medlem sedan aug. 2002101 inlägg
#19

om jag vill ha statistik så skriver jag: <?
mysql_connect("localhost", "doomquaker");
mysql_select_db("doomquaker_se_db");
$slump = mysql_query("SELECT banner, sokvag, visad FROM banner ORDER BY RAND() LIMIT 1")
or die (mysql_error());

$r = mysql_fetch_array($slump);

$banner = $r["banner"];
$sokvag = $r["sokvag"];
$visad = $r["visad"];
$visad = "$visad + 1";

echo "<a href=\"$sokvag\" target=\"_blank\"><img src=\"$banner\"></a>";
print("$visad");
mysql_query("UPDATE visad SET visad = $visad WHERE banner = $banner")
?>
eller?

Medlem sedan okt. 2001152 inlägg
#20

mysql_query("UPDATE banner SET visad = $visad WHERE banner = $banner");

skulle nog vara lämpligare isåf...

265 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)