Ausgabe eine selektiven MySQL-Abfrage

Alles, was PHP betrifft, kann hier besprochen werden.

Ausgabe eine selektiven MySQL-Abfrage

Postby pauli » 06. May 2004 09:10

Ich möchte aus einer DB einen einzelnen Wert auslesen und anzeigen lassen. Hatte es erst über
Code: Select all
$Abfrage=mysql_db_query("Benutzer", $Query, $Link);
probiert und diesen ausgeben lassen, aber da erhielt ich immer resource id #3.

Hab mir dann den Code unten gebastelt, aber wenn ich mir das nun anzeigen lasse, erhalte ich den Wert immer 2x gleich hintereinander z.B. paulipauli, wenn er nur pauli ausgeben sollte. Woran könnte es liegen?


Code: Select all
$Query= "SELECT `Name` FROM `user` WHERE `Nachname` = '$Nachname";
$Abfrage=mysql_db_query("Benutzer", $Query, $Link);

if ($DBErgebnis1=mysql_fetch_array ($Abfrage)) {
   $DBErgebnis=implode($DBErgebnis1);
  print  ("$DBErgebnis<BR>\n");
 
}
pauli
 
Posts: 22
Joined: 21. April 2004 21:55

Kleber

Postby NickiGraus » 06. May 2004 09:39

$DBErgebnis=implode($DBErgebnis1);

Self_PHP wrote:Mit implode() fügt man ein Array (pieces) anhand eines Trennzeichens (glue) zu einem String zusammen. Dabei werden die Array-Elemente nacheinander an den String angehängt.


$DBErgebnis1 ist ein array -> $DBErgebnis=$DBErgebnis1[0]

sollte zu dem gewünschen Ergebnis führen.
Es ist ein Beweis der Bildung, die größten Dinge auf die einfachste Art zu sagen.

RW Emerson

Image
User avatar
NickiGraus
 
Posts: 40
Joined: 05. May 2004 12:49
Location: Irland

Postby Wiedmann » 06. May 2004 10:50

Er könnte natürlich auch anstatt mysql_fetch_array einfach ein mysql_fetch_row nehmen.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Stefan » 06. May 2004 11:50

Als Ergänzung:

Er könnte auch "mysql_fetch_assoc()"verwenden.
Der vermeintlich doppelte Datensatz kommt zustande, da "mysql_fetch_array" einmal den Wert mit numerischem Index führt und einmal mit assoziativem Index

* http://de3.php.net/mysql_fetch_array

..fetch_row -> numerisch
..fetch_assoc -> assoziativ

Gruß
stefan
User avatar
Stefan
 
Posts: 475
Joined: 26. December 2002 22:36
Location: Mitten in der sonnigen Südpfalz

Postby Wiedmann » 06. May 2004 12:19

Zustimmt Stefan.
War auch schon am überlegen, ob ich die Erklärung noch anfügen soll...

Und zu zurvollständigen Verwirrung, *g*, könnte ich ja bei mysql_fetch_array auch mit angeben ob ich das Ergebnis als numerisch, assoziativ oder beides (Standard) haben will.

Wobei fetch_row wohl die schnellste Lösung ist (Arrayzugriff über einen numerischen Index). Und in Anlehnung an Nicki kein implode mehr nehmen, sondern gleich den Index 0 aus dem Array.

Bei diesem Select könnte ich zudem auch gleich auf das Array verzichten und sowas nehmen:
$DBErgebnis = mysql_result($Abfrage, 0);

Noch ein Hinweis an Pauli:
Schau am besten immer im PHP-Manual nach. Da wird ja zu jeder Funktion beschrieben was sie zurückgibt. (An deine gelöste erste Frage denk -> gibt immer id zurück).

Wenn du dir über den inhalt einer Variable oder Rückgabe einer Funktion nicht im klaren bist, mach ein:
echo var_dump(mysql_fetch_array ($Abfrage));
oder
echo var_dump($DBErgebnis1);
oder
echo print_r(mysql_fetch_array ($Abfrage));
oder
echo print_r($DBErgebnis1);
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany


Return to PHP

Who is online

Users browsing this forum: No registered users and 23 guests