Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

PHP MySQL Abfrage aus Datenbank

Frage Entwicklung PHP

Mitglied: Lost144

Lost144 (Level 1) - Jetzt verbinden

02.07.2014 um 14:34 Uhr, 1836 Aufrufe, 12 Kommentare, 2 Danke

Hallo,

Ich habe in einer Datenbank daten über VM's stehen. Angaben wie hostname,adresse, serverat usw.

Wie kann ich in PHP ne Abfrage der Daten aus der Datenbank so machen, dass der nach und nach alle Daten ausliest.
Ich möchte gerne nach und nach per Script aus der Datenbank rauslesen, welche VM's an sind und die herausfiltern und diese Daten in eine CMD senden.
Wenn ich angeben würde, das die VM xy herausgefiltert werden soll kann ich in die sql Abfrage dies einbauen aber das kann ich in diesem Fall nicht anwenden.

Vielen Dank für Tipps
Mitglied: SlainteMhath
02.07.2014 um 16:28 Uhr
Moin,

hm, ziemlich verworren dein Beitrag... schon mal Google gefragt? Der kennt 1000te seiten, wie z.b. das hier: http://www.homeandlearn.co.uk/php/php13p2.html

lg,
Slainte
Bitte warten ..
Mitglied: Xaero1982
02.07.2014 um 21:21 Uhr
Hi,

nicht nur verworren, sondern irgendwie total unverständlich. Versuchs bitte noch mal... von mir aus auch mit 5 Worten mehr und Satzzeichen an den richtigen Stellen.

Gruß
Bitte warten ..
Mitglied: Lost144
03.07.2014 um 08:49 Uhr
Er gibt aus der DB Abfrage mir aus dem ersten Feld die Daten aus aber nicht die anderen zugehörigen Daten die zu dem Feld gehört.
Bitte warten ..
Mitglied: SlainteMhath
03.07.2014 um 08:57 Uhr
was bitte?

Ok, bitte zeig uns doch mal ein SQL Statement, das Schema der zugehörigen Tabellen und was dudir eigentlich als Ergebniss vorstellst (notfalls als Screenshot von Excel oder so).
Bitte warten ..
Mitglied: Lost144
03.07.2014 um 11:14 Uhr
habe diesen Code und er schreibt mir in die Datei nur das erste Ergebnis aus der Schleife.
Aber wenn ich den Code ohne die function für das einfügen in die Datei verwende, gibt mir die Schleife alle Ergebnise aus der DB aus.
Und so fügt der in die Datei nur den ersten Treffer aus

for ($i=0;$i<$num;$i++)
{
$hostname = mysql_result($res, $i, "hostname");
$serverart = mysql_result($res, $i, "serverart");
$serveradresse = mysql_result($res, $i, "serveradresse");
$datastore = mysql_result($res, $i, "datastore");



function write_data($data, $fname) {

$fp = fopen($fname, "w");

foreach ($data as $key => $value) {

fwrite($fp, "$key $value \n");
}

fclose($fp);
}

$test["1"]= $hostname;
$test["2"]= $serverart;
$test["3"]= $serveradresse;
$test["4"]= $datastore;

write_data($test, "daten.txt");
Bitte warten ..
Mitglied: SlainteMhath
03.07.2014 um 11:44 Uhr
Sorry, aber der code ist genauso verwirrt wie dein Beitrag.

Möchtest du evtl. das hier machen:
01.
$fp = fopen($fname, "w"); 
02.
for ($i=0;$i<$num;$i++) 
03.
04.
	$hostname = mysql_result($res, $i, "hostname"); 
05.
	$serverart = mysql_result($res, $i, "serverart"); 
06.
	$serveradresse = mysql_result($res, $i, "serveradresse"); 
07.
	$datastore = mysql_result($res, $i, "datastore"); 
08.
	 
09.
	fwrite($fp, "1 $hostname\n"); 
10.
	fwrite($fp, "2 $serverart\n"); 
11.
	fwrite($fp, "3 $serveradresse\n"); 
12.
	fwrite($fp, "4 $datastore\n"); 
13.
			 
14.
15.
fclose($fp);
?
Bitte warten ..
Mitglied: Lost144
03.07.2014 um 15:27 Uhr
Ich weil einfach die Variablen aus der Schleife in eine txt Datei speichern.
Wie ich oben benannt habe. Und nein dein Code hilft mir nicht weiter.
Bitte warten ..
Mitglied: SlainteMhath
03.07.2014, aktualisiert um 15:55 Uhr
Also der Code schreibt aus der Schleife
01.
for ($i=0;$i<$num;$i++)
die Variablen
01.
	$hostname = mysql_result($res, $i, "hostname");  
02.
	$serverart = mysql_result($res, $i, "serverart");  
03.
	$serveradresse = mysql_result($res, $i, "serveradresse");  
04.
	$datastore = mysql_result($res, $i, "datastore"); 
in eine Textdatei
01.
$fp = fopen($fname, "w");  
02.
... 
03.
fwrite($fp, "1 $hostname\n");  
04.
	fwrite($fp, "2 $serverart\n");  
05.
	fwrite($fp, "3 $serveradresse\n");  
06.
	fwrite($fp, "4 $datastore\n");  
07.
... 
08.
fclose($fp);
Du musst also schon konkreter werden. Oder du postest, wie schon oben angemerkt, mal den komplette code inkl. dem SQL Statement und den Tabellen Schemas
Bitte warten ..
Mitglied: Lost144
04.07.2014, aktualisiert um 11:17 Uhr
Hier mein kompletter Code.
Er schreibt mir nun die Daten oben aus der SQL Abfrage in eine Text Datei aber ich habe das Problem das er jedes mal beim ausführen die Daten an die vorhanden Daten in der Text datei ergänzt. Aber wenn ich oben im Code den Paramater W verwende, schreibt er mir nur einen Datensatz rein


01.
  
02.
<?php  
03.
 
04.
 
05.
   
06.
   $db     = mysql_connect("....."
07.
   $db_sel = mysql_select_db("ks"); 
08.
$timestamp = time(); 
09.
$heute = date("Y-m-d",$timestamp);	 
10.
   $sql_ab  = "SELECT * "
11.
   $sql_ab .= "FROM GEHIM "
12.
   $sql_ab .= "WHERE status = '1' AND Datum < $heute"
13.
    
14.
   $res = mysql_query($sql_ab); 
15.
   $num = mysql_num_rows($res);    
16.
    
17.
   
18.
   if ($num == 0) 
19.
20.
   echo "Fehler"
21.
22.
   else 
23.
24.
      
25.
	// $hostname= ''
26.
     for ($i=0;$i<$num;$i++) 
27.
28.
        // $hostname     =    $hostname."\r\n".mysql_result($res, $i, "hostname"); 
29.
		$hostname    =    mysql_result($res, $i, "hostname"); 
30.
  	    $serverart    =    mysql_result($res, $i, "serverart"); 
31.
		$serveradresse    =    mysql_result($res, $i, "serveradresse"); 
32.
		$datastore    =    mysql_result($res, $i, "datastore"); 
33.
		$Datum    =    mysql_result($res, $i, "Datum"); 
34.
		 
35.
	 
36.
 
37.
 
38.
 
39.
$filename = 'test.txt'
40.
 
41.
 
42.
 
43.
 
44.
		if (is_writable($filename)) { 
45.
 
46.
  
47.
			if (!$handle = fopen($filename, "a")) { 
48.
			print "Kann die Datei $filename nicht öffnen"
49.
			exit
50.
			}		 
51.
 
52.
  
53.
				if (!fwrite($handle, $hostname.','.$serveradresse.','.$serverart.','.$datastore.',')) { 
54.
				print "Kann in die Datei $filename nicht schreiben"
55.
				exit
56.
57.
 
58.
    print "Fertig, in Datei $filename wurde  geschrieben"
59.
 
60.
    fclose($handle); 
61.
 
62.
	} else
63.
			print "Die Datei $filename ist nicht schreibbar"
64.
	}	 
65.
	 
66.
	 
67.
 
68.
 
69.
70.
     mysql_close($db); 
71.
      
72.
         
73.
  
74.
 
75.
76.
    
77.
?>
Bitte warten ..
Mitglied: Biber
04.07.2014 um 11:39 Uhr
Moin Lost144,

... das is' ja mal ein witziges Schleifenkonstukt...

Musst du wirklich innerhalb der FETCHerei bei jedem Datensatz die Ausgabedatei test.txt öfnen, einen Satz schreiben und wieder schliessen?

Falls das keine ABM-Massnahme für deinen Prozessor ist und/oder du ihm künftig den gesetzlich empfohlenen Mindestlohn zahlen musst
-> dann würde ich es überdenken.

Ich liebe Freitage
Biber
Bitte warten ..
Mitglied: SlainteMhath
04.07.2014 um 11:58 Uhr
Aber wenn ich oben im Code den Paramater W verwende
Ja das liegt genau an dem was dir Biber geschrieben hat. Du führst bei jedem Datensatz ein fopen aus

Aus der PHP Doku zu fopen mit parameter "w"
01.
Nur zum Schreiben geöffnet; platziere Dateizeiger auf Dateianfang und kürze die Datei auf eine Länge von 0. Existiert die Datei nicht, versuche, diese zu erzeugen.
also Code umstellen, fopen einmal am VOR der Schleife, fclose einmal NACH der Schleife und dann gehts.
Bitte warten ..
Mitglied: Lost144
04.07.2014 um 13:40 Uhr
Vielen Dank das du mir Geholfen hast anstatt mir eine Predigt zu halten

Problem ist gelöst
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
PHP
MySQL-Abfrage mit php: Wert + true bzw. false (2)

Frage von tomolpi zum Thema PHP ...

PHP
PHP MySQL Login (7)

Frage von Yanmai zum Thema PHP ...

PHP
gelöst PHP-MySQL - mysqli liefert einen Datensatz zu wenig (3)

Frage von Windows-Spieler zum Thema PHP ...

Datenbanken
gelöst MYSQL Abfrage (20)

Frage von datadexx zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...