Avatar billede esbenn Nybegynder
07. marts 2011 - 16:43 Der er 10 kommentarer og
1 løsning

Intet fra databasen

Hej,

Jeg henter nogle blogs fra en database - hvor jeg før ikke har haft problemer, men den er nu stoppet med at hente ting ud, ved ikke helt hvorfor det pludseligt ikke virker mere, og kan ikke helt selv lige gennemskue fejlen - nogen der kan se fejl?

<div class="blog_posts">
<?php
$blog = mysql_query("SELECT object_id from ideaal_term_relationships WHERE term_taxonomy_id='3' order by object_id DESC LIMIT 0,3");
while($blog_row = mysql_fetch_array($blog))
{
    $blog_id=$blog_row['object_id'];
    $blog_post = mysql_query("SELECT post_date,post_title,post_excerpt from ideaal_posts WHERE ID='$blog_id' and post_status='publish'");
    while($blog_post_row = mysql_fetch_array($blog_post))
    {
        $pic = mysql_query("SELECT * from ideaal_posts WHERE post_parent='$blog_id' and post_type='attachment' and post_title='prew'");
        $pic_row=mysql_fetch_array($pic);
        $pic_link=$pic_row['guid'];
       
        IF ($pic_link == ""):
        $img_link = "";
        ELSE:
        $img_link = "<a href='?page_id=13&blog=".$blog_id."'><img src='".$pic_link."' border='0px'></a>";
        ENDIF;
       
        setlocale(LC_TIME, 'da_DK');
        $myDate = $blog_post_row['post_date'];
        $date= strftime('%e. %B %Y',strtotime($myDate));
        // Hvis kl skal med, så ændre strftime('%e. %B %Y',strtotime($myDate)); til strftime('%e. %B %Y kl. %T',strtotime($myDate));

        // Opretter/nulstiller array til tags
            $arrtest = array();
        $res = mysql_query("SELECT ideaal_terms.name, ideaal_terms.slug FROM ideaal_terms INNER JOIN ideaal_term_relationships ON ideaal_terms.term_id=ideaal_term_relationships.term_taxonomy_id WHERE ideaal_term_relationships.object_id='$blog_id' and ideaal_term_relationships.term_taxonomy_id<>'1' and ideaal_term_relationships.term_taxonomy_id<>'2' and ideaal_term_relationships.term_taxonomy_id<>'3' and ideaal_term_relationships.term_taxonomy_id<>'4'");
        while($rows = mysql_fetch_array($res))
        {
            $arrtest[] = "<a href='?tag=".$rows['slug']."&page_id=13' class='tag_link'>".$rows['name']."</a>";
        }
        $tags = implode(", ",$arrtest);

    echo "<div class='blog'><div class='blog_title'><a href='?page_id=13&blog=".$blog_id."' class='headerlink'>".$blog_post_row['post_title']."</a></div><span class='blog_date'>".$date.", </span>&thinsp;<span class='blog_tag'>".$tags."</span><div class='blog_ref'>".$blog_post_row['post_excerpt']."</div><div class='prew_pic'>".$img_link."</div><div class='blog_more'><a href='?page_id=13&blog=".$blog_id."' class='nav_link'>Læs mere...</a></div></div>";
       
    }
}
?>

<div class="blog_arkiv"><a href='?page_id=a' class='nav_link'>Arkiv</a></div>
</div>

På forhånd tak! :)
Avatar billede olebole Juniormester
07. marts 2011 - 19:18 #1
<ole>

Prøv at printe variabler ud med passende mellemrum - og sørgh for, at du får vist evt. mysql fejl (og print meget gerne sql strengen ud i denne forbindelse):


$sql = "SELECT .......";
$res = mysql_query($sql) or die (mysql_error()."<br>".$sql);



/mvh
</bole>
Avatar billede esbenn Nybegynder
08. marts 2011 - 14:34 #2
Er det ikke underligt hvis mine variabler pludseligt giver fejl? Den har trods alt fungeret i et par måneder...
Avatar billede olebole Juniormester
08. marts 2011 - 15:42 #3
Nej, det ville være langt mere underligt, hvis det forholdt sig sådan, at du spørger blandt folk med langt mere erfaring i PHP, end du selv besidder - og efterfølgende hellere vil diskutere deres foreslåede tiltag, som oven i købet er helt standard blandt professionelle programmører  :)

Men sådan forholder det sig naturligvis heller ikke - så jeg tror, du glemte at fortælle, hvad du fik ud af at håndtere PHP's fejl sådan, som man almindeligvis gør det  ;o)
Avatar billede esbenn Nybegynder
08. marts 2011 - 21:55 #4
Du skal vide at jeg ikke spørger for at diskutere, men for at lære fordi jeg syntes det lyder underligt - og at jeg i det hele taget ikke helt forstår hvordan det er sket...

Men kan sige at når jeg prøver på at tjekke igennem så giver følgende:

$blog = mysql_query("SELECT object_id from ideaal_term_relationships WHERE term_taxonomy_id='3' order by object_id DESC LIMIT 0,3");
while($blog_row = mysql_fetch_array($blog))
{
    $blog_id=$blog_row['object_id'];

Ingen problemer, og blog_id indeholder ID helt fint...

Der kommer til gengæld ikke noget ud af følgende:

$blog_post = mysql_query("SELECT post_date,post_title,post_excerpt from ideaal_posts WHERE ID='$blog_id' and post_status='publish'");
    while($blog_post_row = mysql_fetch_array($blog_post))

Hvis jeg udskriver blog_post så for jeg kun:

Resource id #117Resource id #118Resource id #119

Og de ting jeg prøver at få ud af databasen har jeg prøvet at udskrive direkte her, men giver ikke noget resultat...
Avatar billede olebole Juniormester
08. marts 2011 - 22:37 #5
Jamen, du skal heller ikke udskrive $blog_post. Du kan f.eks. skrive:


$blog_post = mysql_query("SELECT post_date,post_title,post_excerpt from ideaal_posts WHERE ID='$blog_id' and post_status='publish'");

$sHTML = "";
while($blog_post_row = mysql_fetch_array($blog_post))
{
    $sHTML .= "<p>".$blog_post_row["post_date"]." :: ".$blog_post_row["post_title"]." :: ".$blog_post_row["post_excerpt"]."</p>";
}

print $sHTML;

Avatar billede esbenn Nybegynder
08. marts 2011 - 23:31 #6
Har prøvet at udskrive alt fra den - uden held... har også prøvet med * istedet for post_date,post_title,post_excerpt... Men det giver heller ikke rigtigt noget...
Avatar billede olebole Juniormester
09. marts 2011 - 00:06 #7
Prøv lige at skrive:


$sql = "SELECT post_date,post_title,post_excerpt from ideaal_posts WHERE ID='$blog_id' and post_status='publish'";
$blog_post = mysql_query($sql) or die (mysql_error()."<br>".$sql);

Avatar billede esbenn Nybegynder
14. marts 2011 - 16:10 #8
Desværre heller ikke noget...
Avatar billede esbenn Nybegynder
14. marts 2011 - 16:26 #9
Okay, jeg har faktisk lige fundet min fejl - men det er noget jeg ikke helt selv kan finde ud af, så håber du måske kan hjælpe mig...
Skal have slået to tabeller sammen når jeg trækker noget ud...


$blog = mysql_query("SELECT object_id from ideaal_term_relationships WHERE term_taxonomy_id='3' order by object_id DESC LIMIT 0,3");
while($blog_row = mysql_fetch_array($blog))
{
    $blog_id=$blog_row['object_id'];
    $blog_post = mysql_query("SELECT post_date,post_title,post_excerpt from ideaal_posts WHERE ID='$blog_id' and post_status='publish'");


Det her skal jeg gerne have slået sammen til én, da problemet er at jeg først henter 3 object_id fra ideaal_term_relationships, men hvis disse 3 ikke har post_status='publish'... kan du forstå problemet? Håber du kan hjælpe.. :)
Avatar billede esbenn Nybegynder
15. marts 2011 - 22:39 #10
Har fået en løsning..

Men tak for hjælpen... Smid et svar så for du nogle point som tak for hjælpen..
Avatar billede esbenn Nybegynder
24. marts 2011 - 20:48 #11
Lukker
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