Autor Zpráva
Michales
Profil
Zdravím,

Potřeboval bych radu s následujícím.

U mě na webu je možnost přidávat vlastní příspěvky, příspěvky může přidávat kdokoliv ale měli by se zobrazovat jen po schválení adminem.
Jakým způsobem postavit podmínku?
Podmínka by měla být, uložený článek uvídí jen admin, když bude ve sloupci active 0.
Pokud admin příspěvek schválí tak se ve sloupci active updatuje 1 a příspěvek bude vyditelný pro všechny.
Admin je řešen pomocí seasion:
$_SESSION['admin'] == true

Prosím kohokoliv kdo by mi tu podmínku napsal protože já sám si ji nenapíšu.
Zde je kod kterým články vypisuji.
Vím že je to splátanina ale já s php moc neumím.

 <?php
$query = "SELECT `id`, `name`, `adr`, `datum`, `artist`, `cover`, `website`, `year`, `region`, `klic`, `tracklist`, `nick`, `active` FROM `user_post` WHERE 1";
$result = mysql_query($query) or die(Mysql_error());
While($results=MySQL_Fetch_Assoc($result))
{

?>               
                <div class="art-postmetadataheader">
                                        <h2 class="art-postheader"><?php print $results['name']; ?></h2>
                                                        </div>
                <div class="art-postheadericons art-metadata-icons">
                    <span class="art-postdateicon"></span>Autor: <?php print $results['nick']; ?> | Přidáno dne:&nbsp;<?php print $results['datum']; ?><span class="art-postauthoricon"> </span> | 
                </div>
                <div class="art-postcontent"> 
                <script>
function ConfirmDelete()
{
    var x = confirm("Opravdu chceš danný příspěvek smazat?");
    if (x)
        return true;
    else
      return false;
}
</script><?php  if($_SESSION['admin'] == true) echo '<a href="delete_post.php?id='.$results['id'].'" Onclick="return ConfirmDelete()"><img width="20" src="/img/delete.png"></a>' ;  ?>
                <?php  if($_SESSION['admin'] == true) echo '<a href="schval_post.php?id='.$results['id'].'" Onclick="return Confirmschval()"><img width="20" src="/img/schvaleni.png"></a>' ;  ?> <br>
                <?php print "\t\t" . '<img align="left" width="100" height="100" src="' . $results['cover'] .'">' . "\n"; ?>Region: <?php print $results['region']; ?><br>Rok: <?php print $results['year']; ?><br>Interpet: <?php print $results['artist']; ?>
                <br>Tracklist: <p><?php print $results['tracklist']; ?> </p>
          <br>Odkaz ke stažení: <p><?php print $results['website']; ?> </p>
          <span class="art-postauthoricon">Heslo: <?php print $results['klic']; ?>    </span> 
                  
                </div>
                  <?php
}
?>
Joker
Profil
Michales:
Primitivní řešení:
$where = $_SESSION["admin"] ? "" : " WHERE active = 1";
$query = $query = "SELECT `id`, `name`, `adr`, `datum`, `artist`, `cover`, `website`, `year`, `region`, `klic`, `tracklist`, `nick`, `active` FROM `user_post`" . $where;

Jinak rozšíření mysql (mysql_* funkce) by se v nových projektech už nemělo používat, protože je zastaralé.
Michales
Profil
Joker:
Děkuji za rady.

Použito toto:
<?php
if ($_SESSION['admin'] == true) {
$where = '';
} else {
$where = ' WHERE active = 1';
}
$query = "SELECT `id`, `name`, `adr`, `datum`, `artist`, `cover`, `website`, `year`, `region`, `klic`, `tracklist`, `nick`, `active` FROM `user_post`" . $where;
$result = mysql_query($query) or die(Mysql_error());
While($results=MySQL_Fetch_Assoc($result))
{
 
?> 
Joker
Profil
Michales:
Drobná poznámka, if ($_SESSION['admin'] == true) je sice správně, ale je to zbytečné, if ($_SESSION['admin']) je to samé a je to kratší.
Michales
Profil
Ještě bych měl jednu otázku, a je vlastně stejného charakteru.
Jak zobrazovat tento obrázek za stejných podmínek
<?php if($_SESSION['admin'] == true) echo '<a href="schval_post.php?id='.$results['id'].'" Onclick="return Confirmschval()"><img width="20" src="/img/schvaleni.png"></a>' ; ?>

zobrazit jen pokud je admin a ve sloupci active 0.
if($_SESSION['admin'] == true && $results['active']=0)
tak to zmizí úplně


Přišel jsem na chybu správně to má být:
if($_SESSION['admin'] == true && $results['active'] == 0)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: