Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

MySQL Daten erfassen und in CSV eintragen

Frage Entwicklung PHP

Mitglied: datadexx

datadexx (Level 1) - Jetzt verbinden

14.05.2013 um 19:42 Uhr, 2374 Aufrufe, 6 Kommentare

Puhh, google ist durch...

Folgendes Problem.

Von einem Formular (checkboxen die angehakt werden) bekomme ich an ein weiteres PHP Script die ids von den Datensätzen übermittelt, sieht so aus:

<option name='pos[0]' value='1000'>text</option>
<option name='pos[1]' value='1001'>text</option>
<option name='pos[2]' value='1002'>text</option>
<option name='pos[3]' value='1003'>text</option>

In den empfangenden PHP Script muss jetzt für jede der ID's eine SQL Abfrage gestartet werden.

SELECT field1, field2, field3 FROM tabelle WHERE id=pos[]. Geht ja mit foreach.

Die so ermittelteten Daten jeder Abfrage müssen dann in eine csv Datei geschrieben werden.

Und hier liegt mein Problem, das bekomme ich nicht hin.

Quasi sollt das so ungefähr ablaufen:

1. Datensatz ermitteln -> eintragen in die CSV Datei
2. Datensatz ermitteln -> eintragen in die CSV Datei

usw.

Jemand ne IDEE???
Mitglied: datadexx
14.05.2013 um 20:17 Uhr
Mein bisheriger code. Ich erhalte aber immer nur den letzten Datensatz

foreach ($raexp as $__W)
{
$datensatz = StarteSQLQuery("

SELECT

field1,
field2, field3, field4 usw.

WHERE id=$__W


");

}

$max = 65534;
for ($i=0;$i <= $max;$i++)
{
$filename .= chr(rand(97,122));
}
$handle=fopen("pfad zur Datei".$filename.".csv", "wb");

while($row=mysql_fetch_array($datensatz))
{
$data="";
foreach ($row as $key => $value)
{
if (is_numeric($key))
{
$a=rawurlencode($value);
$a=str_replace("%0D%0A","",$a);
$a=rawurldecode($a);
$a=str_replace(";","-",$a);
$data.=$a.";";
}
}
fwrite($handle, $data."\n");
}
fclose($handle);
print("
Download der .csv Datei: <a href='pfad zur datei".$filename.".csv'> Download</a>");
Bitte warten ..
Mitglied: Arano
14.05.2013 um 22:39 Uhr
Hi datadexx

  1. Begrüßung
  2. Formatierungshilfen und
  3. Höflichkeit / Freundlichkeit

@Problem:
  1. Du hast da einen Gedankenfehler (Logikfehler). In der ersten Schleife wird das Ergebnis des Queries immer in die gleiche Variabel gespeichert... also ÜBERSCHREIBT jeder weiterer Schleifendurchlauf das Ergebnis des Vorherigen, so bleibt am Ende auch nur eins über - das Letzte.
  2. Du startest für jede ID eine eigene Abfrage an die Datenbank... kannst du die nicht in eine zusammenfassen !?
    01.
    SELECT ... 
    02.
      FROM ... 
    03.
     WHERE id=x OR id=x OR id=x
    Dann würdest du mit einer einzigen Abfrage eine Ergebnistabelle erhalten die alle gewünschten Datensätze enthält


Gute Nacht
~Arano
Bitte warten ..
Mitglied: datadexx
15.05.2013, aktualisiert um 07:34 Uhr
Guten Morgen!

Ja sorry, gestern war spät und der Kopf durch...

Es gibt doch meine ich auch sowas wie WHERE id IN...

Wie umgehe ich denn das Problem des überschreibens in der foreach Schleife, wenn die Sammelabfrage nicht klappen sollte?

Vielen Dank für Hilfe!

Greetz
Bitte warten ..
Mitglied: datadexx
15.05.2013, aktualisiert um 07:34 Uhr
Ich hab noch eine Frage wegen der Zusammenfassung der Datensätze.

Jeder Datensatz mit seiner id muss eine Zeile in der csv ergeben, da diese nachher maschinell weiterverarbeitet wird.

Wenn die Daten zusammengefasst werden, erhalte ich ja nur einen Datensatz mit allen Ergebnissen.

Nochmals Danke für Hilfe!

Greetz
Bitte warten ..
Mitglied: Arano
15.05.2013 um 08:20 Uhr
Moin moin.

Wenn die Daten zusammengefasst werden, erhalte ich ja nur einen Datensatz mit allen Ergebnissen.
Nein, nicht ganz !
Wenn du alles "auf einmal" abfragst (egal ob per WHERE IN() oder WHERE id= OR id= OR ...) erhältst du eine Ergebnistabelle mit __mehreren__ Datensätzen - jede Zeile der Tabelle entspricht dabei einem Datensatz.

Diese Ergebnistabelle kannst du dann in einer Schleife abarbeiten z.B.
01.
$ergbnistab = mysql_query( "SELECT ... WHERE ..." ); 
02.
while( $datansatz=mysql_fetch_assoc($ergebnistab) ) 
03.
04.
    // verarbeite daten 
05.
    echo $datensatz['id'].'<br>'
06.
    echo 'Sein Name war: '.$datensatz['vorname'].'<br>'
07.
    fwrite( $hndCVS, implode( ";", $datensatz ) ); 
08.
}

~Arano
Bitte warten ..
Mitglied: datadexx
24.09.2013, aktualisiert um 11:56 Uhr
Hallo Leute und guten Morgen,

leider konnte ich lange nicht an diesem Problem weiter arbeiten. Dank der tollen Hilfe von ~Arano bin ich hier zwar schon weit gekommen, stehe aber wieder vor einem Problem wo ich die Hilfe von euch MYSQL Profis benötige.

In folgender Abfrage benötige ich an der markierten Stelle alle Werte der INNER JOIN (SELECT...) Abfrage in einer Zelle. Die INNER JOIN Abfrage liefert (im Moment) 10 Ergebnisse zurück, wodurch beim Ergebnis 10 ROWS entstehen. Das kann ich leider so nicht gebrauchen, ich brauche die 10 Ergebnisse der Subquery von INNER JOIN in einer Zelle. Diese hab ich mit <- in der Abfrage markiert.

Wäre total super wenn da ein Profi von euch helfen könnte.

SELECT

a.ra_adr,
a.ra_srvcodes,
a.ra_kdnr,
a.bmyid,
trim(a.BFirma) AS EF,
f.dm1,
trim(a.BStr) as ESTR,
f.dm2,
trim(b.lkz) as ELKZ,
b.PLZ,
trim(b.Ort) as EORT,
f.dm3,
f.dm4,
f.dm5,
f.dm6,
f.dm7,
f.dm8,
f.dm9,
a.ra_kdnr,
trim(i.Firmenname) AS OFRMA,
f.dm10,
trim(i.Strasse) as OSTR,
f.dm11,
i.own_lkz,
i.PLZ as iplz,
trim(i.Ort) as iort,
a.amyid,
trim(a.AFirma) as LFRMA,
f.dm12,
trim(a.AStr) as LSTR,
f.dm13,
trim(c.lkz) as clkz,
c.PLZ as cplz,
trim(c.Ort) as cort,
a.ra_ndlsg,
a.ra_ndlsg as ra_spedkdnr,
a.ra_frankatur,
f.dm14,
f.dm15,
a.AANr,
f.dm16,
f.dm17,
f.dm18,
f.dm19,
f.dm20,
f.dm21,
f.dm22,
f.dm23,
f.dm24,
f.dm25,
f.dm26,
f.dm27,
f.dm28,
f.dm29,
a.ra_pos,
FORMAT(a.ta_anzahl,0) as anzahl,
d.raben_id,
a.ta_ware,
ROUND(a.ta_gewicht) as gewicht,
f.dm30,
f.dm31,
f.dm32,
f.dm33,
f.dm34,
FORMAT(a.ta_ldm,0) as Lademeter,
f.dm35,
f.dm36,
f.dm37,
CONCAT('00',(g.nve)) AS NVE <- AN dieser Stelle benötige ich alle 10 Ergebnisse der INNER JOIN Subquery.

FROM aauftrag AS a

LEFT JOIN part as d ON a.ta_ldmart = d.Lademittel
LEFT JOIN kundenstamm as b ON a.bmyid = b.MYID
LEFT JOIN kundenstamm as c ON a.amyid = c.MYID
LEFT JOIN firmendaten as i ON a.ra_kdnr = i.ra_kdnr
LEFT JOIN raben_dummys as f ON a.ra_kdnr = f.ra_kdnr

INNER JOIN (SELECT nve,aanr FROM raben_nve2ta) as g ON a.AANr = g.aanr

WHERE a.AANr IN (201305460)
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
VB for Applications
Bestimmte Daten aus eine CSV-Datei in eine Excel-Tabelle importieren (2)

Frage von MariaElena zum Thema VB for Applications ...

Webbrowser
gelöst Daten in entfernte Mysql DB schreiben (3)

Frage von nullacht15 zum Thema Webbrowser ...

Datenbanken
gelöst Import CSV in MYSQL (3)

Frage von schneerunzel zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...