Autor | Zpráva | ||
---|---|---|---|
nyllo Profil |
#1 · Zasláno: 9. 7. 2013, 13:25:31
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.""); ?> |
||
nyllo Profil |
#3 · Zasláno: 10. 7. 2013, 11:43:45
mám to uložené jako datum. > Typ = date
|
||
Taps Profil |
#4 · Zasláno: 10. 7. 2013, 11:48:53
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> 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 |
#6 · Zasláno: 10. 7. 2013, 13:30:23
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 |
#8 · Zasláno: 10. 7. 2013, 15:45:21
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 |
#9 · Zasláno: 10. 7. 2013, 15:49:11
Skús takýto riadok 7:
$vypis = mysql_query("SELECT * FROM events where datum='$datum' order by id desc limit $start, $prispevku"); $prispevku ? V [#1] ju ešte nastavuješ, inde nie. Mal by si ju nastavovať.
|
||
nyllo Profil |
#10 · Zasláno: 10. 7. 2013, 17:23:44
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 |
#11 · Zasláno: 10. 7. 2013, 17:31:09
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 |
#12 · Zasláno: 10. 7. 2013, 17:46:00
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 |
#13 · Zasláno: 10. 7. 2013, 21:50:28
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); } |
||
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 |
#16 · Zasláno: 11. 7. 2013, 19:56:39
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 |
#18 · Zasláno: 11. 7. 2013, 20:38:04
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 |
#19 · Zasláno: 11. 7. 2013, 20:41:07
nyllo:
"SELECT * FROM events where date='".$date."' order by id desc limit ".$start.", ".$prispevku; |
||
nyllo Profil |
#20 · Zasláno: 11. 7. 2013, 21:02:45
stále ne.
SELECT * FROM events where date='11-07-2013' order by id desc limit 0, 10
|
||
Tori Profil |
#21 · Zasláno: 11. 7. 2013, 21:06:51
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 |
#23 · Zasláno: 11. 7. 2013, 21:37:51
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 |
#24 · Zasláno: 11. 7. 2013, 21:44:07
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 |
#25 · Zasláno: 11. 7. 2013, 21:48:29
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 |
#26 · Zasláno: 11. 7. 2013, 21:52:25
Aha, tak změňte dotaz na tohle:
"SELECT * FROM `events` where `date` >= '".$date."' order by `date` asc limit ".$start.", ".$prispevku; |
||
nyllo Profil |
#27 · Zasláno: 11. 7. 2013, 21:58:15
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 |
#28 · Zasláno: 11. 7. 2013, 21:59:47
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 |
#29 · Zasláno: 11. 7. 2013, 22:04:44
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 |
#30 · Zasláno: 11. 7. 2013, 22:16:18
Buď v PHP:
$datum = date('d/m/Y', strtotime($row['date'])); echo '<div class="date">'.$datum.' - '.$row['day'].'</div>'; // 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; |
||
Téma pokračuje na další straně.
|
0