Avatar billede MathLund Nybegynder
06. april 2012 - 19:34 Der er 8 kommentarer

Echo billeder fra database så de vises vandret

Hej eksperter!

Jeg har dette problem at når jeg echoer 2 billeder på min hjemmeside, så er billederne lodret, og ikke vandret. Kan man på nogen måde få billederne vandret, så de står ved siden af hinanden?

Ville gerne have det sådan her:

[BILLEDE]    [BILLEDE]

og IKKE:

[BILLEDE]
[BILLEDE]

Her er min kode:

$res1 = mysql_query("SELECT * FROM hon_elever ORDER BY RAND() LIMIT 2");   
while($row1 = mysql_fetch_array($res1))
    {
       
        $person_id = $row1['id'];

        $num = $row1['billede'];
       
        if($_SESSION['username'])
        {
            echo'<form method="GET"><a href="hon_quest.php person_id='.$person_id.'&question_id='.$id.'">';
            echo'<br /><br /><br /><br />
                <center>
                <img src="billeder/'.$num.'">'."&nbsp;&nbsp;</center>
                </form></a>";
        }



Tak på forhånd! :)
Avatar billede inteeeL Nybegynder
06. april 2012 - 20:45 #1
<img>-tagget er et inline-elemt, hvilket vil sige, at to billeder uden yderligere tiltag i CSS-filen kan opstilles ved siden af hinanden. <center> er derimod et block-element, som forårsager linjeskiftet.

Din html-kode er noget værre rod. For det første er en form helt unødvendig her, medmindre du har tænkt dig i det mindste at have en submit-knap (det kan klares med links i dette tilfælde). Du bruger <br /> til layout, hvilket ikke er hensigten med det tag. Brug i stedet CSS til placering af diverse elementer (margin,padding). <center>-tagget blev depricated i HTML 4.01 og bør ikke længere bruges. Der findes i stedet andre alternativer - CSS. Her kan man til tekst bruger "text-align : center;" og ved centrering af eksempelvis en boks "margin : 0 auto;". Du skal afslutte dit <a>-tag før du afslutter din <form>. Du glemmer også lige et spørgsmålstegn før person_id.

En rettelse kunne se sådan her ud (utestet):
$res1 = mysql_query("SELECT * FROM hon_elever ORDER BY RAND() LIMIT 2");    
while($row1 = mysql_fetch_array($res1)) {
    $person_id = $row1['id'];
    $num = $row1['billede'];
    echo '<div style="margin : 0 auto;">';
    if($_SESSION['username']) {
        echo '<a href="hon_quest.php?person_id='.$person_id.'&question_id='.$id.'"><img src="billeder/'.$num.'"></a>';
    }
    echo '</div>';
}
Avatar billede olebole Juniormester
07. april 2012 - 01:22 #2
<ole>

- og så kan du nøjes med at skrive ud ét sted:

$res1 = mysql_query("SELECT `id`, `billede` FROM hon_elever ORDER BY RAND() LIMIT 2"); 
$arrHtml = array(); 
while($row1 = mysql_fetch_array($res1)) {
    $person_id = $row1['id'];
    $num = $row1['billede'];
    $arrHtml[] = '<div style="margin : 0 auto;">';
    if($_SESSION['username']) {
        $arrHtml[] = '<a href="hon_quest.php?person_id='.$person_id.'&question_id='.$id.'"><img src="billeder/'.$num.'"></a>';
    }
    $arrHtml[] = '</div>';
}
echo implode('', $arrHTML);

/mvh
</bole>
Avatar billede MathLund Nybegynder
07. april 2012 - 09:17 #3
ved ingen af jeres forslag kan man se nogle billeder på siden :(

Warning: implode() [function.implode]: Invalid arguments passed in

Den viser denne error.
Hvad er galt?

tak for den hurtige respons :)
Avatar billede inteeeL Nybegynder
07. april 2012 - 13:26 #4
Ole lavede en lille tastefejl til sidst, det er ikke $arrHTML, men $arrHtml. :-)

Skift den sidste linje til følgende:
echo implode('', $arrHtml);
;
Avatar billede MathLund Nybegynder
08. april 2012 - 18:13 #5
@inteeL
Nu viser den i det mindste ikke nogen errors. Men den viser heller ikke nogen billeder overhovedet :(

Forslag?

Mvh MathLund
Avatar billede olebole Juniormester
08. april 2012 - 18:23 #6
Prøv at vise koden, du bruger. Prøv også at echo'e $_SESSION['username'], så du er sikker på, den indeholder det forventede:

$res1 = mysql_query("SELECT `id`, `billede` FROM hon_elever ORDER BY RAND() LIMIT 2"); 
$arrHtml = array();
echo 'Antal billeder: '.mysql_num_rows($res1).'<br>';
echo 'Session: '.$_SESSION['username'].'<br>';
while($row1 = mysql_fetch_array($res1)) {
    $person_id = $row1['id'];
    $num = $row1['billede'];
    $arrHtml[] = '<div style="margin : 0 auto;">';
    if($_SESSION['username']) {
        $arrHtml[] = '<a href="hon_quest.php?person_id='.$person_id.'&question_id='.$id.'"><img src="billeder/'.$num.'"></a>';
    }
    $arrHtml[] = '</div>';
}
echo implode('', $arrHtml);

Hvor kommer i øvrigt $id fra i linjen:

$arrHtml[] = '<a href="hon_quest.php?person_id='.$person_id.'&question_id='.$id.'"><img src="billeder/'.$num.'"></a>';
Avatar billede MathLund Nybegynder
09. april 2012 - 20:41 #7
$_SESSION'en er god nok :)

Her er hele koden:


<?php
include("hon_stylesheet.php");

$res1 = mysql_query("SELECT * FROM hon_elever ORDER BY RAND() LIMIT 2");


$res = mysql_query("SELECT * FROM hon_quest ORDER BY RAND() LIMIT 1");
$row = mysql_fetch_array($res);

$id = $row['id'];
$quest = $row['questions'];

    echo'<center><span1>'.$quest.'</span1></center>';

    while($row1 = mysql_fetch_array($res1))
    {
       
        $person_id = $row1['id'];

        $num = $row1['billede'];
       
        if($_SESSION['username'])
        {
            echo'<form method="GET"><a href="hon_quest.php?person_id='.$person_id.'&question_id='.$id.'">';
            echo'<br /><br /><br /><br />
                <center>
                <img src="billeder/'.$num.'">'."&nbsp;&nbsp;</center>
                </form></a>";
        }
        else
        {
            echo'<br /><br /><br /><br />
                <center><img src="billeder/'.$num.'">'."&nbsp;&nbsp;</center>";
        }

    }
       
       
        if(!$_SESSION['username'])
        {
                echo'<br /><error>Log ind for at vurdere!</error>';
        }

?>





Tak for hurtig respons! :)
Avatar billede olebole Juniormester
09. april 2012 - 21:25 #8
Din HTML-kode hænger ikke sammen og er et sammenrod af stenalder-HTML og ikke helt så gammel HTML.

1) Hvad skal formen? Den er i øvrigt forkert nested:

<form ...>
    <a href="...">
</form>
</a>

2) Hvad er et SPAN1 element?
3) Hvad er et ERROR element?
4) Hvorfor alle de CENTER elementer?
5) Hvorfor alle de BR elementer?
6) Hvorfor alle de &nbsp;?

Dine CENTER elementer må slet ikke stå, hvor de står - udover, at de har været deprecated i de sidste 12-14 år.

Du må heller ikke have et stylesheet der, hvor du har koden:

include("hon_stylesheet.php");

Prøv først at få styr på disse helt elementære ting, og gå så videre med PHP/MySQL  *o)
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