Avatar billede rebuilder Nybegynder
12. november 2004 - 15:44 Der er 11 kommentarer og
2 løsninger

Mysql_query, hvordan laver man en WHERE var lig 'ALT'

Jeg skal hente noget fra en database, og hvis php-filen ikke at kaldet med nogle argumenter skal det blot finde alt....

hvordan gøres dette?
Avatar billede tofte Juniormester
12. november 2004 - 15:44 #1
SELECT * FROM tabel
Avatar billede rebuilder Nybegynder
12. november 2004 - 15:55 #2
if(!$_GET[where]){$_GET[where]="*";}

SELECT * FROM tabel Where var = '$_GET[where]'

Spurgt på en anden måde, hvad skal man søge på, for at finde alt...

Ved godt jeg kan skrive den sådan her;

---

if($_GET[where]){$_GET[where]="Where var = '$_GET[where]'";}

SELECT * FROM tabel$_GET[where]

---

men det er klamt...
Avatar billede michael_stim Ekspert
12. november 2004 - 15:58 #3
Ved ikke rigtigt om jeg er med, men kandu ikke bruge noget á la:
SELECT * FROM tabel WHERE var LIKE '%%'
Avatar billede rebuilder Nybegynder
12. november 2004 - 16:07 #4
indeed....

takker, point?
Avatar billede michael_stim Ekspert
12. november 2004 - 16:09 #5
Moi?
Avatar billede bojo Nybegynder
12. november 2004 - 16:29 #6
Jeg ved der er svaret, men jeg tror denne er hurtigere end LIKE

SELECT * FROM tabel WHERE 1

virkede toftes "SELECT * FROM tabel" ikke ?? odd
Avatar billede Slettet bruger
12. november 2004 - 17:05 #7
Bojos svar er det korrekte at bruge..
Avatar billede coderdk Praktikant
12. november 2004 - 17:05 #8
Fjern WHERE, som tofte skriver, det andet kan muligvis gå ud over din performance :P
Alternativt:

$sql = "SELECT * FROM tabel";
if ( !empty( $_GET['where'] ) )
{
  $sql .= " WHERE felt LIKE '%" . mysql_escape_string( $_GET['where'] ). "'";
}
Avatar billede rebuilder Nybegynder
12. november 2004 - 18:54 #9
bojo> hvordan vil du indsætte en variaben i den?
Avatar billede rebuilder Nybegynder
12. november 2004 - 18:56 #10
Jeg bruger en simplere:

SELECT * FROM tabel WHERE val LIKE '%$_GET[where]%' (fra michael_stim)

Noget galt i den?
Avatar billede bojo Nybegynder
12. november 2004 - 19:17 #11
rebuilder < er den egentlig ikke ligegyldig med variablen da du jo skal finde ALT. Hvis det er fordi du skal finde en row der hedder var må det jo blive

SELECT var FROM tabel WHERE 1

men sådan opfatter jeg ikke spørgsmålet. ( jeg er kendt for at have "opfattelsesproblemer" :-)

"SELECT * FROM tabel WHERE 1" gør det samme som michael_stims "SELECT * FROM tabel WHERE var LIKE '%%'" bare hurtigere og de gør det samme som toftes "SELECT * FROM tabel" som jeg opfatter som den "rigtigste", men det er jo op til dig :-) det forekomme mig bare lidt af en "omvej" at gennemgå alle opslag og teste om de er "LIKE '%%' da det betyder "alt som starter med hvadsomhelst og slutter med hvadsomhelst med ingenting imellem" er det så ikke bedre bare at sige ALT
Avatar billede rebuilder Nybegynder
12. november 2004 - 19:24 #12
SELECT * FROM tabel WHERE val LIKE '%$_GET[where]%'

Hvis $_GET[where] ikke findes hentes alt, det er mit formål !!!
Avatar billede bojo Nybegynder
12. november 2004 - 21:19 #13
dit valg kan kun gentage ( for sidste gang )

SELECT * FROM tabel  henter alt
SELECT * FROM tabel WHERE 1 henter alt
SELECT * FROM tabel WHERE %% henter alle rækker 1 af gangen og tester om de indeholder alt + ingenting + alt, hvad vi jo på forhånd ved at alle gør

alle 3 levere det ønskede, den sidste er absolut den langsommeste, men hva' hvis du er glad, er jeg også :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester