Avatar billede leif Seniormester
02. december 2006 - 11:02 Der er 15 kommentarer og
1 løsning

Ændre i export

Hej,

Jeg har følgende:
while($row = mysql_fetch_array($sql)) {
    if($row['name'] == $last_name) {
        $file_sql .= ",";
        $file_sql .= $row['rid'];
    } else {
        if($last_name != "<notexist>") $file_sql .= "\n";
        $file_sql .= $row['name'];
        $file_sql .= " ";
        $file_sql .= $row['ename'];
        $file_sql .= ";";
        $file_sql .= $row['adresse'];
        $file_sql .= ";";
        $file_sql .= $row['adresse1'];
        $file_sql .= ";";
        $file_sql .= $row['postby'];
        $file_sql .= ";";
        $file_sql .= $row['rid'];
        $last_name = $row['name'];
    }
}

Nu er det imidlertid sådan at jeg ønsker at den første $row['rid'] står i en kolonne og resten af $row['rid'] i den næste kolonne ?

Jeg kan ikke lige gennemskue hvordan man kan gøre det.

/Leif
Avatar billede zynzz Praktikant
02. december 2006 - 11:07 #1
fx:

navn

email: email?
adresse: adresse?

osv.?
Avatar billede leif Seniormester
02. december 2006 - 12:06 #2
Outputtet kommer som:
Navn;Adresse;Adresse1;PostBy;RID
$name $ename;$adresse;$adresse1;$postby;$rid

Hele scriptet er:
$file_sql = "";
$last_name = "<notexist>";


        $file_sql .= "Navn";
        $file_sql .= ";";
        $file_sql .= "Adresse";
        $file_sql .= ";";
        $file_sql .= "Adresse1";
        $file_sql .= ";";
        $file_sql .= "PostBy";
        $file_sql .= ";";
        $file_sql .= "Stader\n";



while($row = mysql_fetch_array($sql)) {
    if($row['name'] == $last_name) {
        $file_sql .= ",";
        $file_sql .= $row['rid'];
    } else {
        if($last_name != "<notexist>") $file_sql .= "\n";
        $file_sql .= $row['name'];
        $file_sql .= " ";
        $file_sql .= $row['ename'];
        $file_sql .= ";";
        $file_sql .= $row['adresse'];
        $file_sql .= ";";
        $file_sql .= $row['adresse1'];
        $file_sql .= ";";
        $file_sql .= $row['postby'];
        $file_sql .= ";";
        $file_sql .= $row['rid'];
        $last_name = $row['name'];
    }
}
$file_sql .= "\n";
echo $file_sql;



Selvfølgelig med en fil oprettelse i bunden og SQL sætning i toppen
Avatar billede leif Seniormester
02. december 2006 - 12:08 #3
Men det er kun den sidste kolonne som skal ændres fra 1 til 2, så der kommer:
Navn;Adresse;Adresse1;PostBy;FirstRID;RestRID
$name $ename;$adresse;$adresse1;$postby;$FirstRid;$RestRID



RID består nemlig til sidst af fx:
10,20,24,65

Den skal så deles op til
FirstRID;RestRID
10;20,24,65
Avatar billede zynzz Praktikant
02. december 2006 - 15:21 #4
Back, jeg var lige på arbejde, nå men du siger at du gerne vil have alle dine id`s til at stå på en lang række ?, hvis nej: så er jeg lidt lost endnu... :)

$ids = array();
while($row = mysql_fetch_array($sql)) {
$ids[] = $row[rid];
}
echo implode(",", $ids); // udskriver fx. 1,2,3,4,5
Avatar billede leif Seniormester
02. december 2006 - 15:56 #5
Lige nu er mit output:
Navn;Adresse;Adresse1;PostBy;RID
Anders And;Andeby vej 9;;999 Andeby;10,20,24,65

Den skal være:
Navn;Adresse;Adresse1;PostBy;FirstRID;RestRID
Anders And;Andeby vej 9;;999 Andeby;10;20,24,65
Avatar billede zynzz Praktikant
02. december 2006 - 17:38 #6
Argh det er bare det ene ; det drejer sig om?
$nr = explode(",", $row[rid]);
$file_sql .= $nr['0'];
$file_sql .= ";";
unset($nr['0']);
$file_sql .= implode(",", $nr); // udskriver fx. 1,2,3,4,5
Avatar billede leif Seniormester
02. december 2006 - 18:10 #7
Og hvor skal den kode lige stå ? Sådan her:

$file_sql = "";
$last_name = "<notexist>";


        $file_sql .= "Navn";
        $file_sql .= ";";
        $file_sql .= "Adresse";
        $file_sql .= ";";
        $file_sql .= "Adresse1";
        $file_sql .= ";";
        $file_sql .= "PostBy";
        $file_sql .= ";";
        $file_sql .= "Stader\n";



while($row = mysql_fetch_array($sql)) {
    if($row['name'] == $last_name) {
$nr = explode(",", $row[rid]);
$file_sql .= $nr['0'];
$file_sql .= ";";
unset($nr['0']);
$file_sql .= implode(",", $nr); // udskriver fx. 1,2,3,4,5
    } else {
        if($last_name != "<notexist>") $file_sql .= "\n";
        $file_sql .= $row['name'];
        $file_sql .= " ";
        $file_sql .= $row['ename'];
        $file_sql .= ";";
        $file_sql .= $row['adresse'];
        $file_sql .= ";";
        $file_sql .= $row['adresse1'];
        $file_sql .= ";";
        $file_sql .= $row['postby'];
        $file_sql .= ";";
        $file_sql .= $row['rid'];
        $last_name = $row['name'];
    }
}
$file_sql .= "\n";
echo $file_sql;
Avatar billede zynzz Praktikant
02. december 2006 - 18:48 #8
Det skal stå istedet for $file_sql .= $row['rid']; hvor du outputer det...
Avatar billede leif Seniormester
02. december 2006 - 19:34 #9
Som du kan se i den originale kode så bliver der faktisk output med $row['rid'] 2 steder
Avatar billede leif Seniormester
12. december 2006 - 22:20 #10
Faktisk blev det nok lige den nemme løsning:
$file_sql = "";
$last_name = "<notexist>";


        $file_sql .= "Navn";
        $file_sql .= ";";
        $file_sql .= "Adresse";
        $file_sql .= ";";
        $file_sql .= "Adresse1";
        $file_sql .= ";";
        $file_sql .= "PostBy";
        $file_sql .= ";";
        $file_sql .= "Stader\n";



while($row = mysql_fetch_array($sql)) {
    if($row['name'] == $last_name) {
        $file_sql .= $row['rid'];
        $file_sql .= ";";        //Flyttet
    } else {
        if($last_name != "<notexist>") $file_sql .= "\n";
        $file_sql .= $row['name'];
        $file_sql .= " ";
        $file_sql .= $row['ename'];
        $file_sql .= ";";
        $file_sql .= $row['adresse'];
        $file_sql .= ";";
        $file_sql .= $row['adresse1'];
        $file_sql .= ";";
        $file_sql .= $row['postby'];
        $file_sql .= ";";
        $file_sql .= $row['rid'];
        $file_sql .= ";";        //Indsat
        $last_name = $row['name'];
    }
}
$file_sql .= "\n";
echo $file_sql;
Avatar billede leif Seniormester
12. december 2006 - 22:21 #11
zynzz -> Du ledte mig på en løsning, så smid et svar
Avatar billede zynzz Praktikant
12. december 2006 - 22:27 #12
hmm, jeg kan ikke se mine forslag der :O
Avatar billede leif Seniormester
12. december 2006 - 22:29 #13
Nej, da jeg ikke kunne få det til at virke ! :) Men du ledte mig på en anden brugbar løsning
Avatar billede zynzz Praktikant
12. december 2006 - 22:30 #14
Nå okay.... :) men bare du kan få det til at virke, det er længe siden, så kunne ikke lige huske hvad det handlede om... :)
Avatar billede leif Seniormester
12. december 2006 - 22:32 #15
Umiddelbart er brugeren tilfreds (Det er vel det vigtigste)
Avatar billede zynzz Praktikant
12. december 2006 - 22:33 #16
heh ^ det er bare iorden leif :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester