Vis alt undtagen...

Tags:    sql php

Hej.

Nogle her inde, der ved hvordan man kan vise alle brugerne UDOVER den pågældende bruger, der er inde og kigge på listen :)? Der er jo ingen grund til at se kan se sig selv, men jeg er lidt i tvivl hvordan det kan/skal gøres? Så nogle forslag :)?



5 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 7 karma
Sorter efter stemmer Sorter efter dato
en løsning men måske lidt overkill er at bruge NOT IN i sql
(utested)
Fold kodeboks ind/udKode 

ref https://www.google.com/search?q=mysql+not+in+list
http://stackoverflow.com/questions/11957643/mysql-variable-format-for-a-not-in-list-of-values
http://www.w3resource.com/mysql/comparision-functions-and-operators/not-in.php

en anden løsning kunne være at hente alle sammen og filtreare den fra i php med feks unset
http://php.net/manual/en/function.unset.php

(utested)
Fold kodeboks ind/udKode 


eller den helt oplagte
(utested)
Fold kodeboks ind/udKode 





Indlæg senest redigeret d. 02.08.2015 18:21 af Bruger #16075
Tusind tak :) Det var nemlig den "oplagte" jeg gik efter :)!



nr 1 var kun hvis der var flere der skulle udelukkes, feks ved en fårslå venner, hvor man ikke skal have fårslået dem man er venner med eller har afvist.

nr 2 var hvis alle brugerne var indlæst i et array i forvejen, har brugt det ifbm en indkøbs kurv (session array), hvor index er det sammen som varenummer_id, så var det nemt at slette en vare fra indkøbs kurven

nr 3 som jeg skrev "den oplagte", til dette, men man skal også nogle gange tænke ud af boxen

nb: jeg ser i dit tidligere spm http://www.udvikleren.dk/forum/46632/php-paging/ du anvender short open tags, hvilke er slået fra pr default på mange servere, så vend dig af med det.
ref http://php.net/manual/en/ini.core.php#ini.short-open-tag

Tells PHP whether the short form (<? ?>;) of PHP's open tag should be allowed. If you want to use PHP in combination with XML, you can disable this option in order to use <?xml ?> inline. Otherwise, you can print it with PHP, for example: <?php echo '<?xml version="1.0"?>'; ?>. Also, if disabled, you must use the long form of the PHP open tag (<?php ?>;).


taget fra min php.ini
short_open_tag=Off




Hvorfor ikke bare

$user_id=1;
$sql ="SELECT * FROM `users` WHERE users.id != $user_id";




Hvorfor ikke bare

det er det mest oplagte, og løser opgaven som jeg opfater den !!, og det vil helt klart være KISS, og også den brugeren valgte.

men opgaven kan løses på flere måder, derfor nogle alternativer.

hvad nu hvis der er flere personer der skal udelukkes ?? derfor viste jeg også en løsning med NOT IN
der kunne skrives som dette
Fold kodeboks ind/udKode 

men denne ville være pænere
Fold kodeboks ind/udKode 


så det er kun 1 af sql sætningerne der skal bruges!!, det håber jeg ikke nogle er i tvivl om

det kunne også være alle brugere allerede var læst ind i et array, tidligere i programmet, og så kunne unset være løsningen.

det er sammen opgave løst på 3 forskellige måder, med forskellige udgangs punkter




Indlæg senest redigeret d. 03.08.2015 11:04 af Bruger #16075
t