Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Daten aus Mysql mit Fwrite exportieren? [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Daten aus Mysql mit Fwrite exportieren?


 
CrazyRomeo
28-10-2005, 15:01 
 
Hi ich möchte meine Shopdaten aus meiner SQL exportieren so das für jeden Artikel ne eigene HTML-Datei erstellt wird :-)

Hatte mir folgendes überlegt :


<?php

$mysqlhost="localhost"; // MySQL-Host angeben
$mysqluser=vvvvv"; // MySQL-User angeben
$mysqlpwd="vvvvv"; // Passwort angeben
$mysqldb="vvvvvv"; // Gewuenschte Datenbank angeben

$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Verbindungsversuch fehlgeschlagen");

mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");




$art_count = 1;
$artdaten = array();
$sql = "SELECT Title,Description_short,DisplayPrice,Img_url,DeepLink1,ProductCategoryID,ProductCategoryName
FROM burda_ ";
$artresult = $connection->select($sql);
if($connection->rows > 0) {
while($daten = mysql_fetch_array($artresult)) {
$artdaten[$art_count]['beschreibung'] = $daten['Description_short'];
$artdaten[$art_count]['preis'] = $daten['DisplayPrice'];
$artdaten[$art_count]['bild_url'] = $daten['Img_url'];
$artdaten[$art_count]['partnerlink'] = $daten['DeepLink1'];
$artdaten[$art_count]['produktid'] = $daten['ProductCategoryID'];
$artdaten[$art_count]['produktidname'] = $daten['ProductCategoryName'];
//start the file name
$filename = $artdaten[$art_count]['beschreibung'].'test.html';


//open html file for writing
$handle = fopen($filename,'w+');

//write header to html file
fwrite($handle, $artdaten[$art_count]['beschreibung']);


}
}






?>


leider bekomme ich immer diese Fehlermeldung . "
Fatal error: Call to a member function on a non-object in /home/www/web0/html/r04_de/Neu2.php on line 19
"

weis jemand rat ? fand meine Idee garnicht so schlecht *smile* . Danke schonmal im Vorraus

 
Sternkinder
28-10-2005, 15:07 
 
Versuch doch einfach mit mysql_fetch_array() (http://de2.php.net/manual/en/function.mysql-fetch-array.php) und setze am Anfang die Anführungszeichen richtig

 
CrazyRomeo
28-10-2005, 15:20 
 
OK habs nu so abgeändert:
<?php

$mysqlhost="localhost"; // MySQL-Host angeben
$mysqluser="vvv"; // MySQL-User angeben
$mysqlpwd="xxx"; // Passwort angeben
$mysqldb="yyy"; // Gewuenschte Datenbank angeben

$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Verbindungsversuch fehlgeschlagen");

$mys =mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");




$art_count = 1;
$artdaten = array();
$result = mysql_query("SELECT Title,Description_short,DisplayPrice,Img_url,DeepLink1,ProductCategoryID,ProductCategoryName
FROM burda_");

while ($row = mysql_fetch_array($result, MYSQL_NUM))
if($connection->rows > 0) {
while($daten = mysql_fetch_array($result)) {
$artdaten[$art_count]['beschreibung'] = $daten['Description_short'];
$artdaten[$art_count]['preis'] = $daten['DisplayPrice'];
$artdaten[$art_count]['bild_url'] = $daten['Img_url'];
$artdaten[$art_count]['partnerlink'] = $daten['DeepLink1'];
$artdaten[$art_count]['produktid'] = $daten['ProductCategoryID'];
$artdaten[$art_count]['produktidname'] = $daten['ProductCategoryName'];
$art_count++;


}
}


$filename = 'test.html';
ECHO "hallo". $artdaten[3]['beschreibung'] ;

//write header to html file
fwrite(fopen($filename,'w+'), $artdaten[3]['beschreibung']);

und freu fehlermeldung is wech :-) aber leider werden die daten des Arrys nicht weitergegeben :-(((( die HTML datei ist leer und über die Echo ausgabe kommt auch nixx :-( wat mach ich denn sooo falsh *seuz*

 
Sternkinder
28-10-2005, 15:31 
 
Du kannst ja erst mal mit var_dump oder print_r herausfinden ob in dem Array überhaupt was drin ist (also ob die Schleife funktioniert)

 
CrazyRomeo
28-10-2005, 15:54 
 
ja alles leer :-( nur warum ?

 
Sternkinder
28-10-2005, 16:19 
 
Dann änder mal die Schleife auf

while ($row = mysql_fetch_array($result, MYSQL_NUM))
$artdaten[$art_count]['beschreibung']=$daten['Description_short'];
$artdaten[$art_count]['preis']=$daten['DisplayPrice'];
$artdaten[$art_count]['bild_url']=$daten['Img_url'];
$artdaten[$art_count]['partnerlink']=$daten['DeepLink1'];
$artdaten[$art_count]['produktid']=$daten['ProductCategoryID'];
$artdaten[$art_count]['produktidname']= $daten['ProductCategoryName'];
$art_count++;
}

 
Sternkinder
28-10-2005, 16:38 
 
Funktionierts jetzt?

 
Sternkinder
28-10-2005, 17:03 
 
Sollte dann noch immer nichts ausgegeben werden solltest du vielleicht mal gucken ob, irgendwas in der Tabelle drin ist.

 
CrazyRomeo
28-10-2005, 18:02 
 
so freu fertig :-) es läuft! Danke für deine Hilfe :-) hab wohn noch eine frage wie bekomme ich Fwrite dazu das er "" in eine datei schreibt ?

 
Sternkinder
28-10-2005, 18:06 
 
Das bekommst du so hin:


$filename = 'test.txt';
$somecontent = "Add this to the file\n";

// Let's make sure the file exists and is writable first.
if (is_writable($filename)) {

// In our example we're opening $filename in append mode.
// The file pointer is at the bottom of the file hence
// that's where $somecontent will go when we fwrite() it.
if (!$handle = fopen($filename, 'a')) {
echo "Cannot open file ($filename)";
exit;
}

// Write $somecontent to our opened file.
if (fwrite($handle, $somecontent) === FALSE) {
echo "Cannot write to file ($filename)";
exit;
}

echo "Success, wrote ($somecontent) to file ($filename)";

fclose($handle);

} else {
echo "The file $filename is not writable";
}

 
CrazyRomeo
28-10-2005, 18:16 
 
leider nicht hatte ich schon versucht die "" werden nicht doppelt angenommen :-( ich müßte diese zeile z.B.



mit Fwrite oder anders in die Datei schreiben<META NAME="description" CONTENT="Superteuer sind nur die anderen :-)">

mit Fwrite oder anders in die Datei schreiben.

 
Sternkinder
28-10-2005, 18:18 
 
Dann ersetz doch alle " durch '. Die Browser Stört das nämlich nicht.

 
CrazyRomeo
28-10-2005, 18:23 
 
du bst der beste :-) danke !!!!!!

 
Sternkinder
28-10-2005, 18:43 
 
Bitte :D

Solltest du mal wieder ein problem haben kannst du dich auch einfach per ICQ (255-471-187) mit mir in Verbindung setzen.


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:33 Uhr.