ich dank dir Synonym
aber wenn ich das jetzt in ein LEFT JOIN ändere hab ich ja noch die Bedinung ON a2.uid = a1.typ die ja nicht erfüllt werden kann, was mach ich hier? grrr
tx_mygbs_seriennummer a1 LEFT JOIN tx_mygbs_gereat a2 ON a2.uid = a1.typ
ich dank dir Synonym
aber wenn ich das jetzt in ein LEFT JOIN ändere hab ich ja noch die Bedinung ON a2.uid = a1.typ die ja nicht erfüllt werden kann, was mach ich hier? grrr
tx_mygbs_seriennummer a1 LEFT JOIN tx_mygbs_gereat a2 ON a2.uid = a1.typ
Ihr habt mir ja hier schon ein paar Mal gut geholfen – hab mal wieder ein Problem:
Ich hab zwei Tabellen
tx_mygbs_seriennummer
tx_mygbs_gereat
Der Benutzer kann also eine Seriennummer eingeben und es wird der passende Gerätetyp aus der Tabelle tx_mygbs_gereat hinzugefügt und dann angezeigt
Ich hab das über ein JOIN gemacht:
$res=$GLOBALS['TYPO3_DB']->exec_SELECTquery(
'a1.uid, a1.crdate, a1.typ, a1.benutzer, a1.seriennummer, a1.nick, a1.license, a1.code, a2.title',
'tx_mygbs_seriennummer a1 JOIN tx_mygbs_gereat a2 ON a2.uid = a1.typ',
'a1.hidden=0 and a1.deleted=0 and a2.hidden=0 and a2.deleted=0 and a1.benutzer = '.$user, #where
$groupBy='',
$orderBy= 'typ',
$limit='');
funktioniert auch aber da es jetzt anscheinend ein paar Gerätetypen gibt die nicht in der tx_mygbs_gereat aufgeführt sind werden diesen Seriennummern nicht angezeigt. Kann ich das irgendwie umgehen?
Danke
danke super genau so funktioniert es - danke danke
ZitatJetzt dämmert mir was..... Dein Dump von $haus sind mehrere Einzelwerte... Kann es sein, dass Dein Code nur ein kleiner Teil ist und darum nochmals eine andere Schleife läuft? Würde die vielen Einzelwerte erklären - normalerweise ist es nur einer. Würde auch erklären, dass die $row verschiedene Werte wären, nämlich bei jedem Durchlauf ein anderer.
Wenn dem so ist, dann poste mal ein wenig mehr von dem Code, zumindest alle beteiligten Schleifen. Header senden in Schleifen ist nicht möglich, zumal Du die Daten danach mit echo ja ausgibst. Nach der Datenausgabe kann aber kein neuer Header folgen.
Würde auch erklären, warum das mit einfach "echo" funktioniert, denn da echot er die Werte ja einfach hintereinander.
Auch würde es erklären, warum das txt leer ist. Der erste Dump (string(0) "") ist ja leer und der wird ausgegeben. Danach (wenn eine weitere Schleife drumrum) erfolgt kein neuer Header. Allerdings würde da das exit; dann auch keinen Sinn ergeben.
oh sorry das kann sein - ist ein langes Script - ich hoff das hilft
$res=$GLOBALS['TYPO3_DB']->exec_SELECTquery(
'a1.uid, a1.crdate, a1.typ, a1.benutzer, a1.seriennummer, a1.nick, a1.license, a1.code, a2.title',
'tx_mygbs_seriennummer a1 JOIN tx_mygbs_gereat a2 ON a2.uid = a1.typ',
'a1.hidden=0 and a1.deleted=0 and a2.hidden=0 and a2.deleted=0 and a1.benutzer = '.$user, #where
$groupBy='',
$orderBy= 'typ',
$limit='');
$i = 1;
while($row=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
if(t3lib_div::_GP('absenden')=='Spracherkennung') {
$test = t3lib_div::_GP('check');
if(count($test) > 0){
$haus = '';
for($i=0 ; $i < count($test); $i++){
if ($row['uid']==$test[$i]) {
$haus.=$row['code'].' <br>';
}
}
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=\"licence.txt\"");
header("Content-Length: ". strlen($haus));
echo $haus;
exit();
}
}
//hier kommen dann noch mehr Marker
}
var_dump($test); hab ich ganz vergessen, sorry - bei zwei ausgewählten Feldern bekomm ich das
array(2) { [0]=> string(3) "350" [1]=> string(3) "377" }
array(2) { [0]=> string(3) "350" [1]=> string(3) "377" }
array(2) { [0]=> string(3) "350" [1]=> string(3) "377" }
array(2) { [0]=> string(3) "350" [1]=> string(3) "377" }
array(2) { [0]=> string(3) "350" [1]=> string(3) "377" }
array(2) { [0]=> string(3) "350" [1]=> string(3) "377" }
array(2) { [0]=> string(3) "350" [1]=> string(3) "377" }
array(2) { [0]=> string(3) "350" [1]=> string(3) "377" }
array(2) { [0]=> string(3) "350" [1]=> string(3) "377" }
array(2) { [0]=> string(3) "350" [1]=> string(3) "377" }
array(2) { [0]=> string(3) "350" [1]=> string(3) "377" }
array(2) { [0]=> string(3) "350" [1]=> string(3) "377" }
array(2) { [0]=> string(3) "350" [1]=> string(3) "377" }
array(2) { [0]=> string(3) "350" [1]=> string(3) "377" }
array(2) { [0]=> string(3) "350" [1]=> string(3) "377" }
array(2) { [0]=> string(3) "350" [1]=> string(3) "377" }
array(2) { [0]=> string(3) "350" [1]=> string(3) "377" }
array(2) { [0]=> string(3) "350" [1]=> string(3) "377" }
array(2) { [0]=> string(3) "350" [1]=> string(3) "377" }
also var_dump($haus); gibts das aus:
string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" 6Q05H-EUNY1-9N0VH-07830-EKB4G string(30) "6Q05H-EUNY1-9N0VH-07830-EKB4G " string(0) "" string(0) "" string(0) "" VTCN4-LD71O-HROG5-OFH30-XOV4G string(30) "VTCN4-LD71O-HROG5-OFH30-XOV4G " string(0) "" string(0) ""
und var_dump($row);
gibt mir die Daten der ganzen DB aus - das passt hier nicht alles rein
aber was ich nicht versteh warum passt das echo Ergebnis - und wenn ich das ganze in die txt schreiben möchte funktioniert es nicht mehr?
genau ja
In der Praxis ist es dann so das der User verschiedene Codes anwählen kann und später bekommt er eine txt Datei mit allen Codes die er ausgewählt hat. $test sind die also die ausgewählten Codes
Also Variante einfaches echo funktioniert - Variante zwei Variable in txt schreiben funktioniert nicht das txt file ist einfach leer
Hallo,
vielleicht kann mir einer helfen
so funktioniert alles:
$test = t3lib_div::_GP('check');
if(count($test) > 0){
$haus = '';
for($i=0 ; $i < count($test); $i++){
if ($row['uid']==$test[$i]) {
$haus.=$row['code'].' <br>';
}
}
echo $haus;
}
Alles anzeigen
möchte ich das Ganze jetzt in eine txt Datei ausgeben:
$test = t3lib_div::_GP('check');
if(count($test) > 0){
$haus = '';
for($i=0 ; $i < count($test); $i++){
if ($row['uid']==$test[$i]) {
$haus.=$row['code'].' <br>';
}
}
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=\"licence.txt\"");
header("Content-Length: ". strlen($haus));
echo $haus;
exit();
}
Alles anzeigen
schreib ich zum Beispiel ind Variable $haus='test'; dann wird mir das ohne Probleme in der txt Datei ausgegeben.