Avatar billede runner19 Nybegynder
16. januar 2004 - 23:54 Der er 44 kommentarer og
2 løsninger

While - muligt at fjerne et tegn?

Hejsa!

Jeg sidder og rodder med et reklame system og det fungerer også efter hensigten. Mit eneste problem er, at mellem hvert link som udskrives (se nedenfor) har jeg indsat " - ".
Er det muligt at fjerne det ved sidste link, som udskrives (og limit er 4 som det fremgår)??

Som det udskrives nu, vil det være eksempelvis:
link1 - link3 - link 2 -
Stregen til sidst skal væk, argh! :)

$query = mysql_query("select * from database order by rand() limit 0,4");

while($row = mysql_fetch_array($query)) {
  echo "<a href=\"http://www.webside.webside/taeller.php?affiliates&id=$row[id]\" target=\"_blank\">$row[titel]</a> - ";
}

Venlig hilsen
Runner
Avatar billede arne_v Ekspert
17. januar 2004 - 00:02 #1
Jeg er ikke PHP kyndig men logikken må være:

første = true
while(more rows) {
  if(første)
      første = false
  else
      skriv " - "
  skriv link
}
Avatar billede runner19 Nybegynder
17. januar 2004 - 00:06 #2
Ja, men umiddelbart kan jeg ikke lige omsætte det udfra mit eksempel...
Er det muligt, at du eller andre kan lave en løsning udfra mit script?
Avatar billede Slettet bruger
17. januar 2004 - 00:45 #3
$navbar='';

while($row = mysql_fetch_array($query)) {
  $navbar.="<a href=\"http://www.webside.webside/taeller.php?affiliates&id=$row[id]\" target=\"_blank\">$row[titel]</a> - ";
}
$navbar=substr($navbar,0,-3);
Avatar billede Slettet bruger
17. januar 2004 - 00:48 #4
Og det skulle egentlig være et svar.
Avatar billede runner19 Nybegynder
17. januar 2004 - 10:30 #5
Jeg har prøvet at indsætte det præcist som dit, men stadig uden synderligt resultat.
Det ser stadig sådan ud: link1 - link3 - link 2 - link4 -
Avatar billede runner19 Nybegynder
17. januar 2004 - 11:18 #6
Nogen bud på hvordan man får fjernet "-" ved det sidste link?? Plz svar hurtigt
Avatar billede sbm Nybegynder
17. januar 2004 - 11:27 #7
$query = mysql_query("select * from database order by rand() limit 0,4");


$firstlink = true;
while($row = mysql_fetch_array($query)) {
    if (!firstlink) {
        echo " - ";
    }
    echo "<a href=\"http://www.webside.webside/taeller.php?affiliates&id=$row[id]\" target=\"_blank\">$row[titel]</a> - ";
}
Avatar billede sbm Nybegynder
17. januar 2004 - 11:28 #8
Upsada.... Den retter vi lige igen.... :-)

$query = mysql_query("select * from database order by rand() limit 0,4");


$firstlink = true;
while($row = mysql_fetch_array($query)) {
    if (!firstlink) {
        echo " - ";
        $firstlink = false;
    }
    echo "<a href=\"http://www.webside.webside/taeller.php?affiliates&id=$row[id]\" target=\"_blank\">$row[titel]</a> - ";
}
Avatar billede sbm Nybegynder
17. januar 2004 - 11:28 #9
Æv. Og en gang til. Vi mangler jo lige at fjerne din egen - i den sidste echo linie:

$query = mysql_query("select * from database order by rand() limit 0,4");


$firstlink = true;
while($row = mysql_fetch_array($query)) {
    if (!firstlink) {
        echo " - ";
    }
    echo "<a href=\"http://www.webside.webside/taeller.php?affiliates&id=$row[id]\" target=\"_blank\">$row[titel]</a>";
}
Avatar billede sbm Nybegynder
17. januar 2004 - 11:30 #10
Og det var et svar. Du burde kunne cut/paste indlægget fra 11:28:58
Avatar billede arne_v Ekspert
17. januar 2004 - 11:33 #11
Mangler du ikke en else til at sætte firstlink = false ?
Avatar billede sbm Nybegynder
17. januar 2004 - 11:36 #12
arne_v >> Takker. Jeg kom til at rette min egen rettelse tilbage igen. :-/ Det havde jeg med i indlægget 11:28:13 men kom så til at lave min tredje kommentar på basis af den første, hvor den ikke var med.

Den skal se således ud:

$query = mysql_query("select * from database order by rand() limit 0,4");

$firstlink = true;
while($row = mysql_fetch_array($query)) {
    if (!firstlink) {
        echo " - ";
        $firstlink = false;
    }
    echo "<a href=\"http://www.webside.webside/taeller.php?affiliates&id=$row[id]\" target=\"_blank\">$row[titel]</a>";
}
Avatar billede runner19 Nybegynder
17. januar 2004 - 11:37 #13
Tak sbm... men ehm... Nu ser det sådan her ud: Side2Side3Side6Side5
Er det mon noget med else eller noget?
Avatar billede runner19 Nybegynder
17. januar 2004 - 11:38 #14
Okay! :) Jeg prøver lige det der ;)
Avatar billede sbm Nybegynder
17. januar 2004 - 11:41 #15
Jeg er ikke så stiv i PHP, da jeg aldrig har lavet noget i det, så jeg vil ikke nægte at jeg kan have smidt en fejl eller to ind. :-)
Avatar billede runner19 Nybegynder
17. januar 2004 - 11:41 #16
Hmm.. Det er altså stadig sammenhængene Link1Link3 osv...?
Avatar billede sbm Nybegynder
17. januar 2004 - 11:42 #17
Doh!!!! Selvfølgelig. Arne_v har ret. Jeg har bare ikke lige tænkt mig om. Det skal naturligvis ind i en else del. SORRY!

$query = mysql_query("select * from database order by rand() limit 0,4");

$firstlink = true;
while($row = mysql_fetch_array($query)) {
    if (!firstlink) {
        echo " - ";
    }
    else {
        $firstlink = false;
    }
    echo "<a href=\"http://www.webside.webside/taeller.php?affiliates&id=$row[id]\" target=\"_blank\">$row[titel]</a>";
}
Avatar billede runner19 Nybegynder
17. januar 2004 - 11:45 #18
Jeg er ked af at side det... Det sker altså igen :P
Avatar billede jakobclausen Nybegynder
17. januar 2004 - 11:48 #19
Hvad så med dette: ??

$query = mysql_query("select * from database order by rand() limit 0,4");

while($row = mysql_fetch_array($query))
{
    echo "<a href=\"http://www.webside.webside/taeller.php?affiliates&id=$row[id]"  target=\"_blank\">$row[titel]</a>";
  for($i=0; $i<count($row); $i++)
  {
  echo " - ";

  }
}
Avatar billede sbm Nybegynder
17. januar 2004 - 11:50 #20
runner19 >> Læste du mit sidste indlæg 11:42:44?
Avatar billede runner19 Nybegynder
17. januar 2004 - 11:51 #21
Jacobclausen's eks. har jeg lige prøvet:
Side7 - - - - - - - - Side4 - - - - - - - - StarLink.dk - - - - - - - - Side6 - - - - - - - -

Det her udskriver den.
Avatar billede runner19 Nybegynder
17. januar 2004 - 11:52 #22
sbm>> Ja, det var det den stadig gjorde det... altså side1side3side2 :(
Avatar billede jakobclausen Nybegynder
17. januar 2004 - 11:55 #23
runner19 >>

Måske ikke helt optimalt, men hvis du ikke angiver * i din sql, men kun tager fat ved den ene kolonne, hvor dit link er, burde mit script virke.
Avatar billede jakobclausen Nybegynder
17. januar 2004 - 11:55 #24
$query = mysql_query("select id from database order by rand() limit 0,4");
Avatar billede runner19 Nybegynder
17. januar 2004 - 11:57 #25
Jep, men id og titel skulle jo også helst indgå :/
Avatar billede jakobclausen Nybegynder
17. januar 2004 - 11:58 #26
$query = mysql_query("select id from database order by rand() limit 0,4");

while($row = mysql_fetch_array($query))
{
    echo "<a href=\"http://www.webside.webside/taeller.php?affiliates&id=$row[id]"  target=\"_blank\">$row[titel]</a>";
    $antal  = count($row)-1;
    for($i=0; $i<$antal; $i++)
    {
    echo " - ";
    }
}
Avatar billede runner19 Nybegynder
17. januar 2004 - 12:00 #27
Den er lidt svær at dreje, synes jeg :/ Nogen bud sbm eller jakobclausen?
Avatar billede runner19 Nybegynder
17. januar 2004 - 12:00 #28
Prøver...
Avatar billede jakobclausen Nybegynder
17. januar 2004 - 12:00 #29
runner19 >> Vil du ikke godt lige prøve ovenstående eksempel (17/01-2004 11:58:57), hvor du istedet for $row[titel] skriver side - vil godt lige se hvordan det ser ud
Avatar billede runner19 Nybegynder
17. januar 2004 - 12:01 #30
jacobclausen>> $row[titel] kan jo ikke udskrives når der kun hentes id... ?
Avatar billede runner19 Nybegynder
17. januar 2004 - 12:02 #31
okay...2 sek
Avatar billede runner19 Nybegynder
17. januar 2004 - 12:05 #32
Side - Side - Side - Side -
Ovenstående udskrives - og streg til sidst... hmm :)
Avatar billede runner19 Nybegynder
17. januar 2004 - 12:07 #33
Er det ikke her, at den er gal: for($i=0; $i<$antal; $i++) ??
Avatar billede jakobclausen Nybegynder
17. januar 2004 - 12:08 #34
Mit sidste forsøg:

$query = mysql_query("select * from database order by rand() limit 0,4");

while($row = mysql_fetch_array($query))
{
    echo "<a href=\"http://www.webside.webside/taeller.php?affiliates&id=$row[id]"  target=\"_blank\">$row[titel]</a>";
  for($i=1; $i<4; $i++)
  {
  echo " - ";

  }
}
Avatar billede runner19 Nybegynder
17. januar 2004 - 12:10 #35
Øv: Side3 - - - Side2 - - - StarLink.dk - - - Side7 - - -
Avatar billede runner19 Nybegynder
17. januar 2004 - 12:11 #36
Irriterende :/ Jeg er villig til at forhøje points for en løsning
Avatar billede jakobclausen Nybegynder
17. januar 2004 - 12:14 #37
Må nok indrømme at jeg ikke fatter ret megt af hvorfor mit sidste forslag gav det- synes ellers det burde at virke.

De tre første gange der udskrives et link udskriver den også " - ", men ikke fjerde gang da dette ikke er mindre end 4
Avatar billede stingbat Nybegynder
17. januar 2004 - 12:14 #38
$firstItem = true;
while ($row = mysql_fetch_array($query)) {
    if (!$firstItem) echo " - ";
    $firstItem = false;
    echo "<a href=\"http://www.webside.webside/taeller.php?affiliates&id=" . $row["id"] . "\" target=\"_blank\">" . $row["titel"] . "</a>";
}
Avatar billede stingbat Nybegynder
17. januar 2004 - 12:16 #39
Eller, hvis man vil spare en linie:
while ($row = mysql_fetch_array($query)) {
    if (isset($firstItem)) echo " - ";
    $firstItem = false;
    echo "<a href=\"http://www.webside.webside/taeller.php?affiliates&id=" . $row["id"] . "\" target=\"_blank\">" . $row["titel"] . "</a>";
}
Avatar billede runner19 Nybegynder
17. januar 2004 - 12:19 #40
WoooW... Nu virker det... stingbat's løsning virkede - takker! :D

Er det okay med jer, hvis i to for fordelt pointene?
Avatar billede Slettet bruger
17. januar 2004 - 12:20 #41
$query = mysql_query("select * from database order by rand() limit 0,4");

while($row = mysql_fetch_array($query)) {
  echo " - <a href=\"http://www.webside.webside/taeller.php?affiliates&id=$row[id]\" target=\"_blank\">$row[titel]</a>";

;)
}
Avatar billede runner19 Nybegynder
17. januar 2004 - 12:21 #42
lynz >> den går vist ikke ;)
Avatar billede stingbat Nybegynder
17. januar 2004 - 12:22 #43
lynz:
Den går desværre ikke, i foghold til runner19's spørgsmål - der måtte jo hverken være " - " før den første, eller efter den sidste *S*
Avatar billede stingbat Nybegynder
17. januar 2004 - 12:22 #44
runner19:
Du kan bare fordele som du nu vil :-)
Avatar billede runner19 Nybegynder
17. januar 2004 - 12:24 #45
De er så delt ;)
Avatar billede jakobclausen Nybegynder
17. januar 2004 - 12:48 #46
Jamen jeg siger da mange tak, og godt du fandt ud af det
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
Computerworld tilbyder specialiserede kurser i database-management

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