Mi lehet a hiba?
Kiprobaltam egy php leptetot, rendesen mukodik, de ezt irja ki az elso sorban:
Strict Standards: Only variables should be passed by reference in C:\xampp\htdocs\lista.php on line 16
Mi lehet a hiba?
Forraskod:
<?php
$hostname='localhost';
$user='root';
$pass='';
$dbase='valami';
$connection = mysql_connect("$hostname" , "$user" , "$pass")
or die ("Can't connect to MySQL");
$db = mysql_select_db($dbase , $connection) or die ("Can't select database.");
mysql_query( "SET NAMES utf8");
$limit = 25;
$sql = "select count(id) from teszt";
$c = array_shift(mysql_fetch_row(mysql_query($sql)));
$maxpage = ceil($c / $limit);
$page = isset($_GET['page']) ? abs((int)$_GET['page']) : 1;
if ($page <= 0)
{
$page = 1;
}
else if ($page >= $maxpage)
{
$page = $maxpage;
}
$offset = ($page-1) * $limit;
$query = mysql_query("select * from teszt limit $offset, $limit ");
while ($row = mysql_fetch_assoc($query))
{
print $row['elem']."<br />";
}
//lapozó linkek
$linklimit = 10;
$linklimit2 = $linklimit / 2;
$linkoffset = ($page > $linklimit2) ? $page - $linklimit / 2 : 0;
$linkend = $linkoffset+$linklimit;
if ($maxpage - $linklimit2 < $page)
{
$linkoffset = $maxpage - $linklimit;
if ($linkoffset < 0)
{
$linkoffset = 0;
}
$linkend = $maxpage;
}
if ($page > 1)
{
print "<a href='?page=".($page-1)."'>Előző</a> ";
}
for ($i=1+$linkoffset; $i <= $linkend and $i <= $maxpage; $i++)
{
$style = ($i == $page) ? "color: black;" : "color: blue;";
print "<a href='?page=$i' style='$style'>[$i. oldal]</a> ";
}
if ($page < $maxpage)
{
print "<a href='?page=".($page+1)."'>Következő</a>";
}
?>
Én leszámoltam, és ez:
$c = array_shift(mysql_fetch_row(mysql_query($sql)));
A hibaüzenet pedig az, hogy csak változókat szabad referenciaként átadni.
Te pedig függvényhívást adtál át, ami nem tetszetős az interpreternek.
(Az array_shift() referenciát vár. Lásd doksi.)
Szedd ki egy változóba a függvény visszatérési értékét, és azt add át az array_shift()-nek.
Egyébként ha végiggondolod, illogikus így hívni az array_shift-et. A lényege az, hogy egy tömböt eltol balra, vagyis kiveszi az 1. elemet és a 2. elemtől fog kezdődni a tömb. A visszatérési értéke pedig a régi 1. elem. A tömböt, amit paraméterben megkap, pedig módosítja. Te a fenti kódban nem is tároltad el a tömböt.
Ha csak a tömb első elemére van szükséged, ne ezt a függvényt hívd, nem erre való. Indexelj inkább.
És RTFM! :)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!