php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.04.2006, 14:04  
Gast
 
Beiträge: n/a
Standard PHP Funktion in Myql Abfrage

Hallo,

ich möchte gerne alle Daten von der DB abfragen, in der die Spalte sponsor numerisch ist.

Muss ja irgendwie mit is_numeric() da was machen...

$select=mysql_query("SELECT * from tabelle where sponsor=??");


Kann mir einer sagen, wie ich das mache?
Danke
goosele
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 06.04.2006, 15:01  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Merke: PHP ist PHP, MySQL ist MySQL. PHP versteht kein SQL und MySQL versteht kein PHP. is_numeric kannst du knicken.

So.
Und bevor wir nach einer geeigneten SQL-Funktion oder ähnlichem schauen fragen wir uns, was du da treiben willst, denn für mich klingt das stark nach einem Datenbank-Design-Murks.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 07.04.2006, 07:48  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Nochma was vorweg: SQL-Befehle möglichst ausschließlich groß schreiben (steigert die Übersicht und ist Konvention) und Tabellennamen "tabelle" sind nicht günstig gewählt

Ansonsten durchaus ich dein Konstrukt ähnlich wenig wie mein Vorgänger
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 07.04.2006, 10:13  
Benutzer
 
Registriert seit: 11.03.2005
Beiträge: 57
gala
Standard

du fragst einfach alle daten ab und prüfst dann in der while schlaufe mit einer if-abfrage ob $row['sponsor'] numerisch ist. wenn ja speicherst du die daten in einen dafür vorgesehehen array welchen du später wiederverwenden kannst.

aber wie mepeisen schon sagte, das klingt nach schlechtem db design.
gala ist offline  
Alt 07.04.2006, 11:25  
Neuer Benutzer
 
Registriert seit: 07.04.2006
Beiträge: 3
dkemper
dkemper eine Nachricht über ICQ schicken
Standard

Du kannst auch wenn du viele Datensätze brauchst und dich mit MySQL auskennst Regular Expressions nutzen und ein Subselect. Musst drauf achten, wieviel Datensätze du daraushaben willst.
dkemper ist offline  
Alt 07.04.2006, 12:42  
Erfahrener Benutzer
 
Registriert seit: 06.04.2006
Beiträge: 128
ruferp
Standard

Abfrage mit RegExpress:
SELECT * FROM tabelle WHERE sponsor REGEXP "[0-9]*";

(alle ziffern von 1-9, * es kann mehrmals vorkommen)


Aber ich denke deine DB sollte so aussehen:
tabelle:
bla | bla | bla | sponsor_id

sponsoren:
id | name
ruferp ist offline  
Alt 07.04.2006, 13:18  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Is bei MySQL-Exp Posix-Standard? Na, ja, wie dem auch sei: Es müsste dort zumindest "^[0-9]*$" (oder ähnlich) heißen, damit er wirklich beim Anfang anfängt und beim Ende aufhört, da er sonst auch "hallo123du" als akzeptieren. Würde aber eher auch auf die vorgeschlagene DB-Struktur wechseln (welcher Sponsor hat denn übrigens nen numerischen Namen? )
Zitat:
du fragst einfach alle daten ab und prüfst dann in der while schlaufe mit einer if-abfrage ob $row['sponsor'] numerisch ist. wenn ja speicherst du die daten in einen dafür vorgesehehen array welchen du später wiederverwenden kannst.
Ineffizient: Erst alles lesen, um dann die Hälfte wieder rauszuwerfen
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
 


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
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
Abfrage in Funktion auslagern - lohnt sich das? tayke Datenbanken 4 15.11.2007 23:36
PHP-GTK Tutorial Beitragsarchiv 9 02.11.2005 21:07
variable aus if Abfrage mit in eine Funktion nehmen djrace PHP Tipps 2005-2 6 20.10.2005 15:57
Rückgabewert einer rekrusiven Funktion PHP-Fortgeschrittene 7 06.10.2005 18:44
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
In einer Funktion auf eine Funktion der Klasse zugreifen phpbeginner PHP Tipps 2005-2 2 28.07.2005 00:30
Funktion in einer Funktion aufrufen? PHP Tipps 2005-2 11 14.06.2005 15:14
[Erledigt] IF() abfrage in variable packen PHP Tipps 2005 14 01.04.2005 17:23
Abfrage von Char-Feldern Datenbanken 9 04.02.2005 14:06
[Erledigt] Wie kann ich beliebig viele Werte an eine Funktion übergeben PHP Tipps 2005 11 25.01.2005 10:44
[Erledigt] Mysql Abfrage Problem! PHP-Fortgeschrittene 5 27.11.2004 10:22
Abfrage zweier Tabellen mit COUNT() funktion Datenbanken 23 20.09.2004 22:13
[Erledigt] Referenz auf Funktion übergeben PHP-Fortgeschrittene 7 20.07.2004 09:51
Abfrage aus DB noch mal ausgeben und Abfrage aus mehrern Tab PHP Tipps 2004 4 12.07.2004 15:00


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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.