« 1 2 »
Autor Zpráva
nyllo
Profil
Dobrý den. Potřebuji vytvořit podmínku ve výpisu.


<?php
include 'config.php'; //načteme soubor s údaji pro připojení k db
            mysql_connect($dbserver, $dblogin, $dbheslo); // připojíme se k db
            mysql_select_db($dbnazev); // vybereme db 
            mysql_query("SET NAMES 'UTF-8'"); // nastavíme kódování       


//******************* nastavení navigace a výběr dat z databáze ******************
$start = $_GET['start'];
if(!$start)
    $start=0; // pokud nebude klepnuto na další nebo předchozí příspěvek zobrazí se od posledního
    
$prispevku = "10"; // počet příspěvků které chceme vypsat na stránku

    $vypis =  mysql_query("SELECT * FROM events order by id desc limit ".$start.", ".$prispevku.""); //vybíráme data z "aktualit" a vypisujeme od posledního příspěvku
     $pocet=mysql_num_rows(mysql_query('select * from events')); //spočítáme všechny záznamy v databázi

     
    
//********************************* výpis článků *********************************
        while($row = mysql_fetch_array($vypis))
                {
            
            
            echo "     <div class=\"panel\">
                                <div><a href=\"http://www.facebook.com/events/".$row["list"]."\" target=\"_blank\"><img class=\"img\" src=".$row["images"]."><a>
                            
                                                        
                                
</div>
</div>
<div class=\"panel2\">
<div class=\"link\"><a href=\"http://www.facebook.com/events/".$row["list"]."\" target=\"_blank\" style=\"
    color: rgb(129, 0, 146);
    cursor: pointer;
    font-weight: bold;
    text-decoration: none;
    font-family: 'lucida grande',tahoma,verdana,arial,sans-serif;
\">".$row["name"]."</a></div>
<div class=\"date\">".$row["date"]." - ".$row["day"]."</div>
</div>
<div class=\"panel3\"><div class=\"pos\">".$row["poznamka"]."</div>


</div>
</br>
                            ";
                    };
                    
                    
                    
                    
                            
            
            
                
mysql_close(); //odpojíme se z db
?> 

Vše se vyčítá z databáze.
Podmínka by měla že se nesmí zobrazit nic se starším datumem než je dnešní a to na půlnoc.
Děkuji za pomoc.
Taps
Profil
nyllo:
<?
$datum=date('Y-m-d');
   $vypis =  mysql_query("SELECT * FROM events where datum=".$datum." order by id desc limit ".$start.", ".$prispevku."");
   ?>
PS: záleží ještě v jakém formátu máš uložené datum v databázi
nyllo
Profil
mám to uložené jako datum. > Typ = date
Taps
Profil
nyllo:
Ok, příspěvek jsem poupravil
nyllo
Profil
Kód jsem upravil takto
//******************* nastavení navigace a výběr dat z databáze ******************
$start = $_GET['start'];
if(!$start)
    $start=0; // pokud nebude klepnuto na další nebo předchozí příspěvek zobrazí se od posledního
    
$datum=date('d-m-Y'); // datum

    $vypis =  mysql_query("SELECT * FROM events where datum=".$date." order by id desc limit ".$start.", ".$prispevku.""); //vybíráme data z "aktualit" a vypisujeme od posledního příspěvku

     
    
//********************************* výpis článků *********************************
        while($row = mysql_fetch_array($vypis))
                {
            
            
            echo "     <div class=\"panel\">
                                <div><a href=\"http://www.facebook.com/events/".$row["list"]."\" target=\"_blank\"><img class=\"img\" src=".$row["images"]."><a>
                            
a tentokrát mi vzniklo toto

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /data/web/virtuals/29852/virtual/www/subdom/projekt1/index.php on line 36
jenikkozak
Profil
Na 8. řádku máš špatně uvedený název proměnné.
$datum=date('d-m-Y'); // datum
 
    $vypis =  mysql_query("SELECT * FROM events where datum=".$date."
nyllo
Profil
Tvrdí mi to chybu na 12 řádku tj.. zvýrazněný text níže.

$start = $_GET['start'];
if(!$start)
    $start=0; // pokud nebude klepnuto na další nebo předchozí příspěvek zobrazí se od posledního
    
$datum=date('d-m-Y'); // datum
 
    $vypis =  mysql_query("SELECT * FROM events where datum=".$date." order by id desc limit ".$start.", ".$prispevku.""); //vybíráme data z "aktualit" a vypisujeme od posledního příspěvku
 
     
    
//********************************* výpis článků *********************************
      while($row = mysql_fetch_array($vypis))
                {
jenikkozak
Profil
Funkce mysql_fetch_array() očekává, že proměnná $vypis bude typu resource odkazující na výsledek dotazu SQL z řádku 7. Místo toho však dostane neočekávanou hodnotu false.
Jedním z důvodů, proč ti funkce mysql_query na 7. řádku vrací právě false, je ta záměna názvu proměnné, který jsem uvedl.
tiso
Profil
Skús takýto riadok 7:
$vypis =  mysql_query("SELECT * FROM events where datum='$datum' order by id desc limit $start, $prispevku");
Kde sa ti stratilo nastavenie premennej $prispevku? V [#1] ju ešte nastavuješ, inde nie. Mal by si ju nastavovať.
nyllo
Profil
kod mám takto
//******************* nastavení navigace a výběr dat z databáze ******************
$start = $_GET['start'];
if(!$start)
    $start=0; // pokud nebude klepnuto na další nebo předchozí příspěvek zobrazí se od posledního
    
   $date=date('Y-m-d');
   $vypis =  mysql_query("SELECT * FROM events where datum='.$date.' order by id desc limit  $start, $prispevku."); //vybíráme data z "aktualit" a vypisujeme od posledního příspěvku
     $pocet=mysql_num_rows(mysql_query('select * from events')); //spočítáme všechny záznamy v databázi
 
     
    
//********************************* výpis článků *********************************
        while($row = mysql_fetch_array($vypis))
                {

a stále to samé... :( já už nevím potřebuji to rozchodit
juriad
Profil
nyllo:
Dotaz do databáze obsahuje tečky, to je špatně. A jak povídal tiso, v uvedeném kusu kódu nikde není nastavená proměnná $prispevku.

"SELECT * FROM events where datum='$date' order by id desc limit $start, $prispevku"
nyllo
Profil
já to moc neumím když když něco nevím tak se zeptám ale toto už trochu více nechápu
tiso
Profil
nyllo: problém je, že máš nesprávny dotaz. Nauč sa debugovať a ošetrovať chyby:
$query = "SELECT * FROM events where datum='$date' order by id desc limit $start, $prispevku";
echo $query; //debug: vypis dotaz
$vypis =  mysql_query($query);
if (FALSE === $vypis) {//nastala chyba, vypis ju (na ostrom webe radsej zaloguj)
    echo mysql_errno($link) . ": " . mysql_error($link);
}
Dotazy môžeš spúšťať priamo na databázu (pomocou adminera, phpmyadmina, alebo priamo v konzole).
nyllo
Profil
Bohužel stále je tu nějaká chyba :(


SELECT * FROM events where datum=2013-07-11 order by id desc limit 0, 
Warning: mysql_errno() expects parameter 1 to be resource, null given in /data/web/virtuals/29852/virtual/www/subdom/projekt1/index.php on line 18

Warning: mysql_error() expects parameter 1 to be resource, null given in /data/web/virtuals/29852/virtual/www/subdom/projekt1/index.php on line 18


kod toto
<?php
include 'config.php'; //načteme soubor s údaji pro připojení k db
            mysql_connect($dbserver, $dblogin, $dbheslo); // připojíme se k db
            mysql_select_db($dbnazev); // vybereme db 
            mysql_query("SET NAMES 'UTF-8'"); // nastavíme kódování       
 

//******************* nastavení navigace a výběr dat z databáze ******************
$start = $_GET['start'];
if(!$start)
    $start=0; // pokud nebude klepnuto na další nebo předchozí příspěvek zobrazí se od posledního
    
   $date=date('Y-m-d');
   $query = "SELECT * FROM events where datum=".$date." order by id desc limit ".$start.", ".$prispevku."";
echo $query; //debug: vypis dotaz
$vypis =  mysql_query($query);
if (FALSE === $vypis) {//nastala chyba, vypis ju (na ostrom webe radsej zaloguj)
    echo mysql_errno($link) . ": " . mysql_error($link);

//********************************* výpis článků *********************************
       
            echo "     <div class=\"panel\">
                                <div><a href=\"http://www.facebook.com/events/".$row["list"]."\" target=\"_blank\"><img class=\"img\" src=".$row["images"]."><a>
                            
                                                        
                                
</div>
</div>
<div class=\"panel2\">
<div class=\"link\"><a href=\"http://www.facebook.com/events/".$row["list"]."\" target=\"_blank\" style=\"
    color: rgb(129, 0, 146);
    cursor: pointer;
    font-weight: bold;
    text-decoration: none;
    font-family: 'lucida grande',tahoma,verdana,arial,sans-serif;
\">".$row["name"]."</a></div>
<div class=\"date\">".$row["date"]." - ".$row["day"]."</div>
</div>
<div class=\"panel3\"><div class=\"pos\">".$row["poznamka"]."</div>
 
 
</div>
</br>
                            ";
                    };
                    
                    
                    
                    
                            
            
            
                
mysql_close(); //odpojíme se z db
?> 
Tori
Profil
Na ř.12 pořád chybí toto: $prispevku = "10"; // počet příspěvků které chceme vypsat na stránku
A k těm chybovým hláškám: pokud nepoužíváte paralelně několik připojení k DB, tak stačí volat bez parametru: mysql_errno() . ": " . mysql_error(); // řádek č.18

edit: A zase tam koukám zmizely nějaké další řádky kódu, řádky 17-21 (v příspěvku č.[#14]) by měly být asi takhle:
if (FALSE === $vypis) {//nastala chyba, vypis ju (na ostrom webe radsej zaloguj)
    echo mysql_errno($link) . ": " . mysql_error($link);
}

//********************************* výpis článků *********************************
while($row = mysql_fetch_array($vypis))
{
nyllo
Profil
Kod

//******************* nastavení navigace a výběr dat z databáze ******************
$start = $_GET['start'];
if(!$start)
    $start=0; // pokud nebude klepnuto na další nebo předchozí příspěvek zobrazí se od posledního
    $prispevku = "10"; // počet příspěvků které chceme vypsat na stránku
    $date=date('Y-m-d');
    $query = "SELECT * FROM events where datum=".$date." order by id desc limit ".$start.", ".$prispevku."";
echo $query; //debug: vypis dotaz
$vypis =  mysql_query($query);
if (FALSE === $vypis) {//nastala chyba, vypis ju (na ostrom webe radsej zaloguj)
    echo mysql_errno() . ": " . mysql_error();
}
 
//********************************* výpis článků *********************************
while($row = mysql_fetch_array($vypis))
{
            echo "     <div class=\"panel\">
                                <div><a href=\"http://www.facebook.com/events/".$row["list"]."\" target=\"_blank\"><img class=\"img\" src=".$row["images"]."><a>

Výsledek je ZDE
Tori
Profil
Píše vám to, že v té tabulce není žádný sloupec jménem "datum". O kousek dál čtete datum z pole takhle $row["date"]. Hm?
edit: A okolo toho datumu (teda 2013-07-11) by měly být apostrofy nebo uvozovky.
nyllo
Profil
všude uvozovky mám.

V tomto řádku jsem upravil datum na date.
"SELECT * FROM events where datum=".$date." order by id desc limit ".$start.", ".$prispevku."";
>
"SELECT * FROM events where date=".$date." order by id desc limit ".$start.", ".$prispevku."";

Nepíše mi to žádné chyby.
Nyní ale nevypíše příspěvky.

jediný text je SELECT * FROM events where date=11-07-2013 order by id desc limit 0, 10
Tori
Profil
nyllo:
"SELECT * FROM events where date='".$date."' order by id desc limit ".$start.", ".$prispevku;
nyllo
Profil
stále ne.
SELECT * FROM events where date='11-07-2013' order by id desc limit 0, 10
Tori
Profil
nyllo:
Kde se tam vzalo tohle: 11-07-2013? Správný formát pro DB je 2013-07-11, v [#16] to máte dobře.
Lamicz
Profil
"SELECT * FROM `events` where `date`='".$date."' order by `id` desc limit ".$start.", ".$prispevku;
nyllo
Profil
já to asi otočil tak to opravím ale stále to nevypisuje.

kod

<?php
include 'config.php'; //načteme soubor s údaji pro připojení k db
            mysql_connect($dbserver, $dblogin, $dbheslo); // připojíme se k db
            mysql_select_db($dbnazev); // vybereme db 
            mysql_query("SET NAMES 'UTF-8'"); // nastavíme kódování       
 

//******************* nastavení navigace a výběr dat z databáze ******************
$start = $_GET['start'];
if(!$start)
    $start=0; // pokud nebude klepnuto na další nebo předchozí příspěvek zobrazí se od posledního
    $prispevku = "10"; // počet příspěvků které chceme vypsat na stránku
    $date=date('d-m-Y');
    $query = "SELECT * FROM `events` where `date`='".$date."' order by `id` desc limit ".$start.", ".$prispevku;
echo $query; //debug: vypis dotaz
$vypis =  mysql_query($query);
if (FALSE === $vypis) {//nastala chyba, vypis ju (na ostrom webe radsej zaloguj)
    echo mysql_errno() . ": " . mysql_error();
}
 
//********************************* výpis článků *********************************
while($row = mysql_fetch_array($vypis))
{
            echo "     <div class=\"panel\">
                                <div><a href=\"http://www.facebook.com/events/".$row["list"]."\" target=\"_blank\"><img class=\"img\" src=".$row["images"]."><a>
                            
                                                        
                                
</div>
</div>
<div class=\"panel2\">
<div class=\"link\"><a href=\"http://www.facebook.com/events/".$row["list"]."\" target=\"_blank\" style=\"
    color: rgb(129, 0, 146);
    cursor: pointer;
    font-weight: bold;
    text-decoration: none;
    font-family: 'lucida grande',tahoma,verdana,arial,sans-serif;
\">".$row["name"]."</a></div>
<div class=\"date\">".$row["date"]." - ".$row["day"]."</div>
</div>
<div class=\"panel3\"><div class=\"pos\">".$row["poznamka"]."</div>
 
 
</div>
</br>
                            ";
                    };
                    
                    
                    
                    
                            
            
            
                
mysql_close(); //odpojíme se z db
?> 


databáze v xml
<pma_xml_export version="1.0" xmlns:pma="http://www.phpmyadmin.net/some_doc_url/">
    <!--
    - Structure schemas
    -->
    <pma:structure_schemas>
        <pma:database name="d29852_fbtbbp" collation="utf8_czech_ci" charset="utf8">
            <pma:table name="events">
                CREATE TABLE `events` (
                  `date` date NOT NULL,
                  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
                  `day` text COLLATE utf8_czech_ci NOT NULL,
                  `name` varchar(100) COLLATE utf8_czech_ci NOT NULL,
                  `list` varchar(30) COLLATE utf8_czech_ci NOT NULL,
                  `images` varchar(300) COLLATE utf8_czech_ci NOT NULL,
                  PRIMARY KEY (`id`)
                ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
            </pma:table>
        </pma:database>
    </pma:structure_schemas>

    <!--
    - Databáze: 'd29852_fbtbbp'
    -->
    <database name="d29852_fbtbbp">
        <!-- Tabulka events -->
        <table name="events">
            <column name="date">2013-07-12</column>
            <column name="id">3</column>
            <column name="day">Pátek</column>
            <column name="name">▲ Cafe del House | The Big Bang | Pardubice ▲</column>
            <column name="list">660984053928976</column>
            <column name="images">https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-frc3/1069421_173034442868743_248132678_n.jpg</column>
        </table>
        <table name="events">
            <column name="date">2013-07-13</column>
            <column name="id">4</column>
            <column name="day">Sobota</column>
            <column name="name">DANCE SESSIONS | MEGA CENY NA BARU | 13/07/13 | THE BIG BANG</column>
            <column name="list">142820792585587</column>
            <column name="images">https://fbcdn-sphotos-c-a.akamaihd.net/hphotos-ak-prn2/970950_1374573846096395_1296552848_n.jpg</column>
        </table>
        <table name="events">
            <column name="date">2013-07-19</column>
            <column name="id">5</column>
            <column name="day">Pátek</column>
            <column name="name">HIGH LIFE 19 | 07 | 13 THE BIG BANG PARDUBICE</column>
            <column name="list">507312876007865</column>
            <column name="images">https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-frc3/992782_1375963332624113_959280908_n.jpg</column>
        </table>
    </database>
</pma_xml_export>
Tori
Profil
nyllo:
Když počkáte ještě tak 3 hodiny, tak bude vypisovat (= žádná událost není na dnes). V tom případě by se mělo zobrazit nějaké info:
//********************************* výpis článků *********************************
if (mysql_num_rows($vypis) === 0) {
    echo '<p>Na dnes nejsou žádné události.</p>';
} else {
    while($row = mysql_fetch_array($vypis))
    {
        echo "<div class=\"panel\">
              <div><a href=\"http://www.facebook.com/events/".$row["list"]."\" target=\"_blank\"><img class=\"img\" src=".$row["images"]."><a>                                
</div>
</div>
<div class=\"panel2\">
<div class=\"link\"><a href=\"http://www.facebook.com/events/".$row["list"]."\" target=\"_blank\" style=\"
    color: rgb(129, 0, 146);
    cursor: pointer;
    font-weight: bold;
    text-decoration: none;
    font-family: 'lucida grande',tahoma,verdana,arial,sans-serif;
\">".$row["name"]."</a></div>
<div class=\"date\">".$row["date"]." - ".$row["day"]."</div>
</div>
<div class=\"panel3\"><div class=\"pos\">".$row["poznamka"]."</div>
 
</div>
</br>";
    }
}
nyllo
Profil
já potřebuji aby se mi zobrazily všechny s vyšším datem než je dnešní. (popřípadě včetně té do je dnes)
seřazené od té co je nejblíže.
Tori
Profil
Aha, tak změňte dotaz na tohle:
"SELECT * FROM `events` where `date` >= '".$date."' order by `date` asc limit ".$start.", ".$prispevku;
nyllo
Profil
vše běží jak má jen nevím jak schovat toto
SELECT * FROM `events` where `date` >= '11-07-2013' order by `date` asc limit 0, 10
Tori
Profil
To je přece tenhle řádek, pro ladění: echo $query; //debug: vypis dotaz, zakomentujte ho nebo co. Btw ten formát data je pořád opačně.
nyllo
Profil
jak otočím datum v tomto řádku
<div class=\"date\">".$row["date"]." - ".$row["day"]."</div>

mělo by to být ve formátu d/m/Y
Tori
Profil
Buď v PHP:
$datum = date('d/m/Y', strtotime($row['date']));
echo '<div class="date">'.$datum.' - '.$row['day'].'</div>';
anebo v SQL:
// formátovaný datum ve výsledku přepíše tu původní hodnotu, proto "as 'date'" aby se jmenoval stejně
$query = "SELECT *, DATE_FORMAT(`date`, '%d/%m/%Y') as 'date' FROM `events` where `date` >= '".$date."' order by `date` asc limit ".$start.", ".$prispevku;
// anebo vyjmenovat všechny sloupce, které potřebujete
$query = "SELECT `list`, `images`, `name`, `day`, `poznamka`, DATE_FORMAT(`date`, '%d/%m/%Y') as 'date' FROM `events` where `date` >= '".$date."' order by `date` asc limit ".$start.", ".$prispevku;
« 1 2 »

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: