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

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

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

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