php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 17-03-2012, 12:30
sublevel1980
 Registrierter Benutzer
Links : Onlinestatus : sublevel1980 ist offline
Registriert seit: Mar 2012
Beiträge: 17
sublevel1980 befindet sich auf einem aufstrebenden Ast
Standard DB Abfrage nach Jahr > wie muss die Query für alle aussehen?

Hallo!

ich habe eine Frage: Ich habe hier eine Datenbank bei der folgendes abegefragt
wird

PHP-Code:
SELECT idname FROM table WHERE year='$year' 
$year kommt logischerweise als Variable von einer anderen Seite. Nun ist die Frage: wie muss ich denn die Query aufbauen, damit ich mir ALLE jahre anzeigen lassen kann? Irgendwie komme ich nicht drauf ...

vielen dank und viele Grüße,

tm
Mit Zitat antworten
  #2 (permalink)  
Alt 18-03-2012, 09:19
Guenni61
 Registrierter Benutzer
Links : Onlinestatus : Guenni61 ist offline
Registriert seit: Nov 2011
Ort: Viersen
Beiträge: 128
Guenni61 befindet sich auf einem aufstrebenden Ast
Standard

Hi sublevel1980

Das . . .
PHP-Code:
. . . WHERE year='$year' 
. . . ist doch nur ein Filter, den du einfach wegläßt, um alle Datensätze abzufragen.
Dazu würde ich die Variable $year mit einem entspr. Wert belegen, und die Abfrage
dann entspr. formulieren, z.B.:
PHP-Code:
<?php
/*
* $year wird von der "anderen" Seite mit 0 initialisiert zur Abfrage aller Datensätze . . . 
*/
$year=0;
/*
* . . . oder mit einer Jahreszahl
*/
// $year=1961, um bestimmte Datensätze abzufragen
/*
* Da ein Wert gleich "verschieden von 0" true ergibt, kann man hier einfach fragen, ob $year false ist
*/
if(!$year){ 
 echo 
"select id, name from tabelle";
}else{
   echo 
"select id, name from tabelle where year='$year'";
   }
?>
Gruß
Günni
Mit Zitat antworten
  #3 (permalink)  
Alt 18-03-2012, 09:49
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Zitat:
wie muss ich denn die Query aufbauen, damit ich mir ALLE jahre anzeigen lassen kann? Irgendwie komme ich nicht drauf ...
Den WHERE Teil komplett weglassen!
__________________
Wir werden alle sterben
Mit Zitat antworten
  #4 (permalink)  
Alt 18-03-2012, 10:02
sublevel1980
 Registrierter Benutzer
Links : Onlinestatus : sublevel1980 ist offline
Registriert seit: Mar 2012
Beiträge: 17
sublevel1980 befindet sich auf einem aufstrebenden Ast
Standard

omg! Na klar so einfach ist das. Das habe ich einfach nicht bedacht....
@guenn: vielen dank für die superausführliche Erläuterung!

Tausend dank!

sl
Mit Zitat antworten
  #5 (permalink)  
Alt 18-03-2012, 10:14
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard Bobby Tables

*korinthenkack*

Das Weglassen der WHERE-Klausel führt aber nur dann zum gewünschten Ergebnis, wenn die Spalte "year" immer eine Jahreszahl enthält (also im Create-Table-Statement mit "NOT NULL" gekennzeichnet wurde). Wenn sie (bspw.) auch mit NULL befüllt werden kann, werden auch alle Datensätze ohne (konkreten) Jahres-Bezug ausgelesen.

Falls also die Jahresspalte auch NULLs enthalten darf, würde eine Abfrage wie "WHERE [year] > 0" die Auswahl auf alle Datensätze mit vorhandenem Jahr beschränken. Falls tatsächlich negative Jahreszahlen vorkommen sollten, müsstest du auf Nicht-NULL testen ...

Ergänzend @sublevel1980:
Falls dein $year aus Benutzereingaben stammt, solltest du statt "String-Konkatenation" besser parametrisierte Queries (bspw. über PDO) verwenden, sonst bekommst du früher oder später Ärger (obligatorischer XKCD-Link).

Geändert von fireweasel (18-03-2012 um 10:34 Uhr) Grund: typos
Mit Zitat antworten
  #6 (permalink)  
Alt 18-03-2012, 10:19
sublevel1980
 Registrierter Benutzer
Links : Onlinestatus : sublevel1980 ist offline
Registriert seit: Mar 2012
Beiträge: 17
sublevel1980 befindet sich auf einem aufstrebenden Ast
Standard

@firieweasel:
aber wenn ich
PHP-Code:
select idname from tabelle 
wie von geunni vorgeschlagen nutze, ist es doch unerheblich
ob im Feld year überhaupt was drinsteht? Oder verstehe ich Dich falsch? Ich muss zugeben, dass ich noch nie was von dem was Du da schreibst gehört habe! Da muss ich mich mal einlesen. Im Moment klingt das wie Raketenforschung ; )

sl
Mit Zitat antworten
  #7 (permalink)  
Alt 18-03-2012, 10:30
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard http://www.nasa.gov/externalflash/RocketScience101/RocketScience101.html

Zitat:
Zitat von sublevel1980 Beitrag anzeigen
@firieweasel:
aber wenn ich
PHP-Code:
select idname from tabelle 
wie von geunni vorgeschlagen nutze, ist es doch unerheblich
ob im Feld year überhaupt was drinsteht?
Aus diesem Grund habe ich dem Absatz das Wort "ergänzend" vorangestellt. Für den Fall, dass du $year benutzt.

Zitat:
... Ich muss zugeben, dass ich noch nie was von dem was Du da schreibst gehört habe! Da muss ich mich mal einlesen.
Dafür waren die Links zu Wikipedia (Grundlagen und Abhilfe), XKCD (anschauliches Beispiel) und PHP-Handbuch (Anwendung mit der Datenbank-Schnittstelle PDO) gedacht.

Zitat:
Im Moment klingt das wie Raketenforschung ; )
Du benutzt die "Rocket science"-Formulierung, hast aber noch nie was von SQL-Injections gehört? Das mag ich jetzt nicht so recht glauben ...

Geändert von fireweasel (18-03-2012 um 10:47 Uhr) Grund: typos
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
abfrage, mysql, where


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bei der Abfrage nach Monat und Jahr filtern? xxcoolxx SQL / Datenbanken 4 09-03-2010 14:27
Wie muss der Link aussehen? DjPkR PHP Developer Forum 14 30-07-2007 20:17
[MSSQL] Wie kann/muss ich diesen Query ausführen? peperoni SQL / Datenbanken 1 19-07-2007 07:29
[MySQL 4.1] Für Archiv Jahr dazu die Monate Proggy SQL / Datenbanken 8 26-04-2006 15:36
Vorzeichen in einer Abfrage, für das man erst die Datenbank lesen muss Gruselgockel SQL / Datenbanken 7 13-07-2005 12:12

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Newsmanager

Der Newsmanager ist ein Newssystem und Newsletter in einem. Mit WYSIWYG Editor und E-Mail import aus einer bestehenden MySql Datenbank sowie dynamische Kategorien / Themen Filter.

11.09.2019 Stephan_1972 | Kategorie: PHP/ News
Modelmanager

Der Modelmanager ist ein Webtool für Fotografen, kann als komplette Homepage oder als Webtool installiert werden.

11.09.2019 Stephan_1972 | Kategorie: PHP/ Webservice
ContentLion - Open Source CMS ansehen ContentLion - Open Source CMS

ContentLion ist ein in PHP geschriebenes CMS, bei dem man Seiten, Einstellungen usw. in Ordnern lagern kann

22.08.2019 stevieswebsite2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:24 Uhr.