Autor Zpráva
pechl
Profil *
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
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 *
Díky.
To jsem si myslel, ale také to nic nezobrazí. Není problém v té třídě?
pechl
Profil *
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
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 *
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 *
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;
}

}
?>

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:

0