HTML Seiten automatisch generieren

Ich habs jetzt nochmal ausprobiert... Jetzt werden nur die nächsten 10 Links angezeigt, nicht die 10 letzten ;)
Ich benutze diesen Code:

PHP:
<ul>';
    while($row2 = mysql_fetch_array($query2)){
$inhaltderhtml .=  '<li>'.$row2["FIELD13"].'</li>';
}

$limit2 = $i+1;

$query3 = query("SELECT `FIELD13` FROM `daten1` LIMIT $limit2, 10");

while($row3 = mysql_fetch_array($query3)){
$inhaltderhtml .=  '<li>'.$row3["FIELD13"].'</li>';
}

$inhaltderhtml .=  '</ul>

Ich habe diesen Code gestern leicht geändert... ist da vielleicht was falsch? Wenn die Links sich im FIELD13 befinden, muss im Code insgesamt 3 Mal Field13 vorkommen, ist das so korrekt?

Wenn ich ein anderes Field benutze, eines worin keine Links drinnen sind, dann klappt dein Script wunderbar.
Was für einen Sinn hat es die DB zu exportieren... Da sind mittlerweile Tausende Zeilen und ca 40 Spalten... Also sehr gross.
 
Was für einen Sinn hat es die DB zu exportieren... Da sind mittlerweile Tausende Zeilen und ca 40 Spalten... Also sehr gross.

Du brauchst nur die Struktur zu zeigen (Exportieren, bei Daten Häkchen weg, als Sql)...

Bei meinem (funktionierenden) Test sieht es so aus:

Code:
CREATE TABLE IF NOT EXISTS `zxpd_201004130456_272_15133797` (
  `FIELD1` int(11) NOT NULL AUTO_INCREMENT,
  `FIELD2` text NOT NULL,
  `FIELD3` text NOT NULL,
  `FIELD4` text NOT NULL,
  PRIMARY KEY (`FIELD1`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=103 ;
 
Ok, hier:

-- phpMyAdmin SQL Dump
-- version 3.2.4
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Erstellungszeit: 20. April 2010 um 14:25
-- Server Version: 5.1.41
-- PHP-Version: 5.3.1

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Datenbank: `shopdaten`
--

-- --------------------------------------------------------

--
-- Tabellenstruktur für Tabelle `daten1`
--

CREATE TABLE IF NOT EXISTS `daten1` (
`FIELD1` char(34) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD2` char(11) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD3` char(23) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD4` char(69) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD5` char(17) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD6` char(23) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD7` char(14) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD8` char(15) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD9` char(13) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD10` text COLLATE utf8_unicode_ci NOT NULL,
`FIELD11` text COLLATE utf8_unicode_ci NOT NULL,
`FIELD12` text COLLATE utf8_unicode_ci NOT NULL,
`FIELD13` text COLLATE utf8_unicode_ci NOT NULL,
`FIELD14` text COLLATE utf8_unicode_ci NOT NULL,
`FIELD15` text COLLATE utf8_unicode_ci NOT NULL,
`FIELD16` text COLLATE utf8_unicode_ci NOT NULL,
`FIELD17` text COLLATE utf8_unicode_ci NOT NULL,
`FIELD18` char(220) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD19` text COLLATE utf8_unicode_ci NOT NULL,
`FIELD20` char(245) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD21` char(125) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD22` char(113) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD23` char(116) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD24` char(116) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD25` char(129) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD26` char(141) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD27` char(167) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD28` char(113) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD29` char(117) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD30` char(214) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD31` char(209) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD32` char(178) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD33` char(179) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD34` char(189) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`FIELD35` char(206) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`RECNO` int(10) unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`RECNO`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1224 ;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Vielleicht hilft das weiter: Ich habe meine CSV Datei auf http://www.sqldbu.com/ger/sections/tips/mysqlimport.html in txt umgewandelt. Dann habe ich die txt Datei in meine DB importiert. Einen anderen Weg kenne ich nicht eine CSV Datei in eine DB zu importieren...
 
Also... ich hab den Code jetzt so angepasst:

PHP:
<?php

$feldfuerlinks = "FIELD13";
$tabellenname = "daten1";

/* for($i = 0; $i != 101; $i++){

$addquery .= "('Produkt $i','Preis von P$i','<a href=\"\">P $i</a>'),";


}

$addquery = substr($addquery, 0, strlen($addquery)-1);


$restquery = 'INSERT INTO  `shopdaten`.`'.$tabellenname.'` (
`FIELD2` ,
`FIELD3` ,
`'.$feldfuerlinks.'`
)
VALUES'.$addquery.';';


echo "<pre>";
echo htmlentities($restquery);
echo "</pre>";
die(); */

function query($q){
  
  $res = mysql_query($q);
  
  if($res){
    return $res;
  }else{
    echo "Datenbankfehler. SQL: <pre>".$q."</pre><br><br>Fehler: <pre>".mysql_error()."</pre>";
    die();
  }
  
}

$startzeit = microtime(true);
echo "<h1>Beginne</h1>";

$conn = mysql_connect("localhost", "root", "");
mysql_select_db("shopdaten");

echo "Connencting erfolgreich.<br>";

$numRows = 1;
$i = 0;

while($numRows != 0){

$query = query("SELECT * FROM `$tabellenname` LIMIT $i, 1");
$rows = mysql_fetch_array($query);

$numRows = mysql_num_rows($query);


if($i <= 10) {$limit = 0; }else {$limit = $i-10;}
if($i <= 10) {$anzahl = $i; }else {$anzahl = 10;}


$query2 = query("SELECT `$feldfuerlinks` FROM `$tabellenname` LIMIT $limit, $anzahl");

$inhaltderhtml =  '<ul>';

while($row2 = mysql_fetch_array($query2)){
$inhaltderhtml .=  '<li>'.$row2[$feldfuerlinks].'</li>';
}

$inhaltderhtml .=  '</ul>

<table width="800" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <th scope="row">'.$rows["Field1"].'</th>
    <td>'.$rows["FIELD2"].'</td>
    <td>'.$rows["FIELD3"].'</td>
    <td>'.$rows[$feldfuerlinks].'</td>
  </tr>
</table>'; 

$limit2 = $i+1;

$query3 = query("SELECT `$feldfuerlinks` FROM `$tabellenname` LIMIT $limit2, 10");

$inhaltderhtml .=  '<ul>';

while($row3 = mysql_fetch_array($query3)){
$inhaltderhtml .=  '<li>'.$row3[$feldfuerlinks].'</li>';
}

$inhaltderhtml .=  '</ul>';

var_dump(htmlentities($inhaltderhtml));






file_put_contents("testdateien/html_".$i.".html", $inhaltderhtml);
echo "<br><br>Datei html_".$i.".html erzeugt.";
echo "<hr>";
$i++;
}

$renderzeit = microtime(true) - $startzeit;

echo "<h1>Fertig</h1>";
echo "Dauer: ".$renderzeit."s";

?>

Jetzt kann man ganz oben Datenbanktabelle und Feld für die Links definieren. Im auskommentierten Bereich habe ich mir Testdaten generiert. Das Resultat sieht folgendermaßen aus:

http://pastebin.com/SaJzd6PF
 
Er hat mir geschrieben, dass das Script jetzt funktioniert und möchte gerne noch eine andere Arbeit von mir erledigt haben :)

(Nur um das mal hier abzuhaken - das hier keiner meint das hätte nicht funktioniert und wäre nicht erledigt :))
 
Zurück