Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

MySQL - Object ID 2

Frage Entwicklung Datenbanken

Mitglied: beckslevel91

beckslevel91 (Level 1) - Jetzt verbinden

02.10.2009, aktualisiert 08:16 Uhr, 5136 Aufrufe, 16 Kommentare

Hallo..

ich habe folgendes Problem:

Ich möchte den letzten Stand einer MySQL Datenbank auslesen. Hierfür habe ich die Spalte "stand", in die bei einer Änderung über mein Formular (PHP) automatisch das aktuelle Datum eingetragen wird.

Beim Abfragen der Datensätze möchte ich diesen Stand auch (gesondert) auslesen und anzeigen:

01.
$stand = "SELECT stand FROM tabelle ORDER BY stand DESC LIMIT 1"; 
02.
$dbstand = $db->query($stand); 
03.
if (!$dbstand) { 
04.
		die('Der Query konnte nicht ausgeführt werden: '.$db->error); 
05.
06.
if ($dbstand->num_rows) { 
07.
echo "$dbstand"; 
08.
}
Wenn ich das so versuche, erhalte ich immer folgende Meldung: Object id #2

Woran liegt das??
Mit der DB bin ich verbunden und die Befehle funktionieren so auch für den Rest der Daten. Habe noch was versucht, bringt aber den gleichen Fehler:

01.
$stand = "SELECT MAX(stand) AS stand FROM tabelle"; 
02.
$dbstand = $db->query($stand); 
03.
...
Thx, in advance,

J.R.

PS: Die Object id #2 hat auch nichts mit der ID des Datensatzes zu tun..

Gibts vielleicht noch eine andere Möglichkeit, den Stand der Tabelle (wann halt die letzte Änderung war) abzufragen??
Mitglied: nxclass
02.10.2009 um 08:33 Uhr
... dann prüfe mal bitte was von der Funktion query() zurückgegeben wird - das ist sicherlich nicht der Inhalt des Datenfeldes.
Bitte warten ..
Mitglied: beckslevel91
02.10.2009 um 08:40 Uhr
Okay danke, aber wie überprüfe ich das??
Bitte warten ..
Mitglied: wakko
02.10.2009 um 09:16 Uhr
Moin,

du mußt noch eine Datenzeile aus dem Resourceobjekt auslesen:
01.
while ($row = mysql_fetch_row($dbstand)) { 
02.
echo $row[0]; 
03.
}
MfG
Bitte warten ..
Mitglied: beckslevel91
02.10.2009 um 09:26 Uhr
Okay, danke hab ich eingefügt, aber nun kommt folgendes:

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /.../getdbcontent.php on line 26

Wo ist denn eigl das Problem bei der ganzen Sache?? Also die Spalte ist von Typ Date
Bei den anderen Daten die ich exakt so auslese funktioniert es doch auch^^

Gruß,

J.R.
Bitte warten ..
Mitglied: Biber
02.10.2009 um 09:38 Uhr
Moin beckslevel91,

was hältst Du denn von dem eher konservativen Ansatz, den SQL-String mit Semikolon abzuschliessen?
Gleich in Zeile 1...
01.
 $stand = "SELECT MAX(stand) AS stand FROM tabelle;"
02.
 
03.
$dbstand = $db->query($stand);  
04.
 
05.
while ($row = mysql_fetch_row($dbstand)) { 
06.
echo $row[0]; 
07.
}
Grüße
Biber
Bitte warten ..
Mitglied: nxclass
02.10.2009 um 09:44 Uhr
Entweder schaust Du mal in deinen Quellcode oder der Dokumentation des $db Objekts.
01.
echo gettype( $dbstand ); // sollte Dir Zeigen das es sich um ein Objekt handelt
Bitte warten ..
Mitglied: beckslevel91
02.10.2009 um 09:44 Uhr
Moin,

hab ich gemacht, aber der Fehler bleibt leider gleich..

Gruß,

J.R.
Bitte warten ..
Mitglied: Biber
02.10.2009 um 09:48 Uhr
Moin beckslevel91,

dann mach doch bitte erstmal ein "Select * from Tabelle;" damit du und wir wissen, ob das funktioniert.

Grüße
Biber
Bitte warten ..
Mitglied: nxclass
02.10.2009 um 09:49 Uhr
01.
$sSQL = <<<__SQL__ 
02.
SELECT MAX(`stand`) AS 'stand' 
03.
FROM `tabelle`; 
04.
__SQL__; 
05.
 
06.
if ( $oResult = $db->query($sSQL) ) { 
07.
    while ($aRow = mysql_fetch_assoc($oResult)) { 
08.
        echo $aRow['stand']; 
09.
10.
} else { 
11.
    die( mysql_errno($db) . " :  " . mysql_error($db). "\n" ); 
12.
}
... jetzt kommt evtl. eine Fehlermeldung.
Bitte warten ..
Mitglied: beckslevel91
02.10.2009 um 10:12 Uhr
Okay, also ich habe jetzt folgendes versucht:

01.
$db = "datenbank"; 
02.
$sSQL = <<<__SQL__ 
03.
SELECT MAX(`stand`) AS 'stand' 
04.
FROM `praktikum`; 
05.
__SQL__; 
06.
 
07.
if ( $oResult = $db->query($sSQL) ) { 
08.
    while ($aRow = mysql_fetch_assoc($oResult)) { 
09.
        echo $aRow['stand']; 
10.
11.
} else { 
12.
    die( mysql_errno($db) . " :  " . mysql_error($db). "\n" ); 
13.
}
folgender Fehler kommt nun:

Fatal error: Call to a member function query() on a non-object in /var/www/html/it-ausbildung/jried/getdbcontent.php on line 33

Gruß,

J.R.
Bitte warten ..
Mitglied: nxclass
02.10.2009 um 11:12 Uhr
... ich schätze Du hast dir eine eigene DB Klasse geschrieben !? - dann solltest Du dir noch eine 'Error' Funktion mit einfügen.

01.
 
02.
/**  
03.
04.
 * @return string    String mit Fehlercode und Fehlermedlung 
05.
*/ 
06.
public funktion getError() 
07.
08.
 return mysql_errno($this->db) . ' : ' . mysql_error($this->db); 
09.
}
Bei einer Fehlermeldung: 'non Object' - ist meist ein Fehler beim Erstellen des Objekts aufgetreten. ... $db sollte ein Objekt und kein String sein !!!
Bitte warten ..
Mitglied: beckslevel91
02.10.2009 um 11:28 Uhr
Also, hier verbinde ich mich mit der DB:

01.
$db = @new mysqli('localhost', '$user', '$passwort', '$datenbank'); 
02.
if (mysqli_connect_errno()) { 
03.
    die ('Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error().'('.mysqli_connect_errno().')'); 
04.
}
das meinst Du doch oder?

Gruß, und danke,

J.R.
Bitte warten ..
Mitglied: nxclass
02.10.2009 um 12:34 Uhr
... ist etwas ungewöhnlich Programmiert - aber ok.

Dieses Konstrukt solltest Du nun auch in deiner query() Funktion einbauen um bei einer Fehlerhaften SQL Anweisung eine Meldung zu bekommen.

Du benutzt 'mysqli' statt 'mysql' - das könnte schon den Fehler aus deinem 2. Post erklähren.

PS: '... @new ...' hab ich ja noch nie gesehen - ist das PHP6 ?
Bitte warten ..
Mitglied: Arano
02.10.2009 um 13:17 Uhr
mysqli = PHP-Manual: MySQL Improved Extension (de.php.net)

Ich greif mal bei deinem Eingangspost ein weil mittlerweile bestimmt keiner mehr einen Überblick über deinen derzeitigen Code hat !?

Die "query()"-Methode der MySQLi-Klasse liefert bei einem SELECT ein Objekt zurück ! PHP-Manual: mysqli::query() (de.php.net)
Dies kannst du sehr gut mit den beiden Funktionen PHP-Manual: print_r() (php.net) und PHP-Manual: var_dump()() (php.net) feststellen und sie gleichzeitig betrachten ;)

mysqli::num_rows() gibt die Anzahl der enthaltenen Datensätze zurück, sonst nichts !
Somit ist deine Variable "$dbstand" immer noch das Objekt der mysqli-Klasse welches durch die Methode "query()" zurückgegeben wurde.
Ein einfaches "echo $dbstand" kann so also auch einfach nur das ausgeben was in der Variable steht, nämlich die Referenz auf ein Objekt (Object id #2) !

Du musst jetzt also die einzelnen Datensätze aus dem Objekt "extrahieren", s. PHP-Manual: mysqli::fetch_assoc() (de.php.net)
Auf der Seite findest du auch eine einfaches (im Sinne von einfach Programmiert) Beispiel.

Wenn du nur einen einzelnen Datensatz auslesen möchtest, geht das auch (s.Beispiel) ohne "while()"-Schleife:
01.
<?php 
02.
$sQuery = "SELECT stand FROM tabelle ORDER BY stand DESC LIMIT 1"
03.
$oDbResult = $oDb->query($sQuery); 
04.
if (FALSE!==$oDbResult) { 
05.
		die('Der Query konnte nicht ausgeführt werden: '.$oDb->error); 
06.
07.
if (0 > $oDbResult->num_rows) { 
08.
    $aDbStand = $oDbResult->fetch_assoc(); 
09.
    echo $aDbStand['stand'].'<br>'
10.
11.
?>
Pi mal Daumen jedenfalls (Habe es so in den Browser getippt).


~Arano
Bitte warten ..
Mitglied: Arano
05.10.2009 um 15:34 Uhr
Hey J.R.

wie sieht es aus, hast du es mittlerweile zu laufen gebracht ?

Hier noch eine kleine Korrektur zu meinem Beispiel:
Zeile 07: "0 > $oDbResult->num_rows"
Ist natürlich Blödsinn den 0 wir nie größer sein können als die Anzahl der Zeilen aus der Ergebnistabelle, höchstens gleich. Das muss also "0 < $oDbResult->num_rows" heißen.

~Arano
Bitte warten ..
Mitglied: beckslevel91
05.10.2009 um 15:50 Uhr
Hey,

vielen Dank für Deine Hilfe! Ich hab es jetzt sein lassen. Das war nicht so relevant dass sich der Aufwand gelohnt hätte.

trotzdem danke =)

Gruß,

J.R.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Array oder Object oder wie soll ich das machen
gelöst Frage von Druide83Batch & Shell4 Kommentare

Hallo, mal wieder verzweifelt. Wahrscheinlich ist die Lösung einfach, aber ich habe gerade keinen Kopf mehr zum klar denken. ...

Firewall
Suchen von object-groups mit bestimmten objects CISCO ASA
Frage von haiqualleFirewall3 Kommentare

Hi all, habe einige ACLs anzupassen Ich suche folgendes: einen Befehl, der mir den Namen der object-group. welche ein ...

PHP
PHP Tabellen automatisch nach Gruppen ID aus MYSQL erstellen
Frage von KyrinjaPHP8 Kommentare

Hallo liebe Gemeinde, ich sitze z.Z an einer Fahrzeugübersicht für unsere Feuerwehr. Hier würde ich gerne Tabellen dynamisch je ...

Batch & Shell
PowerShell Transpose Objects und Memoryleak
gelöst Frage von agowa338Batch & Shell11 Kommentare

Hallo, weiß jemand wie ich folgenden Powershell Code etwas optimieren kann? Ich habe sehr viele Eventlog Einträge 100.000 die ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 21 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 1 TagWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 1 TagWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement16 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...