• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Verzeichnis Angabe

noxx2

Neues Mitglied
Verzeichnis Angabe // Edit: Zugangsdaten mySQL

Hallo,

ich habe auf meinem Webserver im Verzeichnis (FTP) /files ein PHP Script
welches mir Textdatei einlesen soll.
Die Textdateien liegen in /html/Archive

Nun bin ich nicht sicher, wie man den korrekten Pfad dorthin angibt.

PHP:
$datum = date("Y-m-d");                            // Aktuelles Datum

$inhalt = file("ARC-".$datum.".txt");
 
Zuletzt bearbeitet:
Absolut:
PHP:
$inhalt = file($_SERVER["DOCUMENT_ROOT"] . "/html/Archive/ARC-" . $datum . ".txt");

Relativ:
PHP:
$inhalt = file("../html/Archive/ARC-" . $datum . ".txt");
 
Ich danke dir.

Hätte da aber noch eine ähnliche Frage

Ich möchte eine *.html Seite erstellen auf der Daten aus meiner mySQL Datenbank
dargestellt werden.

Nun bin ich nicht sicher wie das mir den Konfigurationsdaten sauber funktioniert, will
ja nicht das diese "offen" liegen wenns sich einer den Quelltext anschaut.

Habe etwas gestöbert und meist finde ich in den Beispielen diesen Anfang:

PHP:
<?php
require_once ('konfiguration.php');
$db_link = mysql_connect ( MYSQL_HOST, 
                           MYSQL_BENUTZER, 
                           MYSQL_KENNWORT );
...

Also müsste ich eine datei names konfiguration.php erstellen,
die dann im Verzeichnis $Server/files/konfiguration.php liegen würde, die *.html würde
dann liegen in $Server/html/beispielseite.html

Denke mal die die konfiguration.php (ohne es probiert zu haben) müsste dann in etwa
so aussehen:

PHP:
<?php
MYSQL_HOST = "meinhost.de";
MYSQL_BENUTZER = "user";
MYSQL_KENNWORT = "password";
?>

Beim Aufruf der Webseite beispielseite.html wird dann doch aber vermutlich nicht
automatisch im Verzeichnis ./files nach der konfiguration.php gesucht, oder?

Was gebe müsste ich dazu denn noch zusätzlich angeben?

Gruss
 
Ich möchte eine *.html Seite erstellen auf der Daten aus meiner mySQL Datenbank dargestellt werden.
Ich würde lieber eine *.php-Datei erstellen, sonst bringt das nichts ;)

will ja nicht das diese "offen" liegen wenns sich einer den Quelltext anschaut.
Da kommt man ja nicht dran, außer, wenn der Webserver rumspinnt. Der Server liefert die Datei geparst aus, und somit sind die Zugangsdaten nicht ersichtlich.

Also müsste ich eine datei names konfiguration.php erstellen
Richtig

Denke mal die die konfiguration.php (ohne es probiert zu haben) müsste dann in etwa so aussehen
Nein, deine konfiguration.php würde einen Parse-Error hervorrufen, das sollte so aussehen:
PHP:
<?php
   define ('MYSQL_HOST', 'localhost');
   define ('MYSQL_USER', 'user');
   define ('MYSQL_PASSWORD', 'passwort');
   define ('MYSQL_DB_NAME', 'datenbankname');
?>

Beim Aufruf der Webseite beispielseite.html wird dann doch aber vermutlich nicht automatisch im Verzeichnis ./files nach der konfiguration.php gesucht, oder?
Nein, wird es nicht. Entweder den Pfad relativ oder absolut angeben, oder den Include-Path anpassen
 
danke.

werde die konfiguration.php von dir testen.

hatte gerade mal mit XAMPP gespielt und folgende
konfiguration.php geteset, die lief ohne Fehler:

PHP:
<?php
$MYSQL_HOST         = "localhost";
$MYSQL_BENUTZER     = "root";
$MYSQL_KENNWORT     = "password";
$MYSQL_DATENBANK     = "database";
$MYSQL_TABELLE         = "tabelle";
?>

Funktioniert irgendwie beides....Nunja.

Danke

Gruss
 
Funktioniert irgendwie beides....
Definitiv nicht! Wenn du folgendes hast:
PHP:
$db_link = mysql_connect ( MYSQL_HOST, 
                           MYSQL_BENUTZER, 
                           MYSQL_KENNWORT );
dann kann das mit
PHP:
 <?php
$MYSQL_HOST         = "localhost";
$MYSQL_BENUTZER     = "root";
$MYSQL_KENNWORT     = "password";
$MYSQL_DATENBANK     = "database";
$MYSQL_TABELLE         = "tabelle";
?>
nicht funktionieren
 
Habs nun auch so wie von dir vorgeschlagen, danke!

Teste gerade eine ganz einfache Abfrage, verzweifel hier aber weil ich keine
Ausgabe bekomme.

Teste gerade das hier:
PHP:
<?php
require_once ('../files/konfiguration.php');
mysql_connect  ($MYSQL_HOST, $MYSQL_BENUTZER, $MYSQL_KENNWORT );
mysql_select_db($MYSQL_DATENBANK ) or die("Auswahl der Datenbank fehlgeschlagen");

$sql = "SELECT * FROM $MYSQL_TABELLE WHERE id = '2'";

$db_erg = mysql_query( $sql ) or die("Datenbankzugriff gescheitert!");

echo ("Mittlere Boehe");
echo ("<br>");
echo $db_erg['Boehe_Mittel'];
  
?>

Er soll mir aus meiner Datenbank/Tabelle aus der Zeile ID=2 den Werte aus der Spalte Mittlere Boehe
anzeigen, aber es kommt nichts, auch kein Fehler......

Gruss
 
danke, ich gucke mir das an.

habs nur mit ner Schleife hinbekommen, aber
da ich nur einen Wert will muss das ganze doch auch
ohne gehen, oder?

PHP:
`<?php
require_once ('../files/konfiguration.php');
mysql_connect  ($MYSQL_HOST, $MYSQL_BENUTZER, $MYSQL_KENNWORT );
mysql_select_db($MYSQL_DATENBANK ) or die("Auswahl der Datenbank fehlgeschlagen");

$ergebnis = mysql_query("SELECT * FROM $MYSQL_TABELLE WHERE id = '2'") or die("Datenbankzugriff gescheitert!");


// echo ("Mittlere Boehe");
// echo ("<br>");
// echo $db_erg['Boehe_Mittel'];

while($row = mysql_fetch_object($ergebnis))
{
  echo $row->Boehe_Mittel;
}

   
   
?>
 
Klar.

PHP:
$daten = mysql_fetch_row($ergebnis);
echo $daten[0]["Boehe_Mittel"];

Ich habe das mal lokal getestet:
PHP:
<?php
require_once ('../files/konfiguration.php');
mysql_connect  ($MYSQL_HOST, $MYSQL_BENUTZER, $MYSQL_KENNWORT );
mysql_select_db($MYSQL_DATENBANK ) or die("Auswahl der Datenbank fehlgeschlagen");

$ergebnis = mysql_query("SELECT * FROM $MYSQL_TABELLE WHERE id = '2'") or die("Datenbankzugriff gescheitert!");

$daten = mysql_fetch_row($ergebnis);
echo $daten[0]["Boehe_Mittel"];

// while($row = mysql_fetch_object($ergebnis))
// {
  // echo $row->Boehe_Mittel;
// }
  
?>

Bekomme dann aber den Fehler:
Code:
[B]Warning[/B]:  Illegal string offset 'Boehe_Mittel' in [B]C:\xampp\htdocs\mysql_test.php[/B] on line [B]9[/B]
2

Der Wert der ausgegeben werden müsste, wäre 2.51
 
Zuletzt bearbeitet:
Das Debuggen musst du aber noch lernen, oder? ;)

PHP:
var_dump($row);

Damit sollte dir der Fehler auffallen. Außerdem sollte man prüfen, ob mysql_fetch* überhaupt was geliefert hat außer false
 
Das Debuggen musst du aber noch lernen, oder? ;)

PHP:
var_dump($row);

Damit sollte dir der Fehler auffallen. Außerdem sollte man prüfen, ob mysql_fetch* überhaupt was geliefert hat außer false

Ja, muss noch viel lernen :)

mit dem Debug kommt:

Code:
array(13) {   [0]=>   string(1) "1"   [1]=>   string(10) "2012-10-22"   [2]=>   string(4) "12.8"   [3]=>   string(4) "14.6"   [4]=>   string(5) "13.44"   [5]=>   string(2) "89"   [6]=>   string(2) "93"   [7]=>   string(5) "91.66"   [8]=>   string(1) "3"   [9]=>   string(4) "1.63"   [10]=>   string(1) "6"   [11]=>   string(4) "2.51"   [12]=>   string(1) "0" }
 
Und da fällt dir nichts auf? Ich würde mal sagen, der Index [0]["Boehe_Mittel"] existiert nicht. Ändere dein "Select *" und trage nur die Felder ein, die du auch wirklich haben willst. Dann benutze statt mysql_fetch_row einfach mysql_fetch_assoc und dann gibt es den Index ["Boehe_Mittel"] (wenn das in der Select-Liste vorkommt).
 
Und da fällt dir nichts auf? Ich würde mal sagen, der Index [0]["Boehe_Mittel"] existiert nicht. Ändere dein "Select *" und trage nur die Felder ein, die du auch wirklich haben willst. Dann benutze statt mysql_fetch_row einfach mysql_fetch_assoc und dann gibt es den Index ["Boehe_Mittel"] (wenn das in der Select-Liste vorkommt).

Kommt ja vor, aber bekomme sowas einfaches nicht gebacken. Habs nun mehrmals nachgeschlagen, aber es will einfach nicht.

PHP:
<?php
error_reporting(E_ALL);
ini_set("display_errors", true); 

require_once ('../files/konfiguration.php');
mysql_connect  ($MYSQL_HOST, $MYSQL_BENUTZER, $MYSQL_KENNWORT );
mysql_select_db($MYSQL_DATENBANK ) or die("Auswahl der Datenbank fehlgeschlagen");

$ergebnis = mysql_query("SELECT 'Boehe_Mittel' FROM $MYSQL_TABELLE WHERE id = '2'") or die("Datenbankzugriff gescheitert!");

$daten = mysql_fetch_assoc($ergebnis);

echo $daten['Boehe_Mittel'];

?>

Sollte 2.51 ausgeben, was gibt er mir? Den Spaltennamen. Rufe ich das Script auf kommt als Ausgabe: Boehe_Mittel :?
 
Das kommt daher, weil du den Spaltennamen falsch schreibst! Nicht 'Boehe_Mittel' sondern `Boehe_Mittel` beim Select, also Backticks
PHP:
$ergebnis = mysql_query("SELECT `Boehe_Mittel`  FROM $MYSQL_TABELLE WHERE id = '2'") 
    or die("Datenbankzugriff gescheitert! MySQL-Error: " . mysql_error());
 
Zurück
Oben