Jump to content
php.lv forumi

atlaujam tikai 1 click uz link


m8t

Recommended Posts

Tātad, vēlējos izveidot skriptu, ar kura palīdzību es varēt redzēt, uz kuriem linkiem nav lietotājs klikšķinājis un ar kura palīdzību varētu lietot`jas redzēt tikai tos linkus, uz kuriem viņš nav klikšķinājis. Idjea bija šāda:

 

$query = "SELECT * FROM {$tblprefix}pievienotie WHERE userid='{$p_id}'"; 
$run = mysql_query($query)
or die("Error running query: " . mysql_error());
while($row = mysql_fetch_array($run)) {
$pievienots = $row['pievienotaid'];
}
$query = "SELECT * FROM {$tblprefix}users WHERE id!='{$pievienots}'"; 
$run = mysql_query($query)
or die("Error running query: " . mysql_error());
while($row = mysql_fetch_array($run)) {
$nepievienots = $row['id'];
}

Kad es noklikšķinu uz pieņemsim google.com, nospiežu refresh - google links pazūd, tad es varu noklikšķināt uz yahoo.com un google parādās - yahoo pazūd. Attiecīgi, pazūd tikai pedējais links uz kura esmu klikšķinājis. Ir kādas idejas kā varētu salabot?

 

Paldies jau iepriekš!

 

ps.- par cik jau var manuprāt noprast - izmantotas ir 2 tabulas. 1 tabula ar lietotājiem(linkiem) un otra ar lietotājaid un pievienotā lietotāja id.

Edited by m8t
Link to comment
Share on other sites

Ideja jau ir gandrīz pareiza, tikai dažas nianses.

Datus par atvērtajiem linkiem met masīvā, nevis pārraksti mainīgo - $pievienots[] = $row['pievienotaid'];

Un selektējot izmanto IN, nevis "=" - WHERE id NOT IN (".implode(",",$pievienots).")

Link to comment
Share on other sites

Ideja jau ir gandrīz pareiza, tikai dažas nianses.

Datus par atvērtajiem linkiem met masīvā, nevis pārraksti mainīgo - $pievienots[] = $row['pievienotaid'];

Un selektējot izmanto IN, nevis "=" - WHERE id NOT IN (".implode(",",$pievienots).")

Man error rāda, nemāku salabot ;(

$query = "SELECT * FROM {$tblprefix}users WHERE id NOT IN (".implode(",",$pievienots).") "; 
$run = mysql_query($query)
or die("Error running query: " . mysql_error());
while($row = mysql_fetch_array($run)) {
$nepievienots = $row['id'];
echo ''.$nepievienots.'';
}

Warning: implode() [function.implode]: Invalid arguments passed in /home/a5337757/public_html/draugiem/panel.php on line 50

Free Web Hosting
Error running query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1

Link to comment
Share on other sites

$pievienots sastādīju augšējā kodā:

 

$query = "SELECT * FROM {$tblprefix}pievienotie WHERE userid='{$p_id}'";
$run = mysql_query($query)
or die("Error running query: " . mysql_error());
while($row = mysql_fetch_array($run)) {
$pievienots = $row['pievienotaid'];
}
$query = "SELECT * FROM {$tblprefix}users WHERE id NOT IN (".implode(",",$pievienots).") ";
$run = mysql_query($query)
or die("Error running query: " . mysql_error());
while($row = mysql_fetch_array($run)) {
$nepievienots = $row['id'];
echo ''.$nepievienots.'';
}

Tagat viss kods redzams, iepriekšējā postā neuzskatīju par nepieciešamu atkārtot to daļu, kuru neizmainīju.

Link to comment
Share on other sites

implode otrajā argumentā sagaida masīvu. Taču tu $pievienots mainīgajam piešķir stringu.

Aizvieto to pirmo while ciklu ar šādu kodu:

$pievienots = array();
while($row = mysql_fetch_array($run))
{
$pievienots[] = $row['pievienotaid'];
}

 

marcis to tev jau #2 postā teica.

Link to comment
Share on other sites

Tātad, mans kods pašlaik ir šāds:

$query = "SELECT * FROM {$tblprefix}pievienotie WHERE userid='{$p_id}'";
$run = mysql_query($query)
or die("Error running query: " . mysql_error());
$pievienots = array();
while($row = mysql_fetch_array($run)) {
$pievienots[] = $row['pievienotaid'];
}
$query = "SELECT * FROM {$tblprefix}users WHERE id NOT IN ('.implode(',',$pievienots).')";
$run = mysql_query($query)
or die("Error running query: " . mysql_error());
while($row = mysql_fetch_array($run)) {
$nepievienots = $row['id'];
echo "$nepievienots\n";
}

Ar šo kodu man parāda visus ID (1 2 3 4 5 6 7 8 9 10...), lai arī man datubāzē pie mana userid stāv pāris id (6, 12).

Ja es nomainu šo rindiņu:

$query = "SELECT * FROM {$tblprefix}users WHERE id NOT IN ('.implode(',',$pievienots).')";

uz šādu:

$query = "SELECT * FROM {$tblprefix}users WHERE id NOT IN (".implode(",",$pievienots).")

Parādās šāds error:

Error running query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1

 

nav ne jausmas ko darīt. lūdzu palīdziet.

Link to comment
Share on other sites

Labi, pats visu salaboju un viss iet. Nevēlos taisīt vēlvienu tēmu, tādēļ iepostošu šeit pat vēlvienu jautājumu.

 

Tātad, man ir 1 tabula - users. Šajā tabulā man ir dažādas lietas (userid, login, password, points utt.). Kā lai es izveidoju funkciju, kura izvilktu points no katra lietotāja kollonas un sasakaitītu viņus visus kopa?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...