Homepage selbermachen 7.852 Themen, 35.619 Beiträge

MySQL Abfrage in PHP

Itchi / 11 Antworten / Baumansicht Nickles

Hallo zusammen,


Ich bastel gerade an einer Datenbankabfrage rum kenn mich leider zuwenig mit PHP aus. Wer kann mir helfen die Abfrage (funktioniert im phpmyadmin) in PHP umzusetzen?


select  bugID,customer,openDate,closeDate,
Hour(closeDate-openDate)
as Stunden,
MINUTE(closeDate-openDate)
as Minuten ,
SECOND(closeDate-openDate)
as Sekunden
from bugs


 


Vielen Dank an die Cracks


cu Itchi

bei Antwort benachrichtigen
Heinz_Malcher Itchi „MySQL Abfrage in PHP“
Optionen

beschreib mal, was du damit machen willst, dann kann man dir effektiven code geben.
gruss heinz

bei Antwort benachrichtigen
Borlander Itchi „MySQL Abfrage in PHP“
Optionen
&lt?php
$query = <<<EOT
select bugID,customer,openDate,closeDate,
Hour(closeDate-openDate)
as Stunden,
MINUTE(closeDate-openDate)
as Minuten ,
SECOND(closeDate-openDate)
as Sekunden
from bugs
EOT;

// Verbindung mit der Datenbank herstellen
$link = mysql_connect ($datenbankname, $user, $password)
  or die ('Fehler beim Verbinden mit der Datenbank!');

// Abfrage senden
$result = mysql_query ($query, $link)
  or die ('Fehler bei der Datenbankabfrage!');

// Ergebnisse ausgeben
while ( $row = mysql_fetch_array($result) )
{
  echo $row[$feldname]
}

// Verbindung beenden
mysql_close ($link);
?>


Die Variablen $datenbankname, $user, $password und $feldname, musst Du nach deinen Gegebenheiten anpassen.


CU Borlander
bei Antwort benachrichtigen
Heinz_Malcher Itchi „MySQL Abfrage in PHP“
Optionen

Ich würd das so machen:

$db = mysql_connect ($datenbankname, $user, $password)
$result = mysql_query ($query, $link)
while ( $zeile = mysql_fetch_object($db))
{
echo "$zeile->feldname";
}
mysql_close ($db);



Der Vorteil: Wenn du später nochmal zwischen die spalten eine dazufügen willst, kommt dann der rest nicht durcheinander :-)



oder so:


$db = mysql_connect ($datenbankname, $user, $password)
$result = mysql_query ($query, $link)
while ( $zeile = mysql_fetch_row($db))
{
echo "$zeile[0]";
echo "$zeile[1]";
echo "$zeile[2]";
echo "$zeile[3]";

}
mysql_close ($db);

bei Antwort benachrichtigen
Borlander Heinz_Malcher „Ich würd das so machen: db mysql_connect datenbankname, user, password result...“
Optionen

Hallo Heinz,
irgendwie hast Du die Variablen ein bisschen durcheinandergewirbelt. ;-)
So sollte es richtig sein:
[...]
$db = mysql_connect ($datenbankname, $user, $password)
$result = mysql_query ($query, $db)
while ( $zeile = mysql_fetch_object($result))
[...]


Frage: Bringt der Einsatzt von mysql_fetch_object gegenüber mysql_fetch_arry eigentlich einen bestimmten Vorteil außer, dass man ein Object statt einem Array bekommt? Ansonsten machen unsere Scripts ja das gleiche.

CU Borlander

bei Antwort benachrichtigen
Itchi Nachtrag zu: „MySQL Abfrage in PHP“
Optionen

Vielen Dank!

Ich werde das Morgen gleich Testen und Euch Informieren.

Das Script (wie lange wurde gebraucht ein Ticket abzuarbeiten) wird für die Erweiterung einer Fehlerbearbeitungsdatenbank (langes Wort) gebraucht, die ich zur Zeit für meine Firma aufbaue. Und das ist nun die letzte Funktion die noch gebraucht wird, damit es vom Chef freigegeben wird und unsere Support Abteilung damit arbeiten kann.

cu Itchi

bei Antwort benachrichtigen
xafford Itchi „MySQL Abfrage in PHP“
Optionen

na, da habt ihr beide wohl vergessen die richtige datenbank erst mal auszuwählen ;o)
nach dem connect-befehl muß noch mysql_selevct_db(\'datenbankname\'); eingesetzt werden.
h_a_n_d

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
Borlander xafford „na, da habt ihr beide wohl vergessen die richtige datenbank erst mal...“
Optionen

Da hat der Fehlerteufel heute gestern aber übel zugeschlagen. ;-)

Dann muss es auch so heissen:
[...]
mysql_connect ($servername, $user, $password)
[...]



CU Borlander

PS: Auch bei Dir hat er zugeschlagen: mysql_selevct_db -> mysql_select_db

bei Antwort benachrichtigen
Itchi Nachtrag zu: „MySQL Abfrage in PHP“
Optionen

Ich komme da nicht ganz zurecht :-(

Der Connect zur Datenbank wird durch eine eigene config.php Seite eingebunden und ist somit erledigt.

Irgendwie sollte aus zwei Feldern der Datenbank (openDate und closeDate) die Differenz in Tagen, Minuten und Sekunden errechnet und zusammen mit der bugID und dem customer auf dem Bildschirm ausgegeben werden.

Wie schon geschrieben macht die folgende Abfrage mit dem phpmyadmin genau die gewünschte funktion:

##########################################
select bugID,customer,openDate,closeDate,
Hour(closeDate-openDate)
as Stunden,
MINUTE(closeDate-openDate)
as Minuten ,
SECOND(closeDate-openDate)
as Sekunden
from bugs
#########################################

Vielleicht kann mir da nochmal jemand helfen.

Danke

cu Itchi

bei Antwort benachrichtigen
Borlander Itchi „Ich komme da nicht ganz zurecht :- Der Connect zur Datenbank wird durch eine...“
Optionen
Ich komme da nicht ganz zurecht

Wo genau hakt es denn? Bei der Ausgabe/Anzeige der Daten?

Hast Du mal eins der hier geposteten Scripte (inklusive der korregierten Fehler) ausprobiert?


CU Borlander

bei Antwort benachrichtigen
Heinz_Malcher Itchi „MySQL Abfrage in PHP“
Optionen

upsa, ja die variablen stimmen nicht..

ich glaube nicht, ausser, dass es wie schon gesagt, wirklich nur
etwas mehr übersicht bei grossen tabellen bietet, ansonsten arbeite
ich persönlcih eigentlich immer mit arrays ist glaub ich gewohnheitssache.


einen performance unterschied hab ich zum beispiel noch nicht festgestellt


@xafford: auch das noch....grrrr

bei Antwort benachrichtigen
Borlander Heinz_Malcher „@ borlander & @xafford“
Optionen

Der Unterschied soll laut PHP-Referenz auch nur minimal sein, so dass die Verwendung von mysql_fetch_array oder mysql_fetch_object empfohlen wird, da diese einen doch erheblichen Mehrwert bieten.

Array vs. Object:
Beim Array sehe ich den Großen Vorteil, dass man den Feldnamen auch durch eine Variable/Konstante festlegen kann, das geht beim Object nicht.

CU Borlander

bei Antwort benachrichtigen