AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein PHP/MySQL: Wie wird der Datensatz gespeichert (Formate...)?
Thema durchsuchen
Ansicht
Themen-Optionen

PHP/MySQL: Wie wird der Datensatz gespeichert (Formate...)?

Ein Thema von malo · begonnen am 6. Sep 2005 · letzter Beitrag vom 11. Okt 2005
Antwort Antwort
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#1

PHP/MySQL: Wie wird der Datensatz gespeichert (Formate...)?

  Alt 6. Sep 2005, 15:58
Hi!

Ich hab mal eine kleine, eher theoretische Frage. Und zwar hab ich einige DB-Datensätze einer MySQL-DB. Ich möchte diese beiden nacheinander auslesen, also immer Feld 1, dann Feld 2, dann in der nächsten Zeile: Feld 1, dann Feld 2. Um das zu machen, fehlt mir aber grade etwas die Theorie, wie genau die Werte in die jeweilige Result-Variable gespeichert wird. Kurz als Beispiel:

Code:
Tabelle a
xy         ab
________________

"a"       "x"
"b"       "y"
"c"       "z"
Das mal als Beispiel, wie die Tabelle in etwa aussieht...

Jetzt könnte ich eine Abfrage machen, wie diese hier:
Code:
$result = mysql_query('SELECT xy FROM a');
Dabei würden in $result drei Werte gespeichert werden: "a", "b" und "c". Aber wie sieht das Format nun genau aus? Kann ich es wie ein Array verwenden? Werden die Datensätze numerisch, also mit Zahlenwerten (0 bis x) gespeichert?


Wär schön, wenn wir da jemand ein paar Auskünfte geben könnte
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: PHP/MySQL: Wie wird der Datensatz gespeichert (Formate..

  Alt 6. Sep 2005, 17:28
Moin malo,

$result enthaelt die Resource, in der die Daten gespeichert sind. mit den mysql_fetch_*-Funktionen kannst du aus dieser Resource die Datensaetze auslesen. Wie genau das in $result gespeichert wird weiss ich nicht, aber ich denke mal dass der Datensatz irgendwo im Speicher rumliegt, aber mehr kann ich dir auch nicht sagen. Ich habe bis jetzt noch nicht das Beduerfnis verspuert, direkt ueber $result auf die Daten zuzugreifen, ich hab immer die o.g. Funktionen verwendet

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#3

Re: PHP/MySQL: Wie wird der Datensatz gespeichert (Formate..

  Alt 6. Sep 2005, 17:30
Nehmen wir folgende Tabelle als Beispiel:
Code:
feld1 | feld2
-------+-------
  a   |  b
  c   |  d
Nun hast du folgende Abfrage:
Code:
$sql = 'SELECT feld1, feld2 FROM mytable';
$query = mysql_query($sql);
In $query ist nun eine Ergebniskennung der Abfrage gespeichert. Diese verweist auf den ersten Datensatz, welche die Abfrage zurückliefern würde. Du kannst aus der Ergebniskennung nun bspw. ein Array machen:
Code:
$row = mysql_fetch_array($query);
In $row steht nun ein Array mit dem ersten Datensatz:
Code:
echo $row['feld1'] . ' - ' . $row['feld2'];
würde folgendes Ergebnis liefern/ausgeben:
Code:
a - b
Nun kannst du
Code:
$row = mysql_fetch_array($query);
erneut aufrufen für den nächsten Datensatz (also c und d), oder es direkt in eine Schleife packen:
Code:
$sql = 'SELECT feld1, feld2 FROM mytable';
$query = mysql_query($sql);
while ($row = mysql_fetch_array($query)) {
  echo $row['feld1'] . ' - ' . $row['feld2'];
}
würde dann dies ausgeben:
Code:
a - b
c - d
Im PHP Manual findest du auch noch weiteres zu mysql_query() und mysql_fetch_array().

MfG Pr0g
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: PHP/MySQL: Wie wird der Datensatz gespeichert (Formate..

  Alt 6. Sep 2005, 17:32
hi malo,

in $result steht nach aufruf von mysql_query() nur ein integer (wenn du ihn per echo oder so ausgeben würdest).
an dne inhalt des ergebnisses kommst du folgendermaßen:

Code:
$result = mysql_query("SELECT * FROM table");

while ($row = mysql_fetch_array($result)) {
   echo $row["feldname"]
}
mysql_fetch_array() macht aus dem ergebnis ein array. wenn du mit dem oben gezeigten while-konstrukt arbietest, dann läuft die schleife für jede zeile des ergebnisses je einmal durch. innerhalb der schleife kannst du dann die felder der aktuellen zeile über ihre namen ansprechen ($row["feldname"]).
anstatt mysql_fetch_array() kannst du auch mysql_fetch_rows() schreiben, dann kannst du die felder aber nicht über ihre namen, sondern nur über ihre indizes (angefangen bei 0) ansprechen.

wenn du weißt, dass du nur eine zeile im ergebnis zurückgeliefert bekommst, kannst du dir die while-schleife sparen und die felder dieser einen zeile direkt so ansprechen:

Code:
$result = mysql_query("SELECT id, name FROM mytable");

echo mysql_result($result, 0); //gibt den inhalt des ersten feldes aus - zugriff nur über index möglich
weitere informationen gibt's bei PH.netP (Querverweise beachten - die sind nützlich^^)

aenogym

//edit: drei mal hält besser
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#5

Re: PHP/MySQL: Wie wird der Datensatz gespeichert (Formate..

  Alt 6. Sep 2005, 17:44


Ich hätte mir das jetzt etwas komplizierter vorgestellt, deshalb diese weit ausholende Frage... aber, naja

Danke
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#6

Re: PHP/MySQL: Wie wird der Datensatz gespeichert (Formate..

  Alt 18. Sep 2005, 15:11
Das Thema nochmal kurz von mir aufgefrischt:

Code:
$result = mysql_query('SELECT id,title FROM ' . $table_prefix . 'index WHERE id="'.$mode['mode'].'"');
  while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
    {
     echo('<div class="headline">' . $row['title'] . "</div>\n");
     echo($row['content']);
    }
Jetzt hab ich das Problem, dass die while-Schleife niemals ausgeführt wird. Weiß grad jemand wieso? $result ist immerhin gesetzt, und hat imho auch den entsprechenden Inhalt... aber $row hat keinen Inhalt. Was muss ich anders machen?
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#7

Re: PHP/MySQL: Wie wird der Datensatz gespeichert (Formate..

  Alt 22. Sep 2005, 19:48
*push*
  Mit Zitat antworten Zitat
Strophi

Registriert seit: 15. Okt 2004
Ort: Recklinghausen
33 Beiträge
 
#8

Re: PHP/MySQL: Wie wird der Datensatz gespeichert (Formate..

  Alt 22. Sep 2005, 21:22
Zitat:
Jetzt hab ich das Problem, dass die while-Schleife niemals ausgeführt wird. Weiß grad jemand wieso? $result ist immerhin gesetzt, und hat imho auch den entsprechenden Inhalt... aber $row hat keinen Inhalt. Was muss ich anders machen?
Hi,

ist zwar vielleicht das eine oder andere Zeilchen mehr, aber bau' Dir die Abfrage in einen String: $sql="meine query". Und vor dem myql_query erstmal ein echo "meine abfrage: $sql
"?
Oft ist die übergebene query klump... mysql_error() erhellt die Sache auch oft ungemein.

Mit freundlichem gruß

Strophi
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#9

Re: PHP/MySQL: Wie wird der Datensatz gespeichert (Formate..

  Alt 11. Okt 2005, 13:33
So, hat ein wenig länger gedauert, bis ich mir das Problem vorgenommen hab, als geplant gewesen war *g*

Mittlerweile klappt das Ganze auch... Gab wohl keinen Error
Hier der Quelltext der funktioniert:

Code:
<?
//...
  $mode['mode'] = 'test'; // evtl. war die Variable nich gesetzt (war eig. ein $_GET
                          // Aber genau weiß ichs nicht... ich glaub, ich hab die Parameter auch gesetzt
//...
?>
//...
<?
  echo $mode['mode']; // das nur zum testen
  // in der folgenden Abfrage hab ich statt "content" auch "id" ausgelesen...
  $query = 'SELECT content,title FROM ' . $table_prefix . 'index WHERE id="'.$mode['mode'].'"';
  $result = mysql_query($query);
  if ($result) echo "true "; else echo "false"; // das nur als Test
  while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
    {
     echo('<div class="headline">' . $row['title'] . "</div>\n");
     echo($row['content']);
    }
  echo mysql_error(); // nur als Test
?>
Jedenfalls ruft der Quelltext das jetzt vernünftig ab...

Nur für diejenigen, die es interessiert
  Mit Zitat antworten Zitat
Antwort Antwort


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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz