5x bewertet

Daten Anzeigen

von Delite  |  18.02.2007 um 10:13 h
MySQL
Typ: MySQL
Stufe:Schwer
Joa, jetzt haben wir eine Tabelle, in der Daten sind. Jetzt fragen wir diese mal ab.


<?php
    
include("db.php");

    
$abfrage "SELECT * FROM benutzer";
    
$ergebnis mysql_query($abfrage);
    while(
$row mysql_fetch_object($ergebnis)) {
        echo 
"Dein Name ist ".$row->name." und deine Email ist
"
.$row->email;
    }
?>



include("db.php");
Hier includen wir db.php, um eine Verbindung zur Datenbank zu schaffen wie hier erklärt.

*
Steht für die Felder, die wir abfragen wollen. Der Stern bedeutet, dass wir alle abfragen. Wir könnten es aber kürzen z.B. mit name, email
Man trennt es mit Kommas ab.

benutzer
Ist die Tabelle, die wir Abfragen möchten. In diesem Fall benutzer.

while($row = mysql_fetch_object($ergebnis))
{ }

Ist eine While-Schleife, in der die Abfrage verarbeitet wird. Wie While-Schleifen genau funktionieren, könnt ihr später in PHP-Grundlagen nachschlagen. Innerhalb dieser Schleife (also zwischen { und }) stellen wir die Anzeige dar.

$row->name
mit $row->feldname können wir dann eine Spalte abrufen. Hier sind es name und email.

Jetzt können wir die Datensätz ordnen usw. Hier lernt ihr Abfragen.

WHERE - Abfrage
Die WHERE-Abfrage sucht nach bestimmen Werten. Dann ändert man die Abfrage Zeile folgendermaßen:

$abfrage = "SELECT * FROM benutzer WHERE name = 'Delite'";

Jetzt werden nur die Daten abgerufen, wo der Name Delite ist. Wir können auch 2 Bedingungen angeben. Die können wir durch ein AND oder OR trennen. Also und und oder.

$abfrage = "SELECT * FROM benutzer WHERE name = 'Delite' AND email = '$sumsebiene@hotmail.de'";

Jetzt werden die Daten abgerufen, wo der Name Delite ist und die E-Mail sumsebiene@hotmail.de. Statt gleich können wir auch noch andere Operatoren benutzen. Eigentlich alle, die hier aufgezählt sind. nur das == wird zum = So könnte das z.B. aussehen:

$abfrage = "SELECT * FROM benutzer WHERE id > '3'";

Jetzt werden die Daten angezeigt wo die ID größer als 3 ist. Es gibt aber noch ein kleinen wenig mehr Operatoren. bei = und != wird nicht auf Groß- und Kleinschreibung geachtet. Wenn wir aber darauf achten wollen, machen wir das so:

$abfrage = "SELECT * FROM benutzer WHERE name LIKE 'Delite'";

Dann muss der Name genau so geschrieben sein. Bei ungleich schreibt man dann statt != NOT LIKE.

Dann gibt es noch einen ganz interessanten Abfrage Operator, den man oft bei Suchen verwenden benutzt. Nämlich dann, wenn man schauen möchte, ob ein bestimmter Inhalt enthalten ist. Also sagen wir mal Wir haben ein Datensatz wo drin steht 'Hallo ich bin dumm.' Jetzt wollen wir suchen ob dort das Wort dumm enthalten ist. So eine Abfrage sieht dann ungefähr so aus:

$abfrage = "SELECT * FROM benutzer WHERE email LIKE '%sumsebiene%'";

Diesen Befehl macht man immer mit Like. Das, was man sucht hüllt man in Prozenzeichen. Jetzt wird also gesucht, in welcher email sumsebiene enthalten ist. So funktioniert auch unsere Such-Funktion.

Ja, die WHERE - Abfragen sind schon ein großes Stück aber jetzt kommt noch mehr XD

ORDER BY - Abfrage
Der Name lässt schon auf die Funktion schließen. ORDER BY soll die Datensätze ordnen. Lassen wir unseren mal nach dem Namen ordnen (Varchars werden alphabetisch geordnet, INT's werden nach Nummern geordnet!):

$abfrage = "SELECT * FROM benutzer ORDER BY name";

Jetzt haben wir die Datensätze nach dem Alphabet geordnet. Jetzt wollen wir aber mal bei Z anfangen statt bei A. Also andersrum. Das geht so:

$abfrage = "SELECT * FROM benutzer ORDER BY name DESC";

Desc dreht unseren Order-Befehl um =) Jetzt fangen wir also bei Z an. Jetzt wollen wir aber vielleicht mehrere Felder ordnen.

$abfrage = "SELECT * FROM benutzer ORDER BY name, id";

Hier ordnen wir zu allererst nach dem Namen. Wenn jetzt z.B. ein Name gleich ist, wird nach der ID geordnet.

Mehr gibt es zum order-Befehl nicht zu sagen.

GROUP-BY Abfrage
Dann gibt es noch GROUP-BY. Das hat den Sinn, dass man z.B. angenommen ich habe eine Tabelle mit PNG's wo bei jedem die Serie steht und einige von der gleichen Serie, dann kann ich diese gruppieren, um z.B. alle vorhandenen Series aufzuzählen, ohne welche doppelt zu haben. Das geht so:

$abfrage = "SELECT * FROM benutzer GROUP BY email";

Hier werden die Daten jetzt nach der E-Mail gruppiert!


LIMIT - Abfrage
Oft möchte man nicht alle Daten abfragen und auch nicht vom 1. an. Wir wollen mal 2 Datensätze vom 1. an, anzeigen.

$abfrage = "SELECT * FROM benutzer LIMIT 0,2";

0 ist dafür bei welchem Datensatz wir anfangen. Man fängt hier nicht bei 1 an sondern bei 0. Die 2 steht dafür, wieviele Datensätze wir anzeigen lassen wollen. Hier sind es 2.


Reihenfolge der Abfragen
Jetzt können wir aber nicht mir order anfangen oder mit limit. So sieht die Reihenfolge aus:

$abfrage = "SELECT * FROM benutzer WHERE-Abfrage GROUP BY-ABFRAGE ORDER BY-ABFRAGE LIMIT-Abfrage";
Wenn ihr nicht ordnen wollt oder keinen where befehl verwenden wollt, könnt ihr das auch einfach freilassen *roll*

Ich hoffe dieses Tutorial konnte vielen helfen.
Mfg, Delite



5 Kommentare




Ja, das Tut (und die anderen PHPmyAdmin) ist (sind) total gut geschrieben und erklärt.
Nur leider wird bei mir immer folgendender Fehler angezeigt:
Fatal error: Call to undefined function mysql_query() in ... on line ...
Kann mir das jemand erklären? Ich sitze die ganze Nacht mit ner Freundin schon dadran.
am 04.11.2007 um 03:31 Uhr


halt immer dieses mysql_query.
was ist das?
am 04.11.2007 um 03:32 Uhr


das heisst

MYSQL Kommando
und das zwischen den klammern :
(SELECT BLABLA) ist was Mysql dann durfürhen soll - also den Querry.
Check doch mal deine Datenverbindung mit die() damit du auch wirklich weisst
ob du mit der Dateb^nbank verbunden bist.
am 04.11.2007 um 10:33 Uhr


Pham

Super TUT hat mir seh geholfen ^^
am 08.02.2008 um 13:46 Uhr


music_girl

Bei mir kommt eine Fehlermeldung:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL
result resource in /users/uuhna/www/filemanager/Puccini/Campino's
Champion.php on line 7



Linie7:

while($row = mysql_fetch_object($ergebnis)) {



Vielleicht kann mir ja jemand helfen.
am 06.09.2008 um 14:25 Uhr