Avatar billede JJ77 Juniormester
17. januar 2006 - 21:37 Der er 12 kommentarer og
1 løsning

hvorfor viser den kun 1 record, når der fx er to

Hvorfor viser nedenstående kode kun 1 record når der skal vises to? der er fx to billeder knyttet til et id.

<?php

require_once("../members/common.php");

$imgID = mysql_real_escape_string($_GET['id']);

$query = mysql_query("SELECT pic FROM billeder WHERE artikelid = '".$imgID."' LIMIT 5") or die(mysql_error());
while(mysql_num_rows($query)>0)
{
    $row = mysql_fetch_assoc($query);
    header("Content-type: image/jpeg");
    print $row['pic'];
    exit ();
}

?>
Avatar billede jaw Nybegynder
17. januar 2006 - 21:40 #1
Det gør den, fordi du har exit(); i din løkke. Det gør jo, at udførelsen af dit script vil stoppe, første gang den støder på exit-funktionen.
Avatar billede JJ77 Juniormester
17. januar 2006 - 21:42 #2
nu har jeg fjernet den,, så tænker den bare i lang tid?
Avatar billede pidgeot Nybegynder
17. januar 2006 - 21:44 #3
Lige det script vil ikke virke hvis du skriver mere end en ting ud (da du skriver selve billedet ud), så det ville ikke være nogen god ide at fjerne exit(). Du bliver nødt til at give hvert billede en eller anden form for unikt id, og lave et andet script der bruger dette script som src i <img>-tags for hvert billede du skal have vist.
Avatar billede jaw Nybegynder
17. januar 2006 - 21:46 #4
Du sætter din header hver eneste gang, det ved jeg ikke om kan have noget at sige. Du kan jo prøve at smide den før din while evt. Men det du gør nu, er det ikke bare at lægge alle dine billeder's "kildekode" oven i hinanden og så prøve at udskrive det? Det vil vel blive noget rod?!
Avatar billede JJ77 Juniormester
17. januar 2006 - 21:48 #5
de skal vises fra nedenstående kode, som kalder filen image.php


<?php
require_once("../members/common.php");

$Id = $_GET[id];

$hent = mysql_query("SELECT * FROM salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr WHERE id = '$Id'") or die(mysql_error());
$raekke = mysql_fetch_assoc($hent);

echo "<a href=\"java script:history.go(-1)\"><div align=\"center\"><- Tilbage</div></a><br>";


echo "
  <table width=\"560\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\" bgcolor=\"#FFFFFF\">
  <tr>
  <td width=\"490\" valign=\"top\"><span class=\"mellem\">".$raekke['produkt']."</span> <br><span class=\"lille\">".$raekke['supplerendeTekst']."</span></td>
  <td width=\"70\" align=\"center\" valign=\"top\"><span class=\"lilleS\">".$raekke['pris']." Kr.</span></td>
  </tr></table>

<table width=\"260\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\"bgcolor=\"#FFFFFF\">
            <tr>
            <td width=\"60\" valign=\"top\"><span class=\"mellem\">Tlf 1:</span></td>
            <td width=\"200\" valign=\"top\"><span class=\"lilleS\">".$raekke['tlf1']."</span></td>
            </tr>
            <tr>
            <td width=\"60\" valign=\"top\"><span class=\"mellem\">Tlf 2:</span></td>
            <td width=\"200\" valign=\"top\"><span class=\"lilleS\">".$raekke['tlf2']."</span></td>
            </tr>
            <tr>
            <td width=\"60\" valign=\"top\"><span class=\"mellem\">E-mail:</span></td>
            <td width=\"200\" valign=\"top\"><span class=\"lilleS\">".$raekke['email']."</span></td>
            </tr>
            <tr>
            <td width=\"60\" valign=\"top\"><span class=\"mellem\">By:</span></td>
            <td width=\"200\" valign=\"top\"><span class=\"lilleS\">".$raekke['bynavn']."</span></td>
            </tr>
            <tr>
            <td colspan=\"2\"><img src=\"image.php?id=".$Id."\"></td>
            </tr>
        </table>";

?>
Avatar billede JJ77 Juniormester
17. januar 2006 - 21:49 #6
tabellen med billeder ser således ud:
CREATE TABLE `billeder` (
  `id` mediumint(8) NOT NULL auto_increment,
  `artikelid` mediumint(10) NOT NULL default '0',
  `pic` longblob NOT NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=11 ;
Avatar billede coderdk Praktikant
17. januar 2006 - 22:00 #7
while(mysql_num_rows($query)>0)
{
    $row = mysql_fetch_assoc($query);

skal nok også være:

if (mysql_num_rows($query)>0)
{
  while($row = mysql_fetch_assoc($query))
  {

plus en ekstra } i bunden
Avatar billede JJ77 Juniormester
17. januar 2006 - 22:25 #8
Den viser stadig kun et billede selv om der er tilknyttet 2 til
<?php

require_once("../members/common.php");

$imgID = mysql_real_escape_string($_GET['id']);

$query = mysql_query("SELECT pic FROM billeder WHERE artikelid = '".$imgID."' LIMIT 5") or die(mysql_error());
if (mysql_num_rows($query)>0)
{
  while($row = mysql_fetch_assoc($query))
  {
    header("Content-type: image/jpeg");
    print $row['pic'];
    exit ();
}
}

?>
Avatar billede JJ77 Juniormester
17. januar 2006 - 22:28 #9
kan jeg bruge dette kode?
<?php
require_once("../members/common.php");

if(isset($_GET['id']))
{
    $artikelID = mysql_real_escape_string($_GET['id']);
    $query = mysql_query("select id from billeder WHERE artikelid = '".$artikelID."' LIMIT 5") or die(mysql_error());
}
else
{
    $query = mysql_query("select id from billeder") or die(mysql_error());
}

while($row = mysql_fetch_assoc($query))
{
    echo "<img src=\"image.php?id=".$row['id']."\">\n";
}
?>
Avatar billede pidgeot Nybegynder
17. januar 2006 - 22:31 #10
Prøv med det her:

image.php:
<?php

require_once("../members/common.php");

$imgID = mysql_real_escape_string($_GET['id']);

$query = mysql_query("SELECT pic FROM billeder WHERE id = ".$imgID."") or die(mysql_error());
if (mysql_num_rows($query)>0)
{
  header("Content-type: image/jpeg");
  print $row['pic'];
  exit ();
}

?>

Din anden fil:
<?php
require_once("../members/common.php");

$Id = $_GET[id];

$hent = mysql_query("SELECT * FROM salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr WHERE id = '$Id'") or die(mysql_error());
$raekke = mysql_fetch_assoc($hent);

echo "<a href=\"java script:history.go(-1)\"><div align=\"center\"><- Tilbage</div></a><br>";


echo "
  <table width=\"560\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\" bgcolor=\"#FFFFFF\">
  <tr>
  <td width=\"490\" valign=\"top\"><span class=\"mellem\">".$raekke['produkt']."</span> <br><span class=\"lille\">".$raekke['supplerendeTekst']."</span></td>
  <td width=\"70\" align=\"center\" valign=\"top\"><span class=\"lilleS\">".$raekke['pris']." Kr.</span></td>
  </tr></table>

<table width=\"260\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\"bgcolor=\"#FFFFFF\">
            <tr>
            <td width=\"60\" valign=\"top\"><span class=\"mellem\">Tlf 1:</span></td>
            <td width=\"200\" valign=\"top\"><span class=\"lilleS\">".$raekke['tlf1']."</span></td>
            </tr>
            <tr>
            <td width=\"60\" valign=\"top\"><span class=\"mellem\">Tlf 2:</span></td>
            <td width=\"200\" valign=\"top\"><span class=\"lilleS\">".$raekke['tlf2']."</span></td>
            </tr>
            <tr>
            <td width=\"60\" valign=\"top\"><span class=\"mellem\">E-mail:</span></td>
            <td width=\"200\" valign=\"top\"><span class=\"lilleS\">".$raekke['email']."</span></td>
            </tr>
            <tr>
            <td width=\"60\" valign=\"top\"><span class=\"mellem\">By:</span></td>
            <td width=\"200\" valign=\"top\"><span class=\"lilleS\">".$raekke['bynavn']."</span></td>
            </tr>
            <tr>
            <td colspan=\"2\">";

  $imgquery = mysql_query("SELECT id FROM billeder WHERE artikelid = '".$imgID."' LIMIT 5") or die(mysql_error());
  while($imgrow = mysql_fetch_assoc($imgquery))
  {
    echo "<img src=\"image.php?id=".$imgrow[id]."\">";
  }
echo "        </td>
            </tr>
        </table>";

?>
Avatar billede JJ77 Juniormester
17. januar 2006 - 22:38 #11
Det virker ikke.

tabel billeder
CREATE TABLE `billeder` (
  `id` mediumint(8) NOT NULL auto_increment,
  `artikelid` mediumint(10) NOT NULL default '0',
  `pic` longblob NOT NULL,
  PRIMARY KEY  (`id`)


Det er meningen at den skal hente de billeder i tabellen "billeder" feltet "pic", som har det artikelid som passer med dette $Id = $_GET[id];
Avatar billede JJ77 Juniormester
17. januar 2006 - 22:59 #12
Jeg har følgende filer..

Første fil viser nogle annoncer salgsannoncer.php

<?php
require_once("../members/common.php");
//  Funktion, der "klipper" en tekst over på det mest hensigtsmæssige sted (".", " ", )
// str klip(str tekst, int længde, int tolerance)

function klip($tekst, $laengde = 200, $tolerance = 10) // $laengde og $tolerance kan udelades
{
    $punktum  = strpos(substr($tekst, $laengde-$tolerance, 2*$tolerance), "."); // position af punktum
    $mellemrum = strpos(substr($tekst, $laengde-$tolerance, 2*$tolerance), " "); // position af mellemrum
    $mere      = "..."; // punktummer hvis mere tekst

    if (strlen($tekst) <= $laengde + $tolerance) {
        $slut_pos = strlen($tekst); // slutposition = slut på tekst, da denne er kortere end $laengde og $tolerance
        $mere = ""; // ikke andet
    } elseif ($punktum !== false) {
        $slut_pos = $laengde-$tolerance+$punktum; // slutposition = punktum
    } elseif ($mellemrum !== false) {
        $slut_pos = $laengde-$tolerance+$mellemrum; // slutposition = mellemrum
    } else {
        $slut_pos = $laengde; // slutposition $laengde (ikke noget at gøre - skær ord over)
    }

    return substr($tekst, 0, $slut_pos) . $mere; // udskriv del + evt. punktummer
}

echo "<table border=\"0\" cellspacing=\"5\" cellpadding=\"0\"><tr><td>";

$pr_side = "20"; //Definerer antal resultater pr. side

if (!isset($s)) {
    $s = "0"; //Tjekker om $s - som står for start - er sat, hvis ikke sættes den
}

$g_total = mysql_query("select count(id) as total from salgAfProdukt") or die(mysql_error());
$total = mysql_result($g_total,0);
if($total>$pr_side)
{
if ($total > $s+5){
##
#Find ud af om derskal være et Forrige link
##
if ($s >= $pr_side) { //Tjekker om værdien af $s er større eller lig $pr_side
    $previous_s = $s-$pr_side; //Regner ud hvor mysql skal starte hvis forrige side kaldes 
    echo "<a href='?s=$previous_s'><font color=\"#4682B4\">Forrige</font></a> "; //Udskriver linket
}

##
#Find ud af hvis/hvor mange sider der er rows til
##
$page = 1; //Definerer hvor sidetal skal starte
for($start=0; $total > $start; $start=$start+$pr_side){ //For-løkke der kører indtil der ikke er nok rows til en side mere
    if ($start != $s) { //Tjekker om linket vil komme til at pege på den side man er på
        echo "<a href='?s=$start'><font color=\"#4682B4\">$page</font></a> "; //...hvis ikke, udskrives link med værdien af $page
    } else { //Ellers, dvs. hvis linket vil pege på den side man er på..
        echo "<font color=\"#000000\">$page </font>"; //...udskrives værdien af $page bare, altså ikke som link
    }
    $page++; //Lægger en til $page til næste gang løkken køres
}

##
#Find ud af om der skal være et næste link
##
if ($total > $s+$pr_side) { //Tjekker om der er flere sider
    $next_s = $s+$pr_side; //Regner ud hvor mysql skal starte hvis næste side kaldes
    echo "<a href='?s=$next_s'><font color=\"#4682B4\">Næste</font></a>"; //Udskriver linket "næste"
}
}
}
echo "</tr></td></table>";
  echo "  <table width=\"560\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"bgcolor=\"#CAD9EA\">
            <tr>
                    <td><span class=\"mini\">&nbsp;</span></td>
                </tr>
        </table>";
$query = mysql_query("select * from salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr order by id desc limit $s,$pr_side") or die(mysql_error());

while($row = mysql_fetch_array($query)){
   
echo "
  <table width=\"560\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\" bgcolor=\"#FFFFFF\">
  <tr>
  <td width=\"360\" valign=\"top\"><span class=\"mellem\"><a href=\"vis.php?id=$row[Id]\" target=\"vs\">$row[produkt]</a></span> <br><span class=\"lille\">".klip($row['supplerendeTekst'])."</span></td>
  <td width=\"70\" align=\"center\" valign=\"top\"><span class=\"lilleS\">".$row['pris']." Kr.</span></td>
  <td width=\"130\" align=\"center\" valign=\"top\"><span class=\"lilleS\">".$row['bynavn']."</span></td></tr></table>


<table width=\"560\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"bgcolor=\"#CAD9EA\">
            <tr>
                    <td><span class=\"mini\">&nbsp;</span></td>
                </tr>
        </table>";
   

}

$total = mysql_result($g_total,0);
if($total>$pr_side){

##
#Find ud af om derskal være et Forrige link
##
if ($s >= $pr_side) { //Tjekker om værdien af $s er større eller lig $pr_side
    $previous_s = $s-$pr_side; //Regner ud hvor mysql skal starte hvis forrige side kaldes 
    echo "<a href='?s=$previous_s'><font color=\"#4682B4\">Forrige</font></a> "; //Udskriver linket
}

##
#Find ud af hvis/hvor mange sider der er rows til
##
$page = 1; //Definerer hvor sidetal skal starte
for($start=0; $total > $start; $start=$start+$pr_side){ //For-løkke der kører indtil der ikke er nok rows til en side mere
    if ($start != $s) { //Tjekker om linket vil komme til at pege på den side man er på
        echo "<a href='?s=$start'><font color=\"#4682B4\">$page</font></a> "; //...hvis ikke, udskrives link med værdien af $page
    } else { //Ellers, dvs. hvis linket vil pege på den side man er på..
        echo "<font color=\"#000000\">$page </font>"; //...udskrives værdien af $page bare, altså ikke som link
    }
    $page++; //Lægger en til $page til næste gang løkken køres
}

##
#Find ud af om der skal være et næste link
##
if ($total > $s+$pr_side) { //Tjekker om der er flere sider
    $next_s = $s+$pr_side; //Regner ud hvor mysql skal starte hvis næste side kaldes
    echo "<a href='?s=$next_s'><font color=\"#4682B4\">Næste</font></a>"; //Udskriver linket "næste"
}
}
?>







Det er så muligt at trykke på en annonce, og filen vis.php bliver kaldt

<style>
<!--
                .stor{
                        color:#000080;
                        font:18 px Times New Roman,helvetica,tahoma,Georgia,verdana,arial,Courier New;
                        text-decoration: none;
                        font-style: normal;                   
                        font-weight: bold;
                       
                }
        -->
          <!--
                .mellem{
                        color:#000000;
                        font:14 px Times New Roman,helvetica,tahoma,Georgia,verdana,arial,Courier New;
                        text-decoration: none;
                        font-style: normal;                   
                        font-weight: bold;
                       
                }
        -->
        <!--
                .lille{
                        color:#585858;
                        font:12px Helvetica,sans-serif, Georgia,;
                        text-decoration: none;
                }
        -->
        <!--
                .lilleS{
                        color:#000011;
                        font:12px Helvetica,sans-serif, Georgia,;
                        text-decoration: none;
                }
        -->
</style>


<?php
require_once("../members/common.php");

$Id = $_GET[id];

$hent = mysql_query("SELECT * FROM salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr WHERE id = '$Id'") or die(mysql_error());
$raekke = mysql_fetch_assoc($hent);

echo "<a href=\"java script:history.go(-1)\"><div align=\"center\"><- Tilbage</div></a><br>";


echo "
  <table width=\"560\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\" bgcolor=\"#FFFFFF\">
  <tr>
  <td width=\"490\" valign=\"top\"><span class=\"mellem\">".$raekke['produkt']."</span> <br><span class=\"lille\">".$raekke['supplerendeTekst']."</span></td>
  <td width=\"70\" align=\"center\" valign=\"top\"><span class=\"lilleS\">".$raekke['pris']." Kr.</span></td>
  </tr></table>

<table width=\"260\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\"bgcolor=\"#FFFFFF\">
            <tr>
            <td width=\"60\" valign=\"top\"><span class=\"mellem\">Tlf 1:</span></td>
            <td width=\"200\" valign=\"top\"><span class=\"lilleS\">".$raekke['tlf1']."</span></td>
            </tr>
            <tr>
            <td width=\"60\" valign=\"top\"><span class=\"mellem\">Tlf 2:</span></td>
            <td width=\"200\" valign=\"top\"><span class=\"lilleS\">".$raekke['tlf2']."</span></td>
            </tr>
            <tr>
            <td width=\"60\" valign=\"top\"><span class=\"mellem\">E-mail:</span></td>
            <td width=\"200\" valign=\"top\"><span class=\"lilleS\">".$raekke['email']."</span></td>
            </tr>
            <tr>
            <td width=\"60\" valign=\"top\"><span class=\"mellem\">By:</span></td>
            <td width=\"200\" valign=\"top\"><span class=\"lilleS\">".$raekke['bynavn']."</span></td>
            </tr>
            <tr>
            <td colspan=\"2\">";

  $imgquery = mysql_query("SELECT id FROM billeder WHERE artikelid = '".$imgID."' LIMIT 5") or die(mysql_error());
  while($imgrow = mysql_fetch_assoc($imgquery))
  {
    echo "<img src=\"image.php?id=".$imgrow[id]."\">";
  }
echo "        </td>
            </tr>
        </table>";

?>



Filen ovenover skulle så gerne også vise de billeder som er tilknyttet til et "id" som hver annonce får i tabellen salgAfProdukt. Billederne ligger i en tabel som hedder "billeder". Når en annonce bliver oprettet med tilhørende billede får billedet også et artikelid, som er det samme som salgAfProdukt id.


filen image.php bliver så kaldt med ovenstående fil.

<?php

require_once("../members/common.php");

$imgID = mysql_real_escape_string($_GET['id']);

$query = mysql_query("SELECT pic FROM billeder WHERE artikelid = ".$imgID."") or die(mysql_error());
if (mysql_num_rows($query)>0)
{
  header("Content-type: image/jpeg");
  print $row['pic'];
  exit ();
}

?>
Avatar billede JJ77 Juniormester
17. januar 2006 - 23:13 #13
Ka godt se at jeg nu har forvirret mere end gavnet;)
Prøver at oprette et nyt spørgsmål.. med lidt flere 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
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