m8t Posted May 28, 2009 Report Share Posted May 28, 2009 (edited) 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 May 28, 2009 by m8t Quote Link to comment Share on other sites More sharing options...
marcis Posted May 28, 2009 Report Share Posted May 28, 2009 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).") Quote Link to comment Share on other sites More sharing options...
m8t Posted May 29, 2009 Author Report Share Posted May 29, 2009 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 Quote Link to comment Share on other sites More sharing options...
marcis Posted May 29, 2009 Report Share Posted May 29, 2009 Neredzu, kur tu sastādītu mainīgo $pievienots Quote Link to comment Share on other sites More sharing options...
m8t Posted May 29, 2009 Author Report Share Posted May 29, 2009 $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. Quote Link to comment Share on other sites More sharing options...
bubu Posted May 29, 2009 Report Share Posted May 29, 2009 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. Quote Link to comment Share on other sites More sharing options...
m8t Posted May 29, 2009 Author Report Share Posted May 29, 2009 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. Quote Link to comment Share on other sites More sharing options...
m8t Posted May 30, 2009 Author Report Share Posted May 30, 2009 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? Quote Link to comment Share on other sites More sharing options...
marcis Posted May 30, 2009 Report Share Posted May 30, 2009 Neesmu pārliecināts, ka sapratu tevi pareizi, bet SELECT SUM(points) FROM `users` Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.