Avatar billede djsteiner Nybegynder
02. juni 2012 - 22:20 Der er 30 kommentarer og
1 løsning

Parse error: syntax error, unexpected '.'

Hej

Jeg får denne felj min kode:

Parse error: syntax error, unexpected '.' in /home/virtual/karstendall.dk/public_html/info.php on line 135




$number_three = (.$result['links'];

                                       
                                       
                                        if $number_three == (.$result['links']) {



                                           
            echo " <a target='_blank' href='" .$result['links']."'> <img style='border:solid 1px #84a1c2;' src=\"upload/big/".$result['pic']."\"></a>";
           
           
            } else {
           
            echo " <a target='_blank'> <img style='border:solid 1px #84a1c2;' src=\"upload/big/".$result['pic']."\"></a>";
           
                                                       
                }
                           
                           
                                           
                            echo "</div>";           
                                                        }
                                                       
                                                          ?>
Avatar billede olebole Juniormester
02. juni 2012 - 23:35 #1
<ole>

Ja, naturligvis får du fejl  =)

Hvad betyder:

$number_three = (.$result['links'];

- eller:

if $number_three == (.$result['links']) {

/mvh
</bole>
Avatar billede djsteiner Nybegynder
03. juni 2012 - 15:54 #2
Hej ja det kan jeg godt se

Det jeg gerne vil have hjælp ti er en if or else sætning der skal bestemme hvilket kode der skal bruges.

på samme måde som man gør her:

<?
if (74 > 100)
{
    //Hvis 74 er større 100, udfør denne kode
    echo "Det er sørme rigtigt";
}
else
{
    //Hvis det ikke er tilfældet, udfør denne kode
    echo "Desværre ikke";
}
?>
Avatar billede djsteiner Nybegynder
03. juni 2012 - 16:01 #3
Så er det så lige hvordan jeg får dette overført til min kode:

Især med henblik på if sætning som jeg ikke ved hvordan den skal laves?


    $link = $result['links']                               

if    ($link == $result['links'])
{
    //Hvis der link i tybelen så skal de udskrives
    echo " <a target='_blank' href='" .$result['links']."'> <img style='border:solid 1px #84a1c2;' src=\"upload/big/".$result['pic']."\"></a>";

}
else
{
    //Hvis det ikke er tilfældet, udfør denne kode
    echo " <a target='_blank'> <img style='border:solid 1px #84a1c2;' src=\"upload/big/".$result['pic']."\"></a>";
}


                               
echo "</div>";           
}                                                           
                                                       
      ?>
Avatar billede djsteiner Nybegynder
03. juni 2012 - 16:02 #4
Her har du hele koden:

<?php
                            $id = $_GET['id'];
                           
  $info = mysqli_query($conn, "SELECT * FROM refrencer WHERE refid=".$id." ORDER BY refid desc ");             
        while ($result = mysqli_fetch_array($info)){                                                 
                                                         
                                               
                                            echo nl2br ("<p>". $result['longtext'] ."</p>") ;
                                           
                                            echo "<a target='_blank' href='".$result['links']."'>".$result['links']."</a><br /><br />";   
                                            echo "<a href='java script:history.back()'>Tilbage</a>";   
                                           
                                            echo "<br /> <br />";   
                                           
                                            echo "<div id='bigpic'>";
                                       
        $link = $result['links']                               

if    ($link == $result['links'])
{
    //Hvis der link i tybelen så skal de udskrives
    echo " <a target='_blank' href='" .$result['links']."'> <img style='border:solid 1px #84a1c2;' src=\"upload/big/".$result['pic']."\"></a>";

}
else
{
    //Hvis det ikke er tilfældet, udfør denne kode
    echo " <a target='_blank'> <img style='border:solid 1px #84a1c2;' src=\"upload/big/".$result['pic']."\"></a>";
}



                                       
echo "</div>";           
}                                                           
                                                       
      ?>
Avatar billede olebole Juniormester
03. juni 2012 - 17:20 #5
Jeg ved ikke helt, hvad du spørger om - hvis du altså stadig spørger om noget  =)
Avatar billede djsteiner Nybegynder
03. juni 2012 - 17:29 #6
Hehe nej det er også svært! :)

Men det jeg gerne vil have hjælp til er en if or else sætning

Det er du godt med på ikke ?
Avatar billede olebole Juniormester
03. juni 2012 - 17:55 #7
Jo, men det er også alt. Jeg ved ikke, hvad den if/else skal gå ud på
Avatar billede djsteiner Nybegynder
03. juni 2012 - 22:58 #8
if/else sætningen skal bruges til at tjekke på om en tabel kolonne i databasen er tom eller der er et link der skal udskrives fra den.

Noget i stil med dette:


hvis .$result['links']. er tom

så køre denne kode

ellers

køre denne kode

Håber dette giver mening!
Avatar billede olebole Juniormester
03. juni 2012 - 23:18 #9
Det må være noget i denne stil:

<?php
$id = $_GET['id'];

$info = mysqli_query($conn, "SELECT * FROM refrencer WHERE refid=".$id." ORDER BY refid desc ");             
while ($result = mysqli_fetch_array($info)){                                                 
    echo nl2br ("<p>". $result['longtext'] ."</p>") ;
   
    echo "<a target='_blank' href='".$result['links']."'>".$result['links']."</a><br /><br />";   
    echo "<a href='java script:history.back()'>Tilbage</a>";   
   
    echo "<br /> <br />";   
   
    echo "<div id='bigpic'>";                             
   
    if ($result['links']!='')
    {
        //Hvis der link i tybelen så skal de udskrives
        echo " <a target='_blank' href='" .$result['links']."'> <img style='border:solid 1px #84a1c2;' src=\"upload/big/".$result['pic']."\"></a>";
    }
    else
    {
        //Hvis det ikke er tilfældet, udfør denne kode
        echo " <a target='_blank'> <img style='border:solid 1px #84a1c2;' src=\"upload/big/".$result['pic']."\"></a>";
    }
   
    echo "</div>";           
}                                               
?>

- eller en del mere effektivt:

<?php
$id = $_GET['id'];

$info = mysqli_query($conn, "SELECT * FROM refrencer WHERE refid=".$id." ORDER BY refid desc ");
$html = array();           
while ($result = mysqli_fetch_array($info)){                                                 
    $html[] = "<p>".nl2br($result['longtext'])."</p>";
   
    $html[] = "<a target='_blank' href='".$result['links']."'>".$result['links']."</a><br /><br />";   
    $html[] = "<a href='java script:history.back()'>Tilbage</a>";   
   
    $html[] = "<br /> <br />";   
   
    $html[] = "<div id='bigpic'>";                             
   
    if ($result['links']!='')
    {
        //Hvis der link i tybelen så skal de udskrives
        $html[] = " <a target='_blank' href='" .$result['links']."'> <img style='border:solid 1px #84a1c2;' src=\"upload/big/".$result['pic']."\"></a>";
    }
    else
    {
        //Hvis det ikke er tilfældet, udfør denne kode
        $html[] = " <a target='_blank'> <img style='border:solid 1px #84a1c2;' src=\"upload/big/".$result['pic']."\"></a>";
    }
   
    $html[] = "</div>";           
}
echo implode('', $html);                                                     
?>
Avatar billede olebole Juniormester
03. juni 2012 - 23:20 #10
- og da din kode står pivåben for sql-injection, bør du nok kikke på prepared statements, som er en langt mere sikker måde at kommunikere med MySQL-databasen  *o)
Avatar billede djsteiner Nybegynder
03. juni 2012 - 23:28 #11
jeg har prøvet sådan her:



  <?php
$id = $_GET['id'];
                           
$info = mysqli_query($conn, "SELECT * FROM refrencer WHERE refid=".$id." ORDER BY refid desc ");             
        while ($result = mysqli_fetch_array($info)){                                 
                                                         
echo nl2br ("<p>". $result['longtext'] ."</p>") ;
                                           
echo "<a target='_blank' href='".$result['links']."'>".$result['links']."</a><br /><br />";   
                                echo "<a href='java script:history.back()'>Tilbage</a>";   
                                           
echo "<br /> <br />";   
                                           
echo "<div id='bigpic'>";
                                       
    if($result['links'] == ''){

    //Hvis der link i tabelen så skal de udskrives
    echo " <a target='_blank' href='" .$result['links']."'> <img style='border:solid 1px #84a1c2;' src=\"upload/big/".$result['pic']."\"></a>";
}
else
{
    //Hvis det ikke er tilfældet, udfør denne kode
    echo " <a target='_blank' \"upload/big/".$result['pic']."\> <img style='border:solid 1px #84a1c2;' src=\"upload/".$result['pic']."\"></a>";

}


                               
echo "</div>";           
}                                                           
                                                       
      ?>
Avatar billede olebole Juniormester
03. juni 2012 - 23:54 #12
Nå ... og ...?
Avatar billede olebole Juniormester
03. juni 2012 - 23:57 #13
Hvis ikke det virker, så echo din $result['links']. Jeg ved ikke, hvad feltet indeholder, når det ikke indeholder et link. Jeg gik bare udfra, det indeholdt en tom streng  =)
Avatar billede djsteiner Nybegynder
04. juni 2012 - 00:04 #14
nu kommer den med denne fejl:

The requested URL /java script:history.back() was not found on this server.
Apache/2.2.22 (Unix) PHP/5.2.17 Server at karstendall.dk Port 80


når jeg benytter

$html[] = "<a href='java script:history.back()'>Tilbage</a>"; 


hvad betyder echo implode('', $html); ?   

og hvad er forskellen på denne

if ($result['links']!='')


og denne:

if($result['links'] == ''){
Avatar billede olebole Juniormester
04. juni 2012 - 00:09 #15
Hvad fik du ud af at echo'e $result['links']?
Avatar billede djsteiner Nybegynder
04. juni 2012 - 13:30 #16
Hej det virker stort set nu bortset fra:

"<a href='java script:history.back()'>Tilbage</a>";

her kommer den med denne fejl:

The requested URL /java script:history.back() was not found on this server.
Apache/2.2.22 (Unix) PHP/5.2.17 Server at karstendall.dk Port 80


udover det er noget design jeg skal have fixet. :)

echo'e $result['links']?

her bliver der skrevet nogle links ud hvis tabel kollonen ikke er tom.
Avatar billede olebole Juniormester
04. juni 2012 - 14:40 #17
Denne linje:

"<a href='java script:history.back()'>Tilbage</a>";

- kan ikke udløse en PHP-fejl. Det er muligt, du får en JS-fejl, hvis du klikker på det link, men du skal først have rettet dine PHP-fejl.

Får du fejl, når du klikker på linket, skyldes det, at du ikke 'kommer et sted fra' - og så giver history.back() jo ikke mening  =)
Avatar billede olebole Juniormester
04. juni 2012 - 14:42 #18
"echo'e $result['links']?

her bliver der skrevet nogle links ud hvis tabel kollonen ikke er tom."


Vrøvl! Jeg prøver igen: Hvad sker der, hvis du echo'er $result['links']?
Avatar billede djsteiner Nybegynder
04. juni 2012 - 17:24 #19
Altså hvis jeg bare laver echo $result['links']

så udskriver den de links ud som er i tabelen.




Ja fejlen kommer når jeg trykker på linkether skulle jeg jo gerne komme tilbage til udgangspunktet dette har virket! :)
Avatar billede olebole Juniormester
04. juni 2012 - 17:36 #20
"så udskriver den de links ud som er i tabelen."

Ja, naturlighvis! Men hvad skrives ud, når der ikke står et link i databasen?

"Ja fejlen kommer når jeg trykker på linkether skulle jeg jo gerne komme tilbage til udgangspunktet dette har virket!"

Ja, og det gør det garanteret også nu! Hvis du kalder dokumentet direkte i en browser, vil du naturligvis få den omtalte fejl, når du klikker på linket. For så er der jo ikke noget 'udgangspunkt'.

Du skal komme til siden via et link. Så vil et klik på det udskrevne link sende dig tilbage til den foregående side.
Avatar billede djsteiner Nybegynder
04. juni 2012 - 17:37 #21
Her har du websiden vi snakker om:

http://karstendall.dk/web.php

Når man så trykker på et af de links der  så kommer man videre til en side hvor der kommer en beskrivelse af det valgte
Avatar billede djsteiner Nybegynder
04. juni 2012 - 17:39 #22
der hvor tabel kolonnen er tom udskriver den ikke noget.
Avatar billede olebole Juniormester
04. juni 2012 - 17:49 #23
Der må ikke være mellemrum mellem 'java' og 'script'. Det har du formodentlig fra Eksperten, som ikke kan skrive javascript, efterfulgt af et kolon - uden at adskille de to ord med et mellemrum. Det er en gammel, kendt fejl  =)
Avatar billede olebole Juniormester
04. juni 2012 - 17:54 #24
"der hvor tabel kolonnen er tom udskriver den ikke noget."

Tak, så giver det endelig mening at besvare dine spørgsmål i #14  =)

Betingelsen:

if ($result['links']=='')

- er opfyldt, hvis variablen $result['links'] indeholder en tom streng.

Betingelsen:

if ($result['links']!='')

- er opfyldt, hvis variablen $result['links'] ikke indeholder en tom streng - altså hvis den indeholder et eller flere tegn.
Avatar billede djsteiner Nybegynder
04. juni 2012 - 21:03 #25
Mange tak ja man skal jo også kunne stave til javascript :)

Beklager lige min dårlige formulering!

Men dejligt vi fik det til at virke! :)

nu skal jeg bare have fixet det med designet og sikkerheden i min sql kode

Tak for din tålmodigheden og hjælpen :)
Avatar billede djsteiner Nybegynder
04. juni 2012 - 21:13 #26
Du skal da også have point så kom lige med et svar:)

Men hvad gør
echo implode('', $html);  som du bruger i svar #9 ?

Og hvordan kan det være at du bruger variablen $html[] det meste af koden i svar #9 ?
Avatar billede olebole Juniormester
04. juni 2012 - 21:22 #27
implode imploderer (sammentrækker) et array omkring en streng. Det vil sige at alle elementer bliver samlet til en streng - adskilt af strengen, som udgør første argument:

$foo = array('æble', 'pære', 'banan');
echo implode(' og ', $foo);

- udskriver strengen 'æble og pære og banan'. Ofte bruges det sådan:

$foo = array('æble', 'pære', 'banan');
echo '<div>'.implode('</div><div>', $foo).'</div>';
Avatar billede olebole Juniormester
04. juni 2012 - 21:23 #28
- og så samler jeg ikke point. Læg selv et svar, så tråden lukkes ... men tak for tilbudet  =)
Avatar billede olebole Juniormester
04. juni 2012 - 21:30 #29
PS: 'Modsætningen' eller 'fætteren' til implode hedder explode. Den deler en streng til et array:

$str = 'en tekst i en streng';
$foo = explode(' ', $str);
// array('en', 'tekst, 'i', 'en', 'streng')


Et lysstofrør er under vakuum, så det imploderer, når det går i stykker (= sprænger indad - samles). En gasflaske er under tryk, så den eksploderer (sprænger udad - spredes). Derfra kommer ordene  =)
Avatar billede djsteiner Nybegynder
04. juni 2012 - 23:57 #30
Mange tak for den meget gode forklaring! :)

Man lære noget nyt hver dag! :)
Avatar billede olebole Juniormester
05. juni 2012 - 00:18 #31
Selvtak. Ja, forhåbentlig. Udover at vedligeholde artens DNA, er den biologiske mening vel, at vi skal forbedre artens viden og mulighed for overlevelse.

Jaja, det kan godt være, dine evt. unger ikke ved, hvad de skal bruge explode og implode til ... men meningen var god nok!  *D
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