Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 17:57

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Kurze SQL-Frage in Verbindung mit PHP

Discussion on Kurze SQL-Frage in Verbindung mit PHP within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1
 
Legithos's Avatar
 
elite*gold: 95
Join Date: Nov 2009
Posts: 669
Received Thanks: 47
Kurze SQL-Frage in Verbindung mit PHP

Hallo ihr Lieben,

welchen SQL-Befehl brauche ich wenn ich bei folgender Tabelle alle Werte einer Reihe nehmen will, wo keine 0 drinne steht ? Wichtig ist hier, dass die Werte die ich brauche immer unterschiedlich sind, mal brauche ich data1, mal data2 und mal data3 (also je nachdem wo keine 0 drinne ist).

User
Code:
user_id - username - usertype - data1 - data2 - data3

1          ichbins       1        1        0       0
2          wirsins       1        0        0       0
3          rhrsins       1        0        1       1
Ich will praktisch bei der ID 1 NUR user_id, username, usertype, data1.
Bei ID 2 dann user_id, username und usertype.
Bei ID 3 dann user_id, username, usertype, data2 und data3.

Ist das einfach umsetzbar ?

EDIT

Eine zweite Option wäre natürlich solche:

Code:
user_id - username - usertype - data1 - data2 - data3

1          ichbins       1        1        0       0
2          wirsins       1        1        1       0
3          rhrsins       1        1        1       1
Hier die Überlegung, die ID 1 (bei der ich nur eine Information hab) einfach zu definieren, dass ich von der Reihe alle Daten bis zu data1 brauche.
Bei ID 2 (mit 2 Informationen) dann bis zu data2.
Bei ID 3 (mit 3 Informationen) dann bis zu data3.

Die Anzahl an Informationen könnte ich auch als Variable im Vorfeld speichern (z.B. $amount_information = 5 wenn ich bis zu data2 will ... heißt also insgesamt dann 5 Spalten user_id, username, usertype, data1 und data2 von einer Reihe ).

Grüße,

Legithos
Legithos is offline  
Old 05/20/2019, 21:10   #2


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
Kann sein das ich gerade einfach zu doof bin, aber ich verstehe dein Ziel nicht ganze.
Willst du nur Benutzer haben die data1 = 1 haben dann kannst du ganz normal ein
Code:
WHERE data1 = 1
benutzen.

Kannst du ein reales Beispiel uns geben ?
False is offline  
Old 05/20/2019, 21:29   #3
 
Legithos's Avatar
 
elite*gold: 95
Join Date: Nov 2009
Posts: 669
Received Thanks: 47
Nein, das wäre ja nicht schwer. Ich will nur die Spalten einer Reihe, die nicht 0 sind ausgeben. Das aber in einem SQL-Query und nicht für alle 3 IDs einen eigenen SQL-Query.

Also bei ID 1 alle außer data2 und data3.
Bei ID 2 alle außer data3.
Bei ID 3 alle.


ODER kann ich in einer SQL-Tabelle mehrere Spalten gleich benennen ? Dann könnte ich zb. WHERE data != 0 machen ?
Legithos is offline  
Old 05/20/2019, 22:09   #4


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
Quote:
Originally Posted by Legithos View Post
Nein, das wäre ja nicht schwer. Ich will nur die Spalten einer Reihe, die nicht 0 sind ausgeben. Das aber in einem SQL-Query und nicht für alle 3 IDs einen eigenen SQL-Query.

Also bei ID 1 alle außer data2 und data3.
Bei ID 2 alle außer data3.
Bei ID 3 alle.


ODER kann ich in einer SQL-Tabelle mehrere Spalten gleich benennen ? Dann könnte ich zb. WHERE data != 0 machen ?
Du kannst die Ausgabe nur einschränken, aber nicht on the fly die auszugebenen Felder bestimmen.
Hol dir einfach alle und prüf es dann in PHP (oder was auch immer du nutzt).
False is offline  
Thanks
1 User
Old 05/20/2019, 22:18   #5


 
iMostLiked's Avatar
 
elite*gold: 1337
Join Date: Apr 2013
Posts: 6,480
Received Thanks: 3,191
Kannst das Case-Statement nutzen.
Code:
(CASE
    WHEN id = 1 THEN data1 = 1
    WHEN id = 2 THEN data1 = 1 AND data2 = 1
    WHEN id = 3 THEN data1 = 1 AND data2 = 1 AND data3 = 1
    ELSE data1 = 0
END);
Aber ich verstehe eine Sache nicht, was ist bei dir ID? Etwa die user_id? Falls ID eine Variable ist, welche in PHP evaluiert wird, kannst du ganz einfach das SQL-Statement entsprechend bauen. Also:

Code:
$WHERE = "data1 = 1";
if ($id === 2){
    $WHERE .= " AND data2 = 1";
}else if ($id === 3){
    $WHERE .= " AND data2 = 1 AND data3 = 1";
}
iMostLiked is offline  
Thanks
1 User
Old 05/20/2019, 22:24   #6


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
Quote:
Originally Posted by iMostLiked View Post
Kannst das Case-Statement nutzen.
Code:
(CASE
    WHEN id = 1 THEN data1 = 1
    WHEN id = 2 THEN data1 = 1 AND data2 = 1
    WHEN id = 3 THEN data1 = 1 AND data2 = 1 AND data3 = 1
    ELSE data1 = 0
END);
Aber ich verstehe eine Sache nicht, was ist bei dir ID? Etwa die user_id? Falls ID eine Variable ist, welche in PHP evaluiert wird, kannst du ganz einfach das SQL-Statement entsprechend bauen. Also:

Code:
$WHERE = "data1 = 1";
if ($id === 2){
    $WHERE .= " AND data2 = 1";
}else if ($id === 3){
    $WHERE .= " AND data2 = 1 AND data3 = 1";
}
Soweit ich das verstanden habe geht es nicht um die Id, sondern an die werte in den Feldern data1/data2/data3.
Steht dort eine 1 drin will er diese haben, wenn eine 0 drin steht dann nicht.
Wobei das für mich kein Sinn macht, habe aber leider auch kein Reales Beispiel bekommen wie gewünscht (womit man eine schönere Lösung finden könnte)
False is offline  
Thanks
1 User
Old 05/20/2019, 23:51   #7
 
Legithos's Avatar
 
elite*gold: 95
Join Date: Nov 2009
Posts: 669
Received Thanks: 47
Quote:
Originally Posted by False View Post
Soweit ich das verstanden habe geht es nicht um die Id, sondern an die werte in den Feldern data1/data2/data3.
Steht dort eine 1 drin will er diese haben, wenn eine 0 drin steht dann nicht.
Wobei das für mich kein Sinn macht, habe aber leider auch kein Reales Beispiel bekommen wie gewünscht (womit man eine schönere Lösung finden könnte)
Mit der ID meinte ich die user_id, ja ! Ich bin inzwischen auch den Weg gegangen über PHP zu gucken. Ein reales Beispiel zu konstruieren hätte wahrscheinlich nicht nur mein Projekt verraten, sondern auch bestimmt länger gedauert als eine Lösung zu finden .. Bin dir trotzdem immer dankbar für deine Mühen False !

Vielen Dank für eure Hilfe !
Legithos is offline  
Old 05/21/2019, 20:17   #8
 
elite*gold: 100
Join Date: Apr 2008
Posts: 860
Received Thanks: 1,488
In dem Fall sind Attributaufzählungen als Spalten keine gute Idee. Mit ner zweiten Tabelle für die Data-Attribute kannst du mehr erreichen. Hast du ne Chance das zu ändern?
florian0 is offline  
Reply


Similar Threads Similar Threads
[php][sql] php-sql query fetch JID as '0'
04/02/2016 - SRO Private Server - 1 Replies
fghfhgfhgfhgfh
dringend php,ajax,html,sql coder für 2-3 kurze scripts gesucht
04/01/2013 - Coders Trading - 12 Replies
add riko3339 Skype brauche 2-3 kurze scripts sagt mir nen preis , wenn alle scripts miteinander harmonieren gibts nen bonus



All times are GMT +2. The time now is 17:58.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.