• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Was passiert dort?

Hi,

also erst mal es funktioniert.
Aber ich kann dem sql-Refernzbuch nicht entnehmen warum es so geschrieben wird.
Was passiert in den einzelnen CODE-Zeilen?
Warum muss das Ergebnis (result) beim Aufrufen so und z.b. nicht mit avg(Track_Sternchen) aufgerufen werden?

Code:
$Gesammtwert=("SELECT ROUND(avg(Track_Sternchen)) FROM hoerspiele_tracks s LEFT JOIN hoerspiele st USING(CDID) WHERE CDID=1");
$sql_result=mysql_query($Gesammtwert);
$results=mysql_fetch_array($sql_result);

echo            $results['ROUND(avg(Track_Sternchen))'];
 
  • avg gibt den Durchschnittswert zurück
  • round rundet auf die nächste Integer
Ab da wird es etwas schwieriger:

  • JOIN ist eine Tabellenreferenzierung
  • USING gibt an, wie referenziert werden soll
 
Nun, in $Gesammtwert wird das Query zusammenbebaut.

$sql_result=mysql_query($Gesammtwert); fragt die Datenbank nun nach den eingegebenen Kriterien ab und sucht alles zusammen

$results=mysql_fetch_array($sql_result); sucht dann die einzelnen Ergabnisse


Oder etwas allgemeiner:
Deine Datenbank hat unmengen an Inhalten, von denen du ja nur bestimmte auslesen möchtest.
$Gesamt erstellt also eine Abfrage an die Datenbank und enthält den Befehl nur bestimmte Werte zu selektieren.
$sql_result schickt dann diesen Befehl an die Datenbank, die eine Meldung zurückgibt, ob der Befehl erfolgreich war oder nicht.
mit $results=mysql_fetch_array($sql_result); werden nun die eizelnen Funde ausgelesen und in ein Array gelegt, so dass man sie anzeigen kann.
 
Zuletzt bearbeitet von einem Moderator:
Mal mit meinen Worten.

1. in der ersten Zeile gebe ich meinen Kriterien einen Namen und bestimme die Kriterien.
2. dann schicke ich eine Abfrage mit dem Namen der Abfrage (darin stehen die Kriterien) an die Datenbank
3. Die Datenbank gibt mir die Antwort auf meine Abfrage und diese werden an den Array gegeben dem ich hier auch einen Namen gebe
4. Nun kann ich den Array mit dem Namen den ich in 3 vergeben habe anzeigen lassen.


Warum kommt hier der Schritt 3 hinzu? Normalerweise kann ich doch die Kriterien übergeben (1) dann mit (2) zb. ($row = mysql_fetch_object($ergebnis)); das Ergebnis zurück das ich mit echo $row->beispiel ausgeben kann.
Kann man so eine Parallele ziehen?
 
Warum kommt hier der Schritt 3 hinzu? Normalerweise kann ich doch die Kriterien übergeben (1) dann mit (2) zb. ($row = mysql_fetch_object($ergebnis)); das Ergebnis zurück das ich mit echo $row->beispiel ausgeben kann.
Kann man so eine Parallele ziehen?
Ich weiß nicht, wo du jetzt das Verständnisproblem hast. Das obige Beispiel nutzt mysql_fetch_array (wobei hier PHP ein Array wie ein Objekt behandelt), das ist eine andere Möglichkeit die Inhalte zu bekommen. Es gibt aber noch mehr: PHP: MySQL Funktionen - Manual
 
Ich glaube, da wurde was missverstanden.

Generell stimmt deine Aufzählung, wo du zu hängen scheinst ist der Unterschied zwischen den Beiden:


1. $sql_result=mysql_query($Gesammtwert); 2. $results=mysql_fetch_array($sql_result);
Nach deinem Verständnis müsste schon nach punkt 1 Alles da sein
Punkt 1 sendet an die Datenbank den Wunsch.
Punkt 2 Die Datensätze werden gelesen und in die einzelnen Felder zerlegt.

Im Übertragenenen Sinn:

1. ich defniere meinen Speisewunsch.
2. ich frage den Kellner "gibbet Schnitzel mit Sallat?" (Sende meinen Speisewunsch)
3. Antwort ja haben wir, und ich bestelle.
4. Schnizel und Sallat werden gebracht und stehen vor mir

..
 
Zurück
Oben