Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Primitivní podmínka v PHP

Dobrý den,
potřeboval bych poradit se zápisem kódu. Mám proměnou $hometitle, ta se zobrazí jenom někde. Problém je v tom, že výsledek kódu je v tabulce. Takže, když tam $hometitle není tak je buňka tabulky prázdná a další sloupce se normálně vypisují. Potřebuji napsat podmínku ve smyslu "když tu $hometitle není, tak se celý řádek nezobrazí".

$result.="
<tr><td><a href='".$homelink."'>".$hometitle."</a></td><td><a href='/index.php?m=profile&id=".$authorname."'>".$authorname."</a></td><td>"._formatTime($item['time'])."</td></tr>
";
Předmět Autor Datum
mozes pouzit if(!isset($premenna)) ak ta premenna vobec neexistuje, alebo napr. if($premenna!='') ap…
MM.. 10.07.2010 16:47
MM..
Můžeš mě to prosímtě zasadit do toho výsledku?
DuCk 10.07.2010 16:53
DuCk
To vidis prvy krat v zivote PHP ci co? Zacni radsej si nieco najprv o tom citat, php.html To if das…
MM.. 10.07.2010 16:57
MM..
Já neprogramuji, spíš tak upravuji. Proto bych byl rád kdyby mi to někdo už dopsal :). Musí to být o…
DuCk 10.07.2010 16:58
DuCk
To if das pred ten tvoj riadok (pred to $result.=")
MM.. 10.07.2010 16:59
MM..
V tom je právě problém. Pokud to tam přidám nezobrazí se titulek vůbec. celý kód: <?php /*--- kont…
DuCk 10.07.2010 17:04
DuCk
Jaky titulek? Co vlastne chces? Chcel si Potřebuji napsat podmínku ve smyslu když tu $hometitle nen…
MM.. 10.07.2010 17:05
MM..
Jasně, díky. Je to do redakčního systému, takže je těžké tam něco upravovat.
DuCk 10.07.2010 17:10
DuCk
Je tezke tam pridat if? Nie, tezke to neni.
MM.. 10.07.2010 17:15
MM..
No ono to právě nefunguje s if.
DuCk 10.07.2010 17:16
DuCk
if funguje. Ked nieco nefunguje tak nieco robis blbo (nevieme co robis blbo ptz nie sme jasnovidci a…
MM.. 10.07.2010 17:17
MM..
Napr. if($homelink!='') { $result.=" <tr class='tema-obsah'><td style='width:50%'><a href='".$homel…
MM.. 10.07.2010 17:17
MM..
Výsledek stejný, jako když to tam nebylo.
DuCk 10.07.2010 17:20
DuCk
Este keby sme vedeli co teda za TITLE dostanes z databazy, vtedy ked si myslis ze tam ziaden title n…
MM.. 10.07.2010 17:26
MM..
Nakonec jsem poprosil autora systému a napsal mi nový modul. Díky za pomoc.
DuCk 10.07.2010 17:47
DuCk
a to if(!isset($homelink)) ma efekt jaky? (to je test aj na NULL)
MM.. 10.07.2010 17:31
MM..
jo opacne. chces testovat ci je v nej nieco takze bez vykricnika if(isset($homelink))
MM.. 10.07.2010 17:34
MM..
Napsal mě na to nový modul. Tamto staré bylo příšerné. <?php /*--- kontrola jadra ---*/ if(!defined… poslední
DuCk 10.07.2010 17:47
DuCk

V tom je právě problém. Pokud to tam přidám nezobrazí se titulek vůbec.

celý kód:

<?php
/*--- kontrola jadra ---*/
if(!defined('_core')){exit;}
/*--- definice funkce modulu ---*/
function _HCM_nejnovejsi($limit=null, $stranky="", $typ=null){
  //priprava
  $result="";
  if(isset($limit) and intval($limit)>=1){$limit=abs(intval($limit));}else{$limit=10;}
  //filtr cisel sekci, knih nebo clanku
  if(isset($stranky) and isset($typ)){
    $rtype=intval($typ);
    if($rtype<1 or $rtype>3){$rtype=1;}
    $rroots="("._sqlWhereColumn("home", $stranky).") AND type=".$rtype;
  }
  else{
    $rroots="type!=4";
  }
  $query=mysql_query("SELECT id,type,home,xhome,subject,author,guest,time FROM `"._mysql_prefix."-posts` WHERE ".$rroots." ORDER BY id DESC LIMIT ".$limit);
  while($item=mysql_fetch_array($query)){
    //nacteni titulku a odkazu na stranku
    switch($item['type']){
    case 1: case 3: $homelink=_linkRoot($item['home']); $hometitle=mysql_fetch_array(mysql_query("SELECT title FROM `"._mysql_prefix."-root` WHERE id=".$item['home'])); break;
    case 2: $homelink=_linkArticle($item['home']); $hometitle=mysql_fetch_array(mysql_query("SELECT title FROM `"._mysql_prefix."-articles` WHERE id=".$item['home'])); break;
      case 5:
      if($item['xhome']==-1){
        $tid=$item['id'];
        $hometitle=array("title"=>$item['subject']);
      }
      else{
        $tid=$item['xhome'];
        $hometitle=mysql_fetch_array(mysql_query("SELECT subject FROM `"._mysql_prefix."-posts` AND xhome=-1 WHERE id=".$item['xhome'] ));
        $hometitle=array("title"=>$hometitle['subject']);
      }
      $homelink="index.php?m=topic&amp;id=".$tid;
      break;
    }
    //nacteni jmena autora
    if($item['author']!=-1){$authorname=_linkUser($item['author'], null, true, true );}
    else{$authorname=$item['guest'];}
    $hometitle=$hometitle['title'];
$result.="
<tr class='tema-obsah'><td style='width:50%'><a href='".$homelink."'>".$hometitle."</a></td><td><a href='/index.php?m=profile&id=".$authorname."'>".$authorname."</a></td><td style='width:25%'>"._formatTime($item['time'])."</td></tr>
";
  }
  return $result;
}
?>

Napr.

if($homelink!='')
{
$result.="
<tr class='tema-obsah'><td style='width:50%'><a href='".$homelink."'>".$hometitle."</a></td><td><a href='/index.php?m=profile&id=".$authorname."'>".$authorname."</a></td><td style='width:25%'>"._formatTime($item['time'])."</td></tr>
";
}

robi co?

Este keby sme vedeli co teda za TITLE dostanes z databazy, vtedy ked si myslis ze tam ziaden title neni (on tam je a nieco v nom je). Mozes sem skopirovat ten riadok HTML ktory to vygenerovalo? (v prehliadaci si dat zobrazit zdrojovy kod a skopirovat sem ten riadok ktory nechces)

Napsal mě na to nový modul. Tamto staré bylo příšerné.

<?php
/*--- kontrola jadra ---*/
if(!defined('_core')) {
    exit;
}
/*--- definice funkce modulu ---*/
function _HCM_nejnovejsi($limit = 1, $fora = null)
{

    // promenna pro vystup
    $output = '';

    // zpracovani argumentu
    if(!empty($fora)) {
        $fora = ' AND ('._sqlWhereColumn('home', $fora).')';
    }
    $limit = (int)$limit;
    if($limit < 1) {
        $limit = 1;
    }

    // sql dotaz
    $temata = mysql_query('SELECT `id`,`type`,`home`,`xhome`,`subject`,`author`,`guest`,`time` FROM `'._mysql_prefix.'-posts` WHERE `type`=5 AND `xhome`=-1'.$fora.' ORDER BY `id` DESC LIMIT '.$limit);
    while($tema = mysql_fetch_assoc($temata)) {
        $output .= '<tr class="tema-obsah"><td style="width:50%"><a href="index.php?m=topic&amp;id='.$tema['id'].'">'.$tema['subject'].'</a></td><td>'.(($tema['author'] == -1) ? $tema['guest'] : _linkUser($tema['author'])).'</td><td style="width:25%">'._formatTime($tema['time']).'</td></tr>'._nl;
    }

    // vystup
    return $output;

}


?>

Zpět do poradny Odpovědět na původní otázku Nahoru