m8t Posted May 28, 2009 Report 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
marcis Posted May 28, 2009 Report 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
m8t Posted May 29, 2009 Author Report 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
marcis Posted May 29, 2009 Report Posted May 29, 2009 Neredzu, kur tu sastādītu mainīgo $pievienots Quote
m8t Posted May 29, 2009 Author Report 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
bubu Posted May 29, 2009 Report 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
m8t Posted May 29, 2009 Author Report 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
m8t Posted May 30, 2009 Author Report 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
marcis Posted May 30, 2009 Report Posted May 30, 2009 Neesmu pārliecināts, ka sapratu tevi pareizi, bet SELECT SUM(points) FROM `users` Quote
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.