varför vill inte paging funka.. får inga felmess , men när jag bläddrar till sid 2 så visas inga poster?
<?$sql = "SELECT Count(ID1) from kompisar where Till = '{$_SESSION['anvandarnamn']}'
and accepterad = 1 or Fran = '{$_SESSION['anvandarnamn']}' and accepterad = 1";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
$antal = mysql_result($result, 0);
echo $antal
$inlaggPerSida = 1; // sidor
$pageNumbers = ceil($antal/$inlaggPerSida);
if (isset($HTTP_GET_VARS["sida"])){
$sida = $HTTP_GET_VARS["sida"];
} else $sida = 1;
$start = ($sida-1) * $inlaggPerSida;
// paging
$sql = "SELECT kompisar.*, medlemmar.* FROM kompisar
INNER JOIN medlemmar ON medlemmar.Anvandarnamn = kompisar.till Where
kompisar.fran = '{$_SESSION['anvandarnamn']}' and accepterad = 1 union all
SELECT kompisar.*, medlemmar.* FROM kompisar INNER JOIN medlemmar
ON medlemmar.Anvandarnamn = kompisar.fran Where kompisar.till = '{$_SESSION['anvandarnamn']}'
and accepterad = 1 Order by Till ASC,status DESC LIMIT $start,$inlaggPerSida";
$result = mysql_query($sql);?>
$sql = "SELECT kompisar.*, medlemmar.* FROM kompisar
INNER JOIN medlemmar ON medlemmar.Anvandarnamn = kompisar.till Where
kompisar.fran = '{$_SESSION['anvandarnamn']}' and accepterad = 1 union all
SELECT kompisar.*, medlemmar.* FROM kompisar INNER JOIN medlemmar
ON medlemmar.Anvandarnamn = kompisar.fran Where kompisar.till = '{$_SESSION['anvandarnamn']}'
and accepterad = 1";
$result = mysql_query($sql);
echo mysql_num_rows($result);
Får du då ut samma siffra som $antal längre upp i skriptet?
När jag tar en titt på dina bägge sql-frågor, så har du kolumnnamnen Till och Fran i den ena, medans du har kolumnnamnen till och fran i den andra.
Om jag minns rätt så är Kolumnnamn case-sensitive, det innebär att antingen är det fel i endera SQL-frågan eller så refererar dina frågor till olika kolumner.
Testa att ändra så att Till och Fran blir rätt vad det gäller versaler/gemener, gentemot vad du har i din databas.
Tror inte det är själva pagingskriptet som det är problem med.
De flesta (om inte alla) pagingskript bygger principen att räkna antalet poster och sedan visa en delmängd ur dessa.
Urvalet i frågan som räknar antalet måste vara samma som när man sedan hämtar.
Här blev det olika antal om man plockade bort LIMIT (begränsningen av delmängd), så problemet bör snarare ligga i skillnader i SQL-frågorna.
Jag är för dålig på avancerade SQL-frågor, så detta kanske inte har någon betydelse, men om du gör samma urval när du räknar antal rader som när du hämtar, hur funkar det då?
<?php
$sql = "SELECT COUNT(*) FROM kompisar
INNER JOIN medlemmar ON medlemmar.Anvandarnamn = kompisar.till Where
kompisar.fran = '{$_SESSION['anvandarnamn']}' and accepterad = 1 union all
SELECT kompisar.*, medlemmar.* FROM kompisar INNER JOIN medlemmar
ON medlemmar.Anvandarnamn = kompisar.fran Where kompisar.till = '{$_SESSION['anvandarnamn']}'
and accepterad = 1";
$result = mysql_query($sql);
// $row = mysql_fetch_assoc($result);
$antal = mysql_result($result, 0);
echo $antal;
_vad_ funkar inte? är $_SESSION['anvandarnamn'] tom?
Om du gör en echo på $sql, skrivs en korrekt SQL-fråga ut då eller saknas det värden?
Istället för att skriva
where kompisar.fran = '{$_SESSION['anvandarnamn']}'
kan du skriva
where kompisar.fran = " . $_SESSION["anvandarnamn"] . "
SELECT kompisar.*, medlemmar.* FROM kompisar INNER JOIN medlemmar ON medlemmar.Anvandarnamn = kompisar.till Where kompisar.fran = 'jboy_87' and accepterad = 1 union ALL SELECT kompisar.*, medlemmar.* FROM kompisar INNER JOIN medlemmar ON medlemmar.Anvandarnamn = kompisar.fran Where kompisar.till = 'jboy_87' and accepterad = 1 Order by Till ASC,status DESC LIMIT 0,1
sida 2 =
SELECT kompisar.*, medlemmar.* FROM kompisar INNER JOIN medlemmar ON medlemmar.Anvandarnamn = kompisar.till Where kompisar.fran = 'jboy_87' and accepterad = 1 union ALL SELECT kompisar.*, medlemmar.* FROM kompisar INNER JOIN medlemmar ON medlemmar.Anvandarnamn = kompisar.fran Where kompisar.till = 'jboy_87' and accepterad = 1 Order by Till ASC,status DESC LIMIT 1,1
nån som vet?
när jag kör 2 wheret så blir det knas?
när jag tar bort det som är markerad så funkar det men kommer ut dubletter?
$sql = "SELECT kompisar.*, medlemmar.* FROM kompisar
INNER JOIN medlemmar ON medlemmar.Anvandarnamn = kompisar.till Where
kompisar.fran = '".$_SESSION['anvandarnamn']."' and accepterad = 1 union all
SELECT kompisar.*, medlemmar.* FROM kompisar INNER JOIN medlemmar
ON medlemmar.Anvandarnamn = kompisar.fran Where kompisar.till = '".$_SESSION['anvandarnamn']."' and
accepterad = 1 Order by Till,Fran ASC,status DESC LIMIT $start,$inlaggPerSida";
132 ms totalt · 3 externa anrop · v20260731065814-full.b746b907