php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.10.2011, 21:02  
Neuer Benutzer
 
Registriert seit: 18.01.2011
Beiträge: 20
PHP-Kenntnisse:
Anfänger
kramoo befindet sich auf einem aufstrebenden Ast
Standard SELECT WHERE mit mehreren Werten abfragen

Habe folgende Schleife.

PHP-Code:
while ($row $result->fetch()) {
$id $row['avzid'];
$abfrage = ("SELECT * FROM avz WHERE id != '$id'");
$result1 $db->query("$abfrage");

leider funktioniert das nicht so. Wahrscheinlich muss ich die Abfrage ausserhalb der Schleife ausführen?

$id bekommt mehrere Zahlen zugewiesen ( können über 100 verschiedene eindeutige Zahlen sein ).
Jezt bräuchte ich eine Abfrage die mir alle Datensätze holt wo id nicht gleich der gefundenen $id's sind.
Also so bräuchte ich das ganze.
SELECT * FROM avz WHERE id != 23 AND != 45 AND != 47 ......

Wie kann ich so was am besten realisieren? Und wie müsste die Abfrage lauten?
kramoo ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.10.2011, 21:16  
Erfahrener Benutzer
 
Registriert seit: 25.01.2009
Beiträge: 1.027
PHP-Kenntnisse:
Fortgeschritten
Capfly befindet sich auf einem aufstrebenden Ast
Capfly eine Nachricht über ICQ schicken Capfly eine Nachricht über MSN schicken
Standard

GROUP BY
__________________
MfG
~Capfly
Jetzt NEU! Cpix & Wbits Katahlan.de - Das Browsergame
Capfly ist gerade online   Mit Zitat antworten
Alt 16.10.2011, 02:07  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.266
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Sammel die IDs erst in einem Array, danach kannst du eine SELECT * FROM avz WHERE id NOT IN (1,2,3,4, ..) machen. Oder du machst die Abfrage gleich anhand deiner ersten:

SELECT * FROM avz WHERE id NOT IN (SELECT .. FROM ..)
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 07.11.2011, 22:53  
Neuer Benutzer
 
Registriert seit: 07.11.2011
Beiträge: 3
PHP-Kenntnisse:
Anfänger
puma242 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Sammel die IDs erst in einem Array, danach kannst du eine SELECT * FROM avz WHERE id NOT IN (1,2,3,4, ..) machen.
Wie kann ich denn dies anwenden, wenn bei mir die Werte in einem Array geschrieben stehen?

Etwa so:
Ich habe eine Tabelle mit einer Spalte, in der diverse Werte stehen können. Nun möchte ich alle Datensätze ausgeben, die in meinem Array stehen.

PHP-Code:
$array = array ( '1,3''1,31''1,35');
$sql mysql_query('SELECT * FROM `tabelle` WHERE `spalte` IN ('$array') '); 
Dies funktioniert aber nicht! Wo liegt hier mein Fehler?
puma242 ist offline   Mit Zitat antworten
Alt 07.11.2011, 23:04  
Erfahrener Benutzer
 
Registriert seit: 25.01.2009
Beiträge: 1.027
PHP-Kenntnisse:
Fortgeschritten
Capfly befindet sich auf einem aufstrebenden Ast
Capfly eine Nachricht über ICQ schicken Capfly eine Nachricht über MSN schicken
Standard

Guck dir die PHP-Grundlagen an!
__________________
MfG
~Capfly
Jetzt NEU! Cpix & Wbits Katahlan.de - Das Browsergame
Capfly ist gerade online   Mit Zitat antworten
Alt 08.11.2011, 09:35  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

du musst natürlich den Abfragetext basteln und dabei das Array beachten - ganz nützlich ist dabei die Funktion implode , die ein Array in eine Zeichenkette umwandelt. Wenn du allerdings keine reinen Integerzahlen dort hast, musst du evtl implode nachbauen mit einer Schleife (um die Single-Quotes mit unterzubringen)

PHP-Code:
$array=array('1','2','3');
$sql="SELECT * FROM tabelle WHERE id NOT IN (".implode(',',$array).")"
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 08.11.2011, 09:39  
Erfahrener Benutzer
 
Registriert seit: 02.09.2009
Beiträge: 1.019
PHP-Kenntnisse:
Fortgeschritten
mquadrat befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Capfly Beitrag anzeigen
GROUP BY


Sicher auch ne Lösung, nur eben für ein anderes Problem
__________________
Wir suchen PHP Entwickler (Vollzeit) im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de
mquadrat ist offline   Mit Zitat antworten
Alt 08.11.2011, 21:21  
Neuer Benutzer
 
Registriert seit: 07.11.2011
Beiträge: 3
PHP-Kenntnisse:
Anfänger
puma242 befindet sich auf einem aufstrebenden Ast
Standard SELECT WHERE mit mehreren Werten abfragen

Danke für eure Hilfe, ich hab in der Zwischenzeit auch selber einiges probiert und für mich sieht die beste Lösung wie folgt aus.

PHP-Code:
   $array = array ( '1,1''1,11''1,2''2,1''2,11''2,16' );
   
$auswahl "'".join('\',\'',$array)."'";
   
$sql1 mysql_query('SELECT * FROM `tabelle` WHERE `disziplinID` IN ('.$auswahl.')'); 
und das funktioniert auch. Ich kann nun den Inhalt meines Arrays beliebig ändern und erhalte immer alle zutreffenden Datensätze aus meiner Tabelle.
puma242 ist offline   Mit Zitat antworten
Alt 08.11.2011, 23:33  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.266
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Warum stehen in deiner disziplinID denn Kommawerte?
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 09.11.2011, 10:22  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

verpeilte Normalisierung?
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Anfängerfrage - SELECT WHERE Fehler rallemann PHP Einsteiger 2 15.06.2011 17:15
[Erledigt] SQL WHERE ohne mehrere SQL Abfragen Soulstormer Datenbanken 10 01.03.2011 16:26
Select Befehl für 2 Tabellen Abfragen Ruffy PHP Einsteiger 6 09.12.2010 05:07
Spalte einer DB nach mehreren Werten durchsuchen hans_dieter PHP Tipps 2010 15 17.09.2010 16:59
mysqli_multi_query lässt Eintrag aus... Samhayne Datenbanken 8 07.02.2010 19:02
Ausgabe erfolgt nicht Extremefall PHP Tipps 2009 17 17.12.2009 19:51
Select WHERE Select J_Jara Datenbanken 4 01.12.2009 20:08
multiple mysql_qerry SELECT * FROM "" WHERE abfrage!? Offshore PHP Tipps 2009 11 14.11.2009 22:11
[Erledigt] Suche Ansatz für SELECT mit mehreren LIMIT Wolla Datenbanken 2 03.09.2009 16:13
SELECT von mehreren Tabellen m. versch. Abfragen roest Datenbanken 4 15.08.2009 22:30
select ... where "field"=1 ?? nullskill Datenbanken 10 02.04.2009 10:08
SELECT ... WHERE ... Nur ein User! Mike² Datenbanken 1 30.09.2006 19:15
SELECT FROM DB WHERE 2 SACHEN UEBEREINSTIMMEN Datenbanken 3 24.01.2005 15:58
SELECT FROM...WHERE id=(SELECT...) bicpi Datenbanken 4 24.10.2004 10:53
[Erledigt] SELECT Where id != 17 und nochwas..... Datenbanken 4 13.09.2004 15:22

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
select where, select where and, select * from where, select from where and *, select from where, where mit mehreren werten, sql abfrage mit multiplen werten, select where %, where mit select, \'select * from *where

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:58 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum