Avatar billede henriktha Nybegynder
26. juni 2004 - 18:15 Der er 10 kommentarer og
1 løsning

Kan dette mysql skrives om til en txt fil ?

Jeg har en meget lille database som jeg egentlig hellere vil have over i en ; separeret tekst fil.

Nogen der kan hjælpe med at skrive følgende kode om til en tekstfil ???:

$product_query = mysql_query("select * from cd limit $show_from, $prside");
while($product_result = mysql_fetch_array($product_query)){

$antal = mysql_num_rows(mysql_query("select * from cd"));

$query = mysql_query("select * from cd where cdnr = '$ad'");
$result = mysql_fetch_array($query);

dataene i tekstfilen er: id;cdnr;navn;beskrivelse;pris
Avatar billede dennismp Nybegynder
26. juni 2004 - 18:36 #1
først skal læse datafilen ind:
$data = file('dinfil');

//$product_query = mysql_query("select * from cd limit $show_from, $prside");
//while($product_result = mysql_fetch_array($product_query)){

for($i=$show_from;$i<=$show_from+$prside;$i++) {
  $row = explode(';',&$data[$i]);

  print $row[0]; // 0==id, 1==cdnr, 2==navn .. osv
}

//$antal = mysql_num_rows(mysql_query("select * from cd"));
$antal = count($data);

$found = null;
foreach($data as $val) {
  $row = explode(';',$val);

  if($row[1] == $ad) {
    $found = $row;
  }
}

.. hvis $found == null, så kunne den ikke finde rækken.

.. men dette er meget mere besværligt og ineffektiv end at bruge databasen.
Avatar billede henriktha Nybegynder
26. juni 2004 - 21:24 #2
Ved godt det ik er så effektivt som en database, men det skal kun bruges til 32 cd'er og skal aldrig opdateres igen.

funktionen:

for($i=$show_from;$i<=$show_from+$prside;$i++) {
  $row = explode(';',&$data[$i]);

  print $row[0]; // 0==id, 1==cdnr, 2==navn .. osv
}

virker ikke, viser tomme resultater frem til $prside selvom der kun er 2 produkter i filen
Avatar billede dennismp Nybegynder
26. juni 2004 - 21:41 #3
prøv med:

for($i=$show_from;($i<=$show_from+$prside) AND $i < count($data);$i++) {
Avatar billede henriktha Nybegynder
27. juni 2004 - 00:57 #4
Jeg fandt ud af at nedenstående virker fint....

for($i=$show_from;$i<=($show_from+$prside)-1;$i++) {

men det er måske helt forkert ???
Avatar billede dennismp Nybegynder
27. juni 2004 - 01:00 #5
jeg tror stadig den vil løbe for langt. Men jeg tror vi kan splejse dem sammen og få en god løsning :)

prøv:
for($i=$show_from;($i<$show_from+$prside) AND $i <count($data);$i++) {
Avatar billede henriktha Nybegynder
27. juni 2004 - 01:02 #6
Hmm.... en kombination af din og min egen sidste linie, så virker det... med din viser den 1 mere end $prside er angivet til og med min viser den $prside selvom der ikke er så mange.... hvis du forstår min forklaring

Ellers virker det perfekt... Smider du et svar :-)
Avatar billede dennismp Nybegynder
27. juni 2004 - 01:24 #7
du fangede godt at jeg rettede "<=" til "<" ? i mit forrige indlæg?
Avatar billede henriktha Nybegynder
27. juni 2004 - 14:46 #8
Jeg brugte godt nok:

for($i=$show_from;($i<=($show_from+$prside)-1) AND $i < count($data);$i++) {

Det ser ud til at det virker fint både med 1 post eller 30 så man må formode at det er udmærket
Avatar billede dennismp Nybegynder
27. juni 2004 - 14:54 #9
Det er jo også det samme vi gør

hvis vi skal sammenligne:

Du gør:
1 til og med(<=) 10-1 (1,2,3,4,5,6,7,8,9)

jeg gør:
1 indtil(<) 10 (1,2,3,4,5,6,7,8,9)

:)
Avatar billede henriktha Nybegynder
27. juni 2004 - 15:00 #10
Ja det kan du have ret i.... retter den lige til din istedet... det er jo nok dig der ved hvad du gør der :-)

Takker for hjælpen !!
Avatar billede dennismp Nybegynder
27. juni 2004 - 15:03 #11
Det var så lidt :)

Om du gør på den ene eller anden måde er egentlig ligemeget - du skal mere tænke på hvad du syntes der er nemmest at læse (for dig som programmør - hvis du fx skal rette i koden om 6 mdr).. Men i dette tilfælde er det vist ikke det store problem :)
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