Autor | Zpráva | ||
---|---|---|---|
pechl Profil * |
#1 · Zasláno: 14. 3. 2008, 17:54:04
Prosím o radu - nevím, kde mám chybu, když se mi nezobrazuje žádný článek? Každý název článku funguje jako odkaz na něj, bez použití třídy to funguje spolehlivě, ale nevím, jak zapsat odkaz pomocí třídy? Výstup nic nevypisuje.
Použitá třída mysql: /* Vrátí řádek sady výsledků jako asociované pole */ function fetchArray() { $row = @mysql_fetch_array($this->result); return $row; Úsek z kódu: while($row=$mysqldb->fetchArray()) echo "<a href=\"clanek.php?ID=". $row=$mysqldb->fetchArray("id") ."\">"; echo "$row->nazev"."</a><br />"; Děkuji Petr |
||
nightfish Profil |
#2 · Zasláno: 14. 3. 2008, 17:57:45
while($row=$mysqldb->fetchArray())
echo "<a href=\"clanek.php?ID=". $row=$mysqldb->fetchArray("id") ."\">"; echo "$row->nazev"."</a><br />"; by imho mělo být spíš while($row=$mysqldb->fetchArray()) echo "<a href=\"clanek.php?ID=". $row["id"] ."\">"; echo $row["nazev"]."</a><br />"; |
||
pechl Profil * |
#3 · Zasláno: 14. 3. 2008, 18:10:42
Díky.
To jsem si myslel, ale také to nic nezobrazí. Není problém v té třídě? |
||
pechl Profil * |
#4 · Zasláno: 14. 3. 2008, 19:29:11
Stále žádný výstup, proto znovu prosím o radu. Tady je celý skript i s doporučenou úpravou:
<?php include ("../mysql.class.php"); // Vytvoří nový objekt $mysqldb = new mysql("", "", "", ""); // Připojení a výběr databáze $mysqldb->connect(); $mysqldb->select(); $dnes = Date ("YmdHis"); // Dotaz do databáze $mysqldb->query(" SELECT * FROM clanky, pocitadlo WHERE clanky.id_cl = pocitadlo.id_cl AND clanky.datum <= $dnes ORDER BY pristupy DESC LIMIT 5 ") or die("chyba"); while($row=$mysqldb->fetchArray()) echo"<a href=\"clanek.php?ID=". $row["id_cl"] ."\">"; echo $row["nazev"]."</a><br />"; ?> Děkuji Petr. |
||
Mastodont Profil |
#5 · Zasláno: 14. 3. 2008, 20:59:13
No vzhledem k tomu, že nevidíme tu třídu .. zkus postupně vypouštět některé části kódu, dokud to nezačne fungovat. Začal bych vypuštěním
AND clanky.datum <= $dnes ORDER BY pristupy DESC LIMIT 5 |
||
pechl Profil * |
#6 · Zasláno: 14. 3. 2008, 21:06:44
Pro echo $row["nazev"]."<br />"; výpis funguje. Vypadá to na chybu ve vytvořeném odkazu:
echo"<a href=\"clanek.php?ID=". $row["id_cl"] ."\">"; echo $row["nazev"]."</a><br />"; . Vypouštění kódu jsem zkoušel, v tom to není. |
||
pechl Profil * |
#7 · Zasláno: 14. 3. 2008, 21:18:22
Ještě ta třída:
<?php class mysql { private $linkid; // identifikátor připojení k MySQL private $host; // MySQL server private $user; // MySQL username private $pswd; // MySQL password private $db; // MySQL database private $result; // výsledky dotazu private $querycount; // celkový počet vykonaných dotazů /* konstruktor třídy, inicializuje členské proměnné */ function __construct($host, $user, $pswd, $db) { $this->host = $host; $this->user = $user; $this->pswd = $pswd; $this->db = $db; } /* připojení k MySQL serveru */ function connect() { try { $this->linkid = @mysql_connect($this->host,$this->user,$this->pswd); if (! $this->linkid) throw new Exception("Nelze se připojit k serveru MySQL."); } catch (Exception $e) { die($e->getMessage()); } } /* výběr databáze */ function select() { try { mysql_query("SET character_set_client=cp1250"); mysql_query("SET character_set_connection=cp1250"); mysql_query("SET character_set_results=cp1250"); if (! @mysql_select_db($this->db, $this->linkid)) throw new Exception("Nelze se připojit k databázi MySQL."); } catch (Exception $e) { die($e->getMessage()); } } /* vykonání databázového dotazu */ function query($query) { try { $this->result = @mysql_query($query,$this->linkid); if (! $this->result) throw new Exception("Databázový dotaz se nezdařil."); } catch (Exception $e) { echo($e->getMessage()); } $this->querycount++; return $this->result; } /* celkový počet řádků, které dotaz ovlivnil */ function affectedRows() { $count = @mysql_affected_rows($this->linkid); return $count; } /* celkový počet řádků vrácený dotazem */ function numRows() { $count = @mysql_num_rows($this->result); return $count; } /* vrátí řádek sady výsledků jako objekt */ function fetchObject() { $row = @mysql_fetch_object($this->result); return $row; } /* vrátí řádek sady výsledků jako indexované pole */ function fetchRow() { $row = @mysql_fetch_row($this->result); return $row; } /* vrátí řádek sady výsledků jako asociované pole */ function fetchArray() { $row = @mysql_fetch_array($this->result); return $row; } } ?> |
||
Časová prodleva: 16 let
|
0