Avatar billede bigtime Nybegynder
17. januar 2012 - 20:04 Der er 22 kommentarer og
1 løsning

asp til php

hvordan skriver jeg den her om til php

<%
sql2 = "select * from kat"
set record2 = rs.execute(sql2)
do until record2.eof
%>     
<option <%
  if record("kat") = record2("id") then
  response.write "Selected"
  end if
  %>
  value="<%= record2("id")%>"><%if record2("b") <> 0 then response.write " - "%><%if record2("c") <> 0 then response.write " - "%><%= record2("navn") %></option>
<%
record2.movenext
loop
set record2 = nothing
%>
                  </select>
Avatar billede olebole Juniormester
17. januar 2012 - 20:33 #1
<ole>

Prøv noget i stil med:

<?php
$sql2 = "select * from kat";
$res = mysql_query($sql2) or die (mysql_error());
$a = array();
while ($row=mysql_fetch_assoc($res)) {
    $sel = record("kat")==$row['id'] ? ' slected ' : ' ';
    $txt = '';
    if ($row['b']!=0) $txt .= ' - ';
    if ($row['c']!=0) $txt .= ' - ';
    $txt .= $row['navn'];
    $a = '<option'.$sel.'value="'.$row['id'].'">'.$txt.'</option>';
}
echo '<select>'.implode('', $a).'</select>';
?>

/mvh
</bole>
Avatar billede olebole Juniormester
17. januar 2012 - 20:35 #2
- men jeg ved ikke, hvor record("kat") kommer fra, så det må du selv lige rette til  =)
Avatar billede olebole Juniormester
17. januar 2012 - 20:37 #3
Hmmm ... det skal muligvis være:

$sel = $row['kat']==$row['id'] ? ' slected ' : ' ';

- men det ved du sikkert selv bedst. Ellers må du lige sige til  =)
Avatar billede olebole Juniormester
17. januar 2012 - 20:38 #4
- og så skal ' selected ' naturligvis sdavøs rigtigt  *D
Avatar billede bigtime Nybegynder
17. januar 2012 - 20:45 #5
kat er en tabel i databasen, det er bare en forkortelse af kategori
Avatar billede olebole Juniormester
17. januar 2012 - 20:58 #6
Njaahhr ... er det så ikke et felt i databasen? Hvor kommer det fra i ASP-koden? Det er ikke defineret noget sted
Avatar billede bigtime Nybegynder
17. januar 2012 - 21:04 #7
i databsen er der en tabel der hedder kat og i den er der nogen kolunder der hedder id,a,b,c,navn
Avatar billede bigtime Nybegynder
17. januar 2012 - 21:06 #8
fik lige set jeg manglede den her <select size="1" name="Kategori"> så det så sådan her ud
<select size="1" name="Kategori">
<%
sql2 = "select * from kat"
set record2 = rs.execute(sql2)
do until record2.eof
%>   
<option <%
  if record("kat") = record2("id") then
  response.write "Selected"
  end if
  %>
  value="<%= record2("id")%>"><%if record2("b") <> 0 then response.write " - "%><%if record2("c") <> 0 then response.write " - "%><%= record2("navn") %></option>
<%
record2.movenext
loop
set record2 = nothing
%>
                  </select>
Avatar billede olebole Juniormester
17. januar 2012 - 21:12 #9
Læs, hvad du skriver  *o)

Jeg kan se, hvor variablen record2 kommer fra, men hvor kommer record i record("kat") fra?
Avatar billede olebole Juniormester
17. januar 2012 - 21:15 #10
- og du retter bare min echo, så select start tagget bliver rigtigt:

echo '<select size="1" name="kategori">'.implode('', $a).'</select>';
Avatar billede bigtime Nybegynder
17. januar 2012 - 21:20 #11
record("kat") kommer fra den her
    sql = "select * from sider where id = " & request.querystring("id") & " AND refwebmaster = " & session("webID")
    set record = rs.execute(sql)
Avatar billede olebole Juniormester
17. januar 2012 - 21:31 #12
Okay, men den skal du jo så kringle på samme måde, så du får en 'kat' at sammenligne med i IF-sætningen  =)
Avatar billede bigtime Nybegynder
19. januar 2012 - 18:04 #13
den kommer med følgende fejl
Warning: implode() [function.implode]: Invalid arguments
altså den her linje
echo '<select size="1" name="kategori">'.implode('', $a).'</select>';
Avatar billede olebole Juniormester
19. januar 2012 - 18:56 #14
Så må du lave en fejl, for det betyder formodentlig, at $a ikke er et array. Må jeg se hele den aktuelle kode (selvfølgelig uden DB-connect info)?
Avatar billede olebole Juniormester
19. januar 2012 - 18:59 #15
NEJ ...!!! Det er zq da mig, der laver fejl!  :D

Indsæt mine glemte square brackets i denne linje:

$a[] = '<option'.$sel.'value="'.$row['id'].'">'.$txt.'</option>';

Doooooh ... sorry!  =)
Avatar billede olebole Juniormester
19. januar 2012 - 19:02 #16
Uden de brackets vil $a ikke være et array - men en streng, som kun indeholder den sidste option. Så virker implode naturligvis ikke  *o)
Avatar billede bigtime Nybegynder
19. januar 2012 - 19:06 #17
tak endnu en gang.
ved ikke om jeg tør spørge dig om mere :D men hvad betyder det her

Dim blnAddOnlineCounter
Dim strOnlineCounterID

blnAddOnlineCounter = False
strOnlineCounterID = ""


response.buffer = true
server.scripttimeout = 30
session.lcid = 1030
Avatar billede olebole Juniormester
19. januar 2012 - 19:34 #18
Som du ved, har jeg ikke modtaget point det seneste år. Jeg er her for sjov og for at hjælpe. Du er god til at lytte og lære - så du spørger bare  =)

Her erklæres to variabler:

Dim blnAddOnlineCounter
Dim strOnlineCounterID

- og de sættes efterfølgende til henholdsvis true og en tom streng.

Herefter sættes Response.buffer til true. Det betyder, at scriptets output gemmes i en 'buffer' til scriptet er kørt helt færdig. Først da udskrives bufferen til siden (med mindre andre buffer funktioner bliver kaldt).

PHP's pendant til dette er ob-funktionerne (Output Buffering) f.eks. ob_start.

Server.scripttimeout forlænger serverens timeout - dvs. den tid serveren maksimalt tillader scripts at køre.

PHP's pendant til dette er set_time_limit.

Session.lcid er vist noget med lokal formatering af data ... tal, tider, valuta, o.lign. Jeg er ikke ASP ekspert (og det er længe siden, jeg har skrevet noget), så jeg er ikke helt sikker  =)
Avatar billede olebole Juniormester
19. januar 2012 - 19:37 #19
PS: Da output buffering gemmer outputtet i hukommelsen, bør det kun bruges, når det er strengt nødvendigt. Det er det faktisk yderst sjældent
Avatar billede bigtime Nybegynder
19. januar 2012 - 19:47 #20
okay men jeg er ved at lave en online counder til statistik for andre hjemmesider eller jeg prøver at lave en :D hvor brugeren sætter noget kode ind på deres side.
kan man så ikke bruge ob_end_flush i slutningen af scripet for at ikke belaste serveren alt for meget, eller er jeg helt ude i hampen med det
Avatar billede olebole Juniormester
19. januar 2012 - 20:42 #21
Er det nødvendigt at bruge buffering? Generelt kan man sige, at jo mere man gemmer i bufferen, og jo længere det ligger der, jo mere belaster det serverens hukommelse.
Avatar billede bigtime Nybegynder
19. januar 2012 - 21:21 #22
hmm ja du har fat i noget der,
skal lige se om det er nødvendigt, der er dog noget der er nødvendig tror jeg,
skal lige have læst asp scripet ordenligt igennem :D
Avatar billede bigtime Nybegynder
22. januar 2012 - 00:34 #23
lukker lige den her tråd pt, jeg lader den lige ligge lidt, men super mange tak for hjælpen,
tråden kommer måske igen
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