Autor Zpráva
pepan
Profil
Ahoj, mám takovýto kód na připojení k databázi ( je to z knihy PHP5, MySQL, Apache - Vytváříme webové aplikace ) :
<?php

define('SQL_HOST','host' );
define('SQL_USER','user' );
define('SQL_PASS','pass' );
define('SQL_DB','db' );

$spojení = mysql_connect( SQL_HOST, SQL_USER, SQL_PASS )
or die('Pøipojení k databázi selhalo; ' . mysql_error() );

mysql_select_db( SQL_DB, $spojeni )
or die('Nelze nastavit pracovní databázi; ' . mysql_error() );
?>

Jenže to jaksi nefunguje, na každé stránce, kde je potřeba se připojit k DB to vypíše: Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in C:Program Filesxampphtdocsxamppweb5_knizkakapitola16spojeni.php on line 10
Nelze nastavit pracovní databázi;
. Kde je chyba? Díky
nightfish
Profil
$spojení = mysql_connect
má tam být $spojení nebo $spojeni?
pepan
Profil
je tam napsané $spojení, ostatně většina proměnných je v této knize psáno s diakritikou. Což asi není moc dobré, že?
djlj
Profil
pepan
Druhou proměnnou máš ale bez diakritiky. Každopádně bych se i tak přiklonil k pojmenování všech proměnných bez diakritiky.
pepan
Profil
djlj
dík, už to funguje, vůbec jsem si toho nevšiml.
pepan
Profil
Hm, tak tím to nekončí. Objevila se další chyba v jiném kódu : Parse error: syntax error, unexpected T_STRING in C:Program Filesxampphtdocsxamppweb5_knizkakapitola16funkce.php on line 99

<?php

function trimBody( $text_zprávy, $limit_znakù=100, $stop_znak="@@@",
$poèet_stop_znakù=1 ) {
$pozice = 0;
$zkráceno = FALSE;
for ( $i = 1; $i <= $poèet_stop_znakù; $i++) {
if ( $tmp = strpos( $text_zprávy, $stop_znak, $pozice ) ) {
$pozice = $tmp;
$zkráceno = TRUE;
} else {
$pozice = strlen( $text_zprávy );
$zkráceno = FALSE;
break;
}
}
$text_zprávy = substr( $text_zprávy, 0, $pozice );

if ( strlen( $text_zprávy ) > $limit_znakù ) {
$text_zprávy = substr( $text_zprávy, 0, $limit_znakù );
$text_zprávy = substr( $text_zprávy, 0, strrpos( $text_zprávy,' ' ) );
$zkráceno = TRUE;
}
if ( $zkráceno ) $text_zprávy .= ' ...';
return $text_zprávy;
}

function msgBox( $m, $t, $d="index.php", $s="Info" ) {
$zpráva = "<div id="requestConfirm" . $s . "">";
$zpráva .= "<h2>" . $t . "</h2> ";
$zpráva .= "<p>" . $m . "</p>";
$zpráva .= "<p><a href="" . $d . "" ";
$zpráva .= "class="buttonlink">";
$zpráva .= "Ano</a>";
$zpráva .= "<a href="index.php" class="buttonlink">";
$zpráva .= "Ne</a></p>";
$zpráva .= "</div>";
return $zpráva;
}

function getForum( $id ) {
$sql = "SELECT forum_name as name, forum_desc as description, " .
"forum_moderator as moderator " .
"FROM forum_forum " .
"WHERE id = " . $id;
$výsledek = mysql_query( $sql )
or die( mysql_error() . "<br>" . $sql );
$øádek = mysql_fetch_array( $výsledek );
return $øádek;
}

function getForumID( $id_konverzace ) {
$sql = "SELECT forum_id FROM forum_posts WHERE id=$id_konverzace";
$výsledek = mysql_query( $sql )
or die( mysql_error() . "<br>" . $sql );
$øádek = mysql_fetch_array( $výsledek );
return $øádek['forum_id'];
}

function breadcrumb( $id, $patøí_do="F" ) {
$oddìlovaè = "<span class="bcsep">";
$oddìlovaè .= " &middot; ";
$oddìlovaè .= "</span>";
if ( $patøí_do == "P" ) {
$sql = "SELECT forum_id, subject FROM forum_posts " .
"WHERE id = " . $id;
$výsledek = mysql_query( $sql )
or die( mysql_error() . "<br>" . $sql );
$øádek = mysql_fetch_array( $výsledek );
$id = $øádek['forum_id'];
$téma = $øádek['subject'];
}
$øádek = getForum( $id );
$bc = "<a href="index.php">Hlavní stránka</a>$oddìlovaè";
switch ( $patøí_do ) {
case "P":
$bc .= "<a href="zobrazit_forum.php?f=$id">" .$øádek['name'] .
"</a>$oddìlovaè" . $téma;
break;

case "F":
$bc .= $øádek['name'];
break;
}
return "<h4 class="breadcrumb">" . $bc . "</h4>";
}

function showTopic( $id_konverzace, $nezkracovat=TRUE ) {
global $spojení;
global $id_uživatele;
global $limit;

echo breadcrumb( $id_konverzace, "P" );
if ( isset( $_GET['page']) ) {
$stránka = $_GET['page'];
} else {
$stránka = 1;
}
if ( $limit == "" ) $limit = 25;
$start = ( $stránka – 1 ) * $limit; // řádek 99
if ( isset( $_SESSION['user_id']) ) {
echo topicReplyBar( $id_konverzace, getForumID( $id_konverzace ), "right" );
}
$sql = "SELECT SQL_CALC_FOUND_ROWS " .
"p.id, p.subject, p.body, p.date_posted, " .
"p.date_updated, u.name as author, u.id as author_id, " .
"u.signature as sig, c.count as postcount, " .
"p.forum_id as forum_id, f.forum_moderator as moderator, " .
"p.update_id, u2.name as updated_by " .
"FROM forum_forum f " .
"JOIN forum_posts p " .
"ON f.id = p.forum_id " .
"JOIN forum_users u " .
"ON u.id = p.author_id " .
"LEFT JOIN forum_users u2 " .
"ON u2.id = p.update_id " .
"LEFT JOIN forum_postcount c " .
"ON u.id = c.user_id " .
"WHERE ( p.topic_id = $id_konverzace OR p.id = $id_konverzace ) " .
"ORDER BY p.topic_id, p.date_posted " .
"LIMIT $start,$limit";
$výsledek = mysql_query( $sql, $spojení )
or die( mysql_error() . "<br>" . $sql );
$odkazy_na_stránky = paginate( $limit );
if ( mysql_num_rows( $výsledek ) == 0 ) {
$informace = "Nenalezeny žádné pøíspìvky. Chcete být první, " .
"kdo zahájí konverzaci?";
$popisek = "Žádné pøíspìvky...";
$cíl = "sestavit.php?forumid=" . $id_fóra;
$dùležitost = "Info";
$zpráva = msgBox( $informace, $popisek, $cíl, $dùležitost );
echo $zpráva;
} else {
echo "<table class="forumtable" cellspacing="0" ";
echo "cellpadding="2"><tr>";
echo "<th class="author">Autor</th>";
echo "<th class="post">Pøíspìvek</th>";
echo "</tr>";
$tøída_øádku = "";
while ( $øádek = mysql_fetch_array( $výsledek ) ) {
$poslední_aktualizace = "";
$editace_odkazu = "";
$odstranit_odkaz = "";
$odkaz_pro_odpovìï = "&nbsp;";
$poèet_pøíspìvkù = "";
$datum_pøíspìvku = "";
$podpis = "";
if ( $nezkracovat ) {
$tìlo = $øádek['body'];
if ( isset( $_SESSION['user_id']) ) {
$odkaz_pro_odpovìï = "<a href="sestavit.php?forumid=" .
$øádek['forum_id'] . "&topicid=$id_konverzace&reid=" .
$øádek['id'] .
"" class="buttonlink">ODPOVÌDÌT</a>&nbsp;";
} else {
$odkaz_pro_odpovìï = "";
}
if ( $øádek['update_id'] > 0 ) {
$poslední_aktualizace =
"<p class="smallNote">Poslední aktualizace: " .
date( "d.m.Y h:i:s", strtotime( $øádek['date_updated']) ) .
" upravil " . $øádek['updated_by'] . "</p>";
}
if ( ( $id_uživatele == $øádek['author_id']) or
( $id_uživatele == $øádek['moderator']) or
(isset( $_SESSION['oprávnìní']) and ( $_SESSION['oprávnìní'] > 2 ))) {
$editace_odkazu = "<a href="sestavit.php?a=edit&post=" .$øádek['id'] .
"" class="buttonlink">UPRAVIT</a>&nbsp;";
$odstranit_odkaz =
"<a href="transakce_potvrdit.php?akce=odstranitPrispevek&" .
"id=" . $øádek['id'] .
"" class="buttonlink">ODSTRANIT</a>&nbsp;";
}
$poèet_pøíspìvkù = "<br><span class="textsmall">Poèet pøíspìvkù: " .
( $øádek['postcount']==""?"0":$øádek['postcount']) . "</span>";
$datum_pøíspìvku = $øádek['date_posted'];
$podpis = ( $øádek['sig'] != ""?"<p class="sig">" .
bbcode( nl2br( $øádek['sig']) ):"" ) ."</p>";
} else {
$tìlo = trimBody( $tìlo );
}
$tøída_øádku = ( $tøída_øádku == "row1"?"row2":"row1" );
echo "<tr class="$tøída_øádku">";
echo "<td class="author">" . $
djlj
Profil
Super. Tak aspoň označ ten 99. řádek.
tiso
Profil
pepan ...komu niet rady...
Naozaj nepoužívaj diakritiku pre url/premenné/konštanty/názvy funkcií. Okrem toho nepísaným pravidlom je použitie anglického jazyka, alebo aspoň jedného jazyka pre celý program, a nie tvoj česko-anglický mix.
Okrem toho tam máš pár začiatočníckych chýb - zbytočné kopírovanie premenných, zlé podmienky a podobne...
pepan
Profil
je označený - tučně + je tam popisek // řádek 99, omlouvám se, že jsem to zapomněl připsat
djlj
Profil
Aha, tak to se omlouvám já. Jak jsem to roloval, tak jsem to přehlédl :).
Bude to tím á v proměnné $stránka.
pepan
Profil
djlj
tím to není, nahradil jsem všechny písmenka s diakritikou a pořád to píše tu samou chybovou hlášku...
djlj
Profil
pepan
Zkus $start = round($stránka – 1) * $limit;
pepan
Profil
djlj
Nic se nezměnilo
pepan
Profil
Nikdo neví, v čem by mohl být zakopaný pes?
pepan
Profil
tak už jsem přišel na to, čím to bylo... byly tam použity nesprávné znaky " - ". Když tak můžete toto vlákno uzavřít. Díky
Toto téma je uzamčeno. Odpověď nelze zaslat.

0