Avatar billede cf1234 Nybegynder
02. april 2014 - 19:07 Der er 15 kommentarer og
1 løsning

Liste grafik med undertekst fra db

Jeg har behov for at få listet en række grafikfiler vandret op med en underliggende tekst.
I koden kommer det hele selvfølgelig ud i hver sin kolonne hvor [navn] helst skal stå under den tilhørende grafik.

<?php
$con=mysqli_connect("xxx","xxx","xxx","xxx");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query($con,"SELECT * FROM testcode WHERE gruppe LIKE 18");

while($row = mysqli_fetch_array($result))
  {
echo "<td>";
echo "<img src='images/Farver/Stole/".$row['gruppe']."".$row['navn'].".jpg' >";
echo $row['$navn'];
  echo "</td>";
  }

mysqli_close($con);
?>
Avatar billede Slettet bruger
02. april 2014 - 21:25 #1
Den bliver du nødt til at beskrive bedre.

Hvad sker der nu?
Kommer der en fejl? Står det forkert, eller hvad er problemet?

LIKE er en MySQL funktionalitet, som arbejder på strenge.
Du har givet den en int. Strenge skal omgives af plinger (').
Avatar billede cf1234 Nybegynder
02. april 2014 - 23:38 #2
Det er er udelukkende præsentationen af mit output jeg har udfordringer med (echo). Det der hentes fra db er som det skal være.
Som du kan se dannes der en image url samt navnet på den.

Lige nu vises det på siden som: grafik,navn,grafik,navn osv. vandret over siden.
Jeg ville gerne vise grafik og nedenunder navnet, men stadig vandret over siden.

I tekst kunne det illustreres således:

Nu:
grafik,navn,grafik,navn,grafik,navn

Ønskes:
grafik  grafik  grafik  grafik
navn    navn    navn    navn

Håber du forstå hvad jeg mener:o)
Avatar billede Slettet bruger
03. april 2014 - 00:01 #3
Sæt et break efter billedet:

<br />

while($row = mysqli_fetch_array($result))
  {
echo "<td>";
echo "<img src='images/Farver/Stole/".$row['gruppe']."".$row['navn'].".jpg' ><br />";
echo $row['$navn'];
  echo "</td>";
  }
Avatar billede cf1234 Nybegynder
03. april 2014 - 07:24 #4
Det har jeg prøvet, men så kommer det til at stå på en liste og ikke i kolonner.

grafik
navn
grafik
navn
grafik
navn


I stedet for:

grafik  grafik  grafik  grafik
navn    navn    navn    navn
Avatar billede Slater Ekspert
03. april 2014 - 08:24 #5
Det skulle det ikke gøre, hvis de stadig er i <td>'er. Så må du lige vise din kode.
Avatar billede jakobdo Ekspert
03. april 2014 - 09:19 #6
Noget ala dette:

<?php
$con=mysqli_connect("xxx","xxx","xxx","xxx");
// Check connection
if (mysqli_connect_errno()){
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$gfx = array();
$txt = array();

$result = mysqli_query($con,"SELECT * FROM testcode WHERE gruppe LIKE 18");
while($row = mysqli_fetch_array($result)){
  $gfx[] = "<img src='images/Farver/Stole/" . $row['gruppe'] . $row['navn'] . ".jpg' >";
  $txt[] = $row['$navn'];
}

echo "<table>";
echo "<tr><td>" . implode("</td><td>",$gfx) . "</td></tr>";
echo "<tr><td>" . implode("</td><td>",$txt) . "</td></tr>";
echo "<table>";

mysqli_close($con);
?>
Avatar billede cf1234 Nybegynder
03. april 2014 - 10:19 #7
PRÆCIS!
Nu har jeg kun en lille detalje tilbage.
I dit eksempel sker der ingen ombrydning så det passer i skærmvisningen så der kommer en scrollbar i bunden.
Jeg kunne godt tænke mig at output fortsætter i en ny linie hvis der ikke er plads til at vise det hele.

Har du også en løsning på det?
Avatar billede jakobdo Ekspert
03. april 2014 - 10:21 #8
Jeg kan jo så stille det "sjove" spørgsmål.
Hvor bred er en skærm ?
Avatar billede cf1234 Nybegynder
03. april 2014 - 10:38 #9
Ha..ha... :o)
Hvis man kun smider <td></td> om variablen følger tabellen størrelsen på browservinduet.
Hvis der er plads til at vise 4 grafikker i bredden og man har 8 får man to linier. Er der plads til 2 får man 4 linier osv.
I dit eksempel (som er det jeg søgte) kommer det i een linie uanset antal af records.

Er det sort snak?:o)
Avatar billede jakobdo Ekspert
03. april 2014 - 10:43 #10
Det forstod jeg intet af.

En tabel er jo bygget op som følger:

<table>
<tr>
<td>Data</td>
</tr>
</table>

og jeg mener ikke tabeller selv kan bryde linjer op, der bliver for lange...

Men jeg kan tage fejl.
Avatar billede cf1234 Nybegynder
03. april 2014 - 11:00 #11
Det er jo det.
Jeg må nok opgive og tænke i alternative løsninger.

Smid lige et svar til point og tak for hjælpen.
Avatar billede jakobdo Ekspert
03. april 2014 - 11:08 #12
Du kunne jo også smide det op i divs...

//UTESTET!!!

<?php
$con=mysqli_connect("xxx","xxx","xxx","xxx");
// Check connection
if (mysqli_connect_errno()){
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

echo '<div style="overflow: auto">';

$result = mysqli_query($con,"SELECT * FROM testcode WHERE gruppe LIKE 18");
while($row = mysqli_fetch_array($result)){
  echo '<div style="float:left">';
  echo '<img src="images/Farver/Stole/' . $row['gruppe'] . $row['navn'] . '.jpg"><br />';
  echo $row['$navn'];
  echo '</div>
}

echo '</div>';

mysqli_close($con);
?>
Avatar billede cf1234 Nybegynder
03. april 2014 - 11:20 #13
SÅ ER DEN DER!!

Mange tak for din hjælp og tid.
Smid svar :o)
Avatar billede jakobdo Ekspert
03. april 2014 - 11:27 #14
Kan du ikke bruge det jeg allerede har smidt ?
Avatar billede cf1234 Nybegynder
03. april 2014 - 11:40 #15
Tak for hjælpen
Avatar billede jakobdo Ekspert
03. april 2014 - 11:50 #16
Takker for point.
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

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