| 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