MSSQL-Ausgabe exportieren in csv

Das glaub ich jetzt nicht. Debuggen ist wohl wirklich nicht schwer.
1. Basiswissen
PHP:
if (ANWEISUNG)
{

}
elseif (ANWEISUNG)
{

}
else  //<- hier natürlich keine Anweisung, da Gegeteil von obenigen voraussetzungen
Soviel zu deiner unerwarteten Klammer. *Kopfschüttel*
2. Dein Problem:
Du brauchst "elseif". Ansonsten schaut das ganze ja schon recht gut, fein und richtig aus.
 
Danke, aber irgendwie will es nicht so recht.

Hab es jetzt erst mit empty() versucht, jetzt mit boolean:

PHP:
// das andere ist gleich geblieben wie im letzten post

elseif (isset($_POST['make_csv']) && $_POST['dateiname'] == FALSE) {
  echo "<div class=\"export\"><strong>Bitte geben Sie einen Dateinamen an.</strong></div>";
}
else {
  "<div class=\"export\"><strong>Fehler beim Anlegen der Datei.</strong></div>";
}

Auch wenn kein Dateiname angegeben ist, wird die Datei erzeugt. Also nicht so wie ich es möchte.
ABer jetzt stimmt es doch eigentlich, oder?
 
PHP:
!isset($_POST['dateiname'])
statt
PHP:
$_POST['dateiname'] == FALSE
und lass bei
PHP:
echo "<td class=\"content1\">Dateiname: (ohne Dateiendung) <input class=\"eingabe\" size=\"20\" type=\"text\" name=\"dateiname\" value=\"$exportdatei\"></td>";
sicherheitshalber mal das "$exportdatei" in "value" weg.
 
Zuletzt bearbeitet:
Mit !isset hatte ich es auch schon versucht - vergeblich. Auch die leere "value" ändert daran nichts.
Irgendwie finde ich das merkwürdig.
 
Jetzt seh ich´s erst. Was soll den bitte
PHP:
empty($_POST['dateiname']) == ""
Mach mal einfach nur
PHP:
empty($_POST['dateiname'])
Wenn es dann immer noch nicht geht, gib vor der if-Verzweigung folgendes aus:
PHP:
echo "empty: " . empty($_POST['dateiname'])  . "\n";
echo "isset: " . isset($_POST['dateiname']) . "\n";
echo "POST: " . $_POST['dateiname'] "\n";
und poste hier das Ergebnis.
 
Hab das zwar selber noch nicht ausprobiert, dürft aber ziemlich sicher klappen. Einfach 1:1 übernehmen und nach den obigen Ausgaben einfügen:
PHP:
foreach (count_chars($_POST['dateiname'], 1) as $i => $val) 
{
   echo "There were $val instance(s) of \"" , int($i) , "\" in the string.\n";
}
 
Wenn ich Dich richtig verstanden habe, dann kommt der o.g. Codeschnipsel unter das hier:

PHP:
echo "empty: " . empty($_POST['dateiname'])  . "\n";
echo "isset: " . isset($_POST['dateiname']) . "\n";
echo "POST: " . $_POST['dateiname'] . "\n";

Wird aber nicht mehr als vorher ausgegeben, oder hab ich was falsch gemacht?
 
Nein, das zeigt nur, dass der String leer ist. Komplett leer. Wie auch empty() schon richtig sagt. Warum deine if elseif else Abfrage nicht klappt, weiß ich jetzt ehrlichgesagt auch nicht. Probier rum, oder setze einfach den value vom input-Feld auf den vordef. Wert "leer" (also tatsächlich der String "leer") und frag dann einfach ab, ob $_POST['dateiname'] == "leer" ist oder so. Vielleicht klappts dann. Darf halt keiner seine Datei "leer.csv" nennen wollen. ;)
 
Hm, wenn ich dem input-Feld bzw. dessen "value" den Wert "leer" gebe, dann steht im Feld selber ja leer, und die Datei heisst ja auch leer.csv. Hab ich dich jetzt falsch verstanden?
 
Zurück