Also Warnings können eigentlich ignoriert werden, das sind nur Hinweise.
Wenn du allen mysqli_query Funktionen noch als zweiten Parameter MYSQLI_STORE_RESULT übergibst, gibt es keine Warnings mehr - Außer evt die letzte Invalid argument supplied for foreach()
Hat der Export denn funktioniert wie gewünscht?
EDITIn Zeile 607 wird eine Variable auf NULL gesetzt, richtig wäre aber = array();
eine Export-Datei wird angelegt - allerdings ist die mit 163 Byte bis auf die Tabellenüberschriften “ID~Titel~Beschreibung~Google Produktkategorie~Produkttyp~Link~Bildlink~Zustand~Verfügbarkeit~Preis~Marke~GTIN~MPN~Versand~Grundpreis Maß~Grundpreis Einheitsmaß” leer
die Befehle “$rs = mysqli_query($query);” in den Zeilen 38, 463, 617, 723, 743 und 801 erzeugen jeweils " Warning : mysqli_query() expects at least 2 parameters, 1 given"
warum soll die Zeile 607 ($parentProducts = null;) geändert werden - die wird doch nicht bemängelt?
Die Warnung sollte man nicht ignorieren!
Der erste Parameter muss ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt sein → da nicht vorhanden liefern die queries auch nichts
Zeile 607 weil in Zeile 92 wird ein Array erwartet. Die Funktion gibt aber NULL zurück wenn kein Vaterartikel drin ist. Das erzeugt den Fehler:
Warning : Invalid argument supplied for foreach() in /xxx/source/modules/marm/csvexporter/core/marmCsvExporter.php on line 92
expects at least 2 parameters, 1 given
Das bedeutet nur dass der zweite Parameter MYSQLI_STORE_RESULT fehlt.
Du kannst ja mal mit print_r() ausgeben was in $rs jeweils drin steht und ob das noch brauchbar ist. Mysqli ist die objektorientierte Variante von Mysql und gibt evt. ein Objekt statt einem Array zurück. Mit (array) $Object kann ein Object wieder in ein Array umgewandelt werden.
Ich rate dir das Script mit einer htaccess zu schützen, weil der Code schon etwas in die Jahre gekommen ist.
wenn ich das Beispiel von Sioweb nutzen bekomme ich statt der alten Fehlermeldung (mysqli_query() expects at least 2 parameters) jetzt: mysqli_query() expects parameter 1 to be mysqli
wenn er erste Parameter muss ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt sein muss: wie realisiere ich das?
statt “mysqli_query(“SET NAMES ‘utf8’”);” bzw. “$rs = mysqli_query($query);” muss ich dann was reinschreiben?
das habe ich jetzt alles so umgesetzt - die Fehlermeldungen sind weg - es kommt nur noch auf dem Bildschirm"Export gestartet! Export beendet!". soweit - so gut
es wird auch eine Export-Datei angelegt - allerdings ist die mit 163 Byte bis auf die Tabellenüberschriften “ID~Titel~Beschreibung~Google Produktkategorie~Produkttyp~Link~Bildlink~Zustand~Verfügbarkeit~Preis~Marke~GTIN~MPN~Versand~Grundpreis Maß~Grundpreis Einheitsmaß” leer
weiß jemand woher der marmGoogleExporter.php die Daten für das Feld “Google Produktkategorie/google_categoryPath” holt? Bei mir bleibt nach Ausführung der PHP-Datei diese Spalte leider leer…