Avatar billede jannek_ek Nybegynder
28. juli 2005 - 02:58 Der er 8 kommentarer og
1 løsning

php sql

Billedeteksten bliver gemt i en database, men når jeg prøver at få fat i billedeteksten, kommer der ikke noget (ikke en gang en fejlmelding)...


  <?php
  foreach (glob("gfx/*.jpg") as $billede) {
    $billede = basename($billede, '.jpg');
    $conn = mysql_connect("localhost", "punkt", "*********") or die(mysql_error());
    mysql_select_db("punkt") or die(mysql_error());

    $result = mysql_query("select text from images
where name=".$billede);
    $tekst = stripslashes($row["text"]);
    echo "
    <img src=\"gfx/".$billede.".jpg\" width=\"359\" height=\"125\">
    <br>
    <p>".$tekst."</p>";
  }
  ?>
Avatar billede jannek_ek Nybegynder
28. juli 2005 - 02:58 #1
Avatar billede jesper-madsen Nybegynder
28. juli 2005 - 03:08 #2
<?php
  foreach (glob("gfx/*.jpg") as $billede) {
    $billede = basename($billede, '.jpg');
    $conn = mysql_connect("localhost", "punkt", "*********") or die(mysql_error());
    mysql_select_db("punkt") or die(mysql_error());

    $result = mysql_query("select text from images
where name=".$billede);
while($row = mysql_fetch_array($result))
{
    $tekst = stripslashes($row["text"]);
    echo "
    <img src=\"gfx/".$billede.".jpg\" width=\"359\" height=\"125\">
    <br>
    <p>".$tekst."</p>";
  }}
  ?>
Avatar billede jesper-madsen Nybegynder
28. juli 2005 - 03:09 #3
- og et svar!
Avatar billede ksoren Nybegynder
28. juli 2005 - 03:21 #4
Jeg synes din sql ser forkert ud. Der skal bruges apostroffer til at angive en streng

result = mysql_query("select text from images
where name='$billede');
Avatar billede ksoren Nybegynder
28. juli 2005 - 03:22 #5
At afslutte med " er også godt

result = mysql_query("select text from images
where name='$billede'");
Avatar billede ksoren Nybegynder
28. juli 2005 - 03:24 #6
din mysql_connect ville jeg nok flytte op over foreach, der er ingen grund til at kalde den ved hvert gennemløb
Avatar billede mrgumble Nybegynder
28. juli 2005 - 08:34 #7
Det ville måske være hurtigere at vende den om, således at du henter alle billedtekster og gemmer dem i en array med filnavn som nøgle. Så laver du kun én forespørgelse til databasen i stedet for en for hver billede. Dvs. noget alá:
$result = mysql_query("SELECT text, name FROM images");
while ($row = mysql_fetch_assoc($result)) {
  $tekster[$row['name']] = $row['text'];
}
foreach (glob("gfx/*.jpg") as $billede) {
  echo "<img src=\"gfx/$billede.jpg\" width=\"359\" height=\"125\">
  <br>
  <p>".$tekster[$billede]."</p>";
}
Avatar billede hmortensen Nybegynder
28. juli 2005 - 12:33 #8
Hvis filnavnet står i databasen, hvorfor så søge en mappe igennem.

$result = mysql_query("SELECT `text`, `name` FROM `images`");
while ($row = mysql_fetch_array($result))
{
  if (file_exists("gfx/".$row['name'].".jpg"))
  {
    echo "
<img src=\"gfx/".$row['name'].".jpg\" width=\"359\" height=\"125\">
<br>
<p>".stripslashes($row['text'])."</p>";
  }
}
Avatar billede jannek_ek Nybegynder
28. juli 2005 - 13:40 #9
mange tak den havde jeg lige glemt.
ja hmortensen du har egentlig en point der...
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