Проблем с MySQL_query в скрипт за новини
2 отговора
0 прегледа
Проблем с MySQL_query в скрипт за новини
Здравейте!
Имам един скрипт (ticker, javascript), който печата новините буква по буква, като ги дърпа от ДБ. Проблемът идва, когато в заявката променя limit:
$sql = mysql_query("SELECT * FROM newsystem ORDER BY newsid ASC limit 4",$connect);
Скриптът работи само с limit 3 или 4; ако махна limit или напиша 5,6... спира.
Освен това има и проблем с url-то на новината. Като сложа мишката над линка (hover) в статус бар-а се появява както си ми е реда:
[линк] или 3 или 4
Но, винаги зарежда само новината с id=1.
Eто го целия скрипт:
<script type="text/javascript">
<!--
var msg=new Array();
var msgid=new Array();
<?PHP
include("config.php");
$sql = mysql_query("SELECT * FROM newsystem ORDER BY newsid ASC limit 4",$connect);
$i=0;
while($row = mysql_fetch_array($sql)){
$newsid = intval($row['newsid']);
$description= stripslashes($row['description']);
echo " msg[$i]='$description'; \n\r";
echo " msgid[$i]='$newsid'; \n\r";
$i++;
}
?>
//-->
var delaybetweenmessages=30;//also alters if typespeed is altered
var typespeed=70;
var timer=0;
var next=0;
var pos=0;
var a='-';
var b='_';
var c=' ';
var cursor=a;
function Type()
{
if(!typespeed)
{
return;
}
var ticker = document.getElementById('spanTicker');
if(!pos)
{
ticker.href = '../latestnews.php?id=' + msgid[next];
}
if (timer == 0)
pos++;
if (msg[next].substring(pos-1,pos) == " ")
pos++;
if (pos > msg[next].length)
{
timer++;
}
if (timer > msg[next].length)
{
next++;
pos=0;
timer=0;
cursor=a;
}
if (next == msg.length)
next=0;
if (timer != 0)
{
cursor=c;
}
if (cursor==a)
{
cursor=b;
}
else if (cursor==b)
{
cursor=a;
}
text= '<b>Recent news</b>:
' + msg[next].substring(0,pos);
if(ticker.innerHTML != text + cursor)
{
ticker.innerHTML = text + cursor;
}
setTimeout('Type()',typespeed);
}
</script>
</head>
<body onload="Type()">
<div id="ticker"><a href="#" target="_parent" id="spanTicker">News ticker...</a></div>
</body>
</html>
Благодаря предварително за помощта ви!
Имам един скрипт (ticker, javascript), който печата новините буква по буква, като ги дърпа от ДБ. Проблемът идва, когато в заявката променя limit:
$sql = mysql_query("SELECT * FROM newsystem ORDER BY newsid ASC limit 4",$connect);
Скриптът работи само с limit 3 или 4; ако махна limit или напиша 5,6... спира.
Освен това има и проблем с url-то на новината. Като сложа мишката над линка (hover) в статус бар-а се появява както си ми е реда:
[линк] или 3 или 4
Но, винаги зарежда само новината с id=1.
Eто го целия скрипт:
<script type="text/javascript">
<!--
var msg=new Array();
var msgid=new Array();
<?PHP
include("config.php");
$sql = mysql_query("SELECT * FROM newsystem ORDER BY newsid ASC limit 4",$connect);
$i=0;
while($row = mysql_fetch_array($sql)){
$newsid = intval($row['newsid']);
$description= stripslashes($row['description']);
echo " msg[$i]='$description'; \n\r";
echo " msgid[$i]='$newsid'; \n\r";
$i++;
}
?>
//-->
var delaybetweenmessages=30;//also alters if typespeed is altered
var typespeed=70;
var timer=0;
var next=0;
var pos=0;
var a='-';
var b='_';
var c=' ';
var cursor=a;
function Type()
{
if(!typespeed)
{
return;
}
var ticker = document.getElementById('spanTicker');
if(!pos)
{
ticker.href = '../latestnews.php?id=' + msgid[next];
}
if (timer == 0)
pos++;
if (msg[next].substring(pos-1,pos) == " ")
pos++;
if (pos > msg[next].length)
{
timer++;
}
if (timer > msg[next].length)
{
next++;
pos=0;
timer=0;
cursor=a;
}
if (next == msg.length)
next=0;
if (timer != 0)
{
cursor=c;
}
if (cursor==a)
{
cursor=b;
}
else if (cursor==b)
{
cursor=a;
}
text= '<b>Recent news</b>:
' + msg[next].substring(0,pos);
if(ticker.innerHTML != text + cursor)
{
ticker.innerHTML = text + cursor;
}
setTimeout('Type()',typespeed);
}
</script>
</head>
<body onload="Type()">
<div id="ticker"><a href="#" target="_parent" id="spanTicker">News ticker...</a></div>
</body>
</html>
Благодаря предварително за помощта ви!
Re: Проблем с MySQL_query в скрипт за новини
javascript не понася нови редове.
Опитай това:
$description= str_replace(array("\r", "\n"), '', nl2br(stripslashes($row['description'])));
echo " msg[$i]='$description';
echo " msgid[$i]='$newsid';
За новите редове се погрижи във функцията за извеждане
И най-ярките личности си плащат тока.
Опитай това:
$description= str_replace(array("\r", "\n"), '', nl2br(stripslashes($row['description'])));
echo " msg[$i]='$description';
echo " msgid[$i]='$newsid';
За новите редове се погрижи във функцията за извеждане
И най-ярките личности си плащат тока.
Re: Проблем с MySQL_query в скрипт за новини
Благодаря, но не заработи скрипта въобще...
Ако имаш желание да помогнеш, виж тук:
[линк]
проблемът е в линка на самата новина - не знам как да накарам url-то на новината да води към конкретната новина (както казах, макар да изписва
..../latestnews.php?newsid=3 например, все зарежда id=1...
В момента скриптът зарежда линк, който се образува така:
ticker.href = "../latestnews.php?newsid=<?php echo $myrow[newsid] ?>" + msgid[next];
това може да е смешно, но аз имам слаби познания по javascript и php, и именно затова търся помощ. Моля обясненията да са на разбираем за неспециалист като мен език. Благодаря!
Ако имаш желание да помогнеш, виж тук:
[линк]
проблемът е в линка на самата новина - не знам как да накарам url-то на новината да води към конкретната новина (както казах, макар да изписва
..../latestnews.php?newsid=3 например, все зарежда id=1...
В момента скриптът зарежда линк, който се образува така:
ticker.href = "../latestnews.php?newsid=<?php echo $myrow[newsid] ?>" + msgid[next];
това може да е смешно, но аз имам слаби познания по javascript и php, и именно затова търся помощ. Моля обясненията да са на разбираем за неспециалист като мен език. Благодаря!