php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.10.2010, 14:10  
Neuer Benutzer
 
Registriert seit: 09.10.2010
Beiträge: 7
PHP-Kenntnisse:
Anfänger
borchi befindet sich auf einem aufstrebenden Ast
Standard Suche Denkanstoß für variable where Klausel

Hallo,

ich hab ein kleines PHP Script gebastelt was mir ein Foto im Browser liefert über die URL image.php?foto_id=1. Im zweiten Schritt hab ich das Teil erweitert für die Variante image.php?foto_id=1&fotograf_id=2, also die where Klausel sieht so aus:

Code:
select bild_datei from fotos where id = $id and f_id = $fid
Soweit so gut. Das mit der mysqli Geschichte hab ich grundsätzlich gerafft, denn das Script funktioniert soweit.

Nun brüte schon seit gestern darüber wie ich das Teil umschreiben muss wenn ich nur 1 Parameter in der URL übergeben will, also zeig mir alle Fotos mit id = egal and fotograf_id = 2.

Google ist zwar mein Freund, verwirrt mich aber ziemlich

Schonmal danke im Vorraus...

Christian
borchi ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 09.10.2010, 14:22  
Neuer Benutzer
 
Registriert seit: 07.10.2010
Beiträge: 10
PHP-Kenntnisse:
Anfänger
KlausMeier befindet sich auf einem aufstrebenden Ast
Standard

Du musst dann doch nur dafür sorgen das er dann keine nicht gesetzte FotoID abfragt.

Also wenn nun die Anfrage kommt; image.php?fotograf_id=2 soll er alle Bilder auswerfen, dafür fragst du vorher ab ob "foto_id" gesetzt ist, wenn nicht; dann gib alle Bilder aus.
KlausMeier ist offline   Mit Zitat antworten
Alt 09.10.2010, 14:24  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Code:
// Pseudocode:
$select = 'SELECT feld FROM tabelle ';
WENN nur ein Parameter
  $select .= 'WHERE ...';
SONST
  $select .= 'WHERE ...';
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 09.10.2010, 15:38  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Du kannst dir alle Get-Parameter nach und nach in deinem Script in ein array zusammensammeln:
PHP-Code:
$para = array();
if (
bedingung1 $para[] = "id=1";
if (
bedingung2 $para[] = "datum=2010-10-10"
Und das dann letztendlich so aufzulösen:
PHP-Code:
$link 'index.php?' urlencodeimplode('&',$para) ); 
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline   Mit Zitat antworten
Alt 09.10.2010, 17:20  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.723
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

Für sowas gäbe es als Alternative noch http_build_query.

- http://php.net/manual/en/function.http-build-query.php
__________________
Blog | Buch | Kaloa
mermshaus ist offline   Mit Zitat antworten
Alt 09.10.2010, 17:59  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Örgs - ich lese grade nochmal dein Problem - irgendwie war ich im Kopp falsch verdrahtet. Du suchst ja eine Mysql-Query.
Das kriegst du natürlich einfach über ein if/elseif-Strukturen hin.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline   Mit Zitat antworten
Alt 09.10.2010, 22:11  
Neuer Benutzer
 
Registriert seit: 09.10.2010
Beiträge: 7
PHP-Kenntnisse:
Anfänger
borchi befindet sich auf einem aufstrebenden Ast
Standard

Guten Abend,

http_build_query hört sich gut an, aber ich raff´s nicht

Wird wohl wieder eine try & error Nacht
borchi ist offline   Mit Zitat antworten
Alt 09.10.2010, 23:16  
Neuer Benutzer
 
Registriert seit: 07.10.2010
Beiträge: 10
PHP-Kenntnisse:
Anfänger
KlausMeier befindet sich auf einem aufstrebenden Ast
Standard

Habe ich dich nun einfach nur falsch verstanden? Du möchtest doch über PHP ein Bild ausgeben, das per URL angefragt wurde oder?

Bisher gibst du die Bilder nach dem Schema; Bild ID = 1 aus und magst dies aber noch um die Abfrage des Usernamens erweitern.

Stellen wir mal die Anfrage um; image.php?user=Kalle&bild=1 soll dann lediglich das erste Bild vom User Kalle anzeigen.
Das sollte nun kein Problem sein oder?

Nun geht es weiter; nun kann natürlich die Bild ID fehlen oder fehlerhaft sein; dann sollten ALLE Bilder vom User angezeigt werden. Dafür musst du natürlich dies Prüfen und eine Fallunterscheidung machen -> Wenn User und Bild ID korrekt; zeige das Bild, wenn die Bild ID falsch ist; zeige alle Bilder vom User.

Dann kann natürlich auch noch der Username oder die ID je nachdem falsch sein; prüfen -> Fallentscheidung.

Alles eigentlich mit einfachsten Mitteln zu realisieren.
KlausMeier ist offline   Mit Zitat antworten
Alt 10.10.2010, 00:13  
Erfahrener Benutzer
 
Registriert seit: 07.06.2008
Beiträge: 992
PHP-Kenntnisse:
Fortgeschritten
Frank befindet sich auf einem aufstrebenden Ast
Frank eine Nachricht über ICQ schicken Frank eine Nachricht über MSN schicken Frank eine Nachricht über Yahoo! schicken
Standard

PHP-Code:
$clauses = array();

// Den Fall abfangen, dass keine weitere Bedingung übergeben wurde
$clauses[] = "1 = 1";

// Übergebene Bedingungen prüfen
if(isset($_GET["foto_id"])) $clauses[] = "`foto_id` = " .= intval($_GET["foto_id"]);
if(isset(
$_GET["fotograf_id"])) $clauses[] = "`fotograf_id`" .= intval($_GET["fotograf_id"]);

// Bedingungen mit AND verbinden
$clause implode(" AND "$clauses);

// Abfrage senden
mysql_query("SELECT `x`, `y`, `z` FROM `images` WHERE ".$clause); 
__________________
Frank ist offline   Mit Zitat antworten
Alt 01.11.2010, 17:54  
Neuer Benutzer
 
Registriert seit: 09.10.2010
Beiträge: 7
PHP-Kenntnisse:
Anfänger
borchi befindet sich auf einem aufstrebenden Ast
Standard

Danke Frank, funktioniert...

Folgendes hab ich erstmal auskomentiert, da es nicht funktioniert, muss ich mal dran rumtesten und versuchen es zu verstehen:

PHP-Code:
// Den Fall abfangen, dass keine weitere Bedingung übergeben wurde
$clauses[] = "1 = 1"
borchi 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] Suche - Wortmanipulation vaLLe PHP Tipps 2009 30 24.08.2009 20:17
eine Suche definieren Tyrra PHP Tipps 2009 14 10.07.2009 09:39
Zwei riesige Probleme - suche Denkanstoß ;) Dude23 PHP Tipps 2008 6 24.06.2008 17:04
Parsen von Delimitern Basti Tutorials 0 30.09.2006 21:24
Kleine Frage zu WHERE Klausel in SQL String Plague Datenbanken 1 09.08.2006 11:23
Probleme mit Where Klausel Datenbanken 4 07.02.2006 14:54
mal wieder eine suche lomtas Datenbanken 0 12.07.2005 11:03
Befehlsoptimierung faux Datenbanken 4 31.05.2005 19:11
where string von einer funktion zu anderen transportieren PHP Tipps 2005 5 03.03.2005 16:29
Problem Suche Array das nur den text in Variable ließt ... PHP Tipps 2005 2 09.01.2005 11:58
Warum wird Variable nicht übergeben??? Anuschka PHP Tipps 2005 2 06.01.2005 13:22
Nur bestimmte Felder auslesen (forum_id) Datenbanken 10 22.10.2004 09:19
suche von bis klappt nicht PHP Tipps 2004 12 18.10.2004 14:41
Suche Variable phpKid PHP Tipps 2004 3 15.10.2004 14:59

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
where klausel mit and php, php suchanfrage mit variablen, where klausel variabel erweitern php, php where klausel, php variable suche, $_get in where klausel, variable in where klausel php, where klausel in als variable, where klausel mit php variable, where klausel oder, where-klausel variable

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:47 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