Jump to content
php.lv forumi

PHP + MySQL palidziba


Sangsom

Recommended Posts

Sveicināti, lūdzu jūsu palīdzību, tākā pats esmu iesācējs šajā jomā, ceru ka varēšu atrast palīdzību šeit..

Lieta sekojoša ir funkcija kurā vajag ierakstīt attiecigu kodu par kuru man nav ne jausmas lai dabutu rezultātu no MySQL:

Funckija:

function showGrid($date) {
global $title, $niceday, $start_time, $end_time, $venue, $city, $state, $cat, $color, $background, $ed, $usr, $o, $c, $m, $a, $y, $w, $lang, $ap, $status;
if ($start_time[$date]) {
	ksort($start_time[$date]);
	echo "<ul>\n";
	while (list($t) = each($start_time[$date])) {
		while (list($id,$value) = each($start_time[$date][$t])) {
			echo "<li>";
			echo "<div class=\"item\"";
			if ($color[$id]) echo " style=\"color: ".$color[$id]."; background: ".$background[$id].";\"";
			echo ">";
			echo "<div class=\"time\">".$value;
			if ($end_time[$date][$t][$id]) echo " - ".$end_time[$date][$t][$id];
			echo "</div>\n";

			echo "<div class=\"title\"><a href=\"show_event.php?id=".$id."&o=".$o."&c=".$c."&m=".$m."&a=".$a."&y=".$y."&w=".$w."\" onClick=\"openPic('show_event.php?id=".$id."&size=small','pop','600','400'); window.newWindow.focus(); return false\"";
			if ($color[$id]) echo " style=\"color: ".$color[$id]."; background: ".$background[$id].";\"";
			echo ">".$title[$id]."</a></div>\n";
			if ($venue[$id]) {
				echo "<div class=\"venue\">".$venue[$id]."</div>\n";
				if ($city[$id]) {
					echo "<div class=\"location\">".$city[$id];
					if ($state[$id]) echo ", ".$state[$id];
					echo "</div>\n";
				}
			}
			echo "</div>";
			if ($ed[$id]==true) {
				echo "<div class=\"edit\">";
				if (($ap[$id]==true) && (($status[$id] == 2) || ($status[$id] == 3))) echo "[<a href=\"admin_actions.php?id=".$id."&o=".$o."&c=".$c."&m=".$m."&a=".$a."&y=".$y."&w=".$w."&mode=".approve."\">".$lang["approve"]."</a>]  ";
				echo "[<a href=\"edit_event.php?id=".$id."&o=".$o."&c=".$c."&m=".$m."&a=".$a."&y=".$y."&w=".$w."\" onClick=\"openPic('edit_event.php?id=".$id."&size=small','pop','650','600'); window.newWindow.focus(); return false\">".$lang["edit"]."</a>]  [<a href=\"delete_event.php?id=".$id."&o=".$o."&c=".$c."&m=".$m."&a=".$a."&y=".$y."&w=".$w."\">".$lang["delete"]."</a>]</div>\n";
			}
			echo "</li>\n";
		}
	}
	echo "</ul>\n";
}
}

 

Citā koda daļā es vēlamo rezultātu sasniedzu ar šo koda rindu:

 

$reg_name = mysql_result(mysql_query("select reg_name from ".$table_prefix."users WHERE user_id = " .$user_id),0,0);
echo "<strong>".$reg_name."</strong><br />\n";

 

Bet kad vēlos viņu ievietot augstākminētaja funkcijā šis kods nedod vēlamo rezultātu, viņš vienkārši nestrādā, pats netieku skaidrībā kāpec.

Paldies, ceru saprotami uzrakstīju.

Edited by Sangsom
Link to comment
Share on other sites

Tā funkcija ir pilnīgs vājprāts. 20+ globālie mainīgie vienas funkcijas ietvaros ir taisnākais ceļš uz elli!

 

Es tev ieteiktu pēc iespējas ātrāk saprast, kā tikt vaļā no globālo mainīgo izmantošanas funkcijās.

Link to comment
Share on other sites

Tāpēc, ka tajā funkcijā nav ne $table_prefix, ne $user_id. Noteikti šie jāpieraksta galā global.

 

Nepalidz.

 

Tā funkcija ir pilnīgs vājprāts. 20+ globālie mainīgie vienas funkcijas ietvaros ir taisnākais ceļš uz elli!

 

Es tev ieteiktu pēc iespējas ātrāk saprast, kā tikt vaļā no globālo mainīgo izmantošanas funkcijās.

 

Nevaru strīdēties man tiešām nav ne jausmas vai tas ir ārprāts vai nē, bet ne to es vēlējos uzzināt, varbūt tomēr varētu palīdzēt par tēmu?

Kā jau teicu es pavisam nesen esmu sācis mācīties PHP un MySQL un šodbrīd man ir diezgan maza sajēga par šo visu, bet uzdevums ir jāizpilda..

Link to comment
Share on other sites

Sāc ar to, ka raksti mazliet smukāk un izvadi mysql kļūdas paziņojumus:

 

$reg_name = mysql_result(mysql_query("select reg_name from ".$table_prefix."users WHERE user_id = " .$user_id),0,0);
echo "<strong>".$reg_name."</strong><br />\n";

 

pārveido par

 

$qry = "select reg_name from ".$table_prefix."users WHERE user_id = " .$user_id;
$result = mysql_query() or trigger_error("Query: " . $qry . "<br/>MySQL error:" . mysql_error());
$reg_name = mysql_result($result,0,0);
echo "<strong>".$reg_name."</strong><br />\n";

 

Ja gadījumā problēma ir MySQL pusē, uzreiz par to redzēsi paziņojumu. Papildus tev vajadzētu ieslēgt kaut kur pašā skripta sākumā.

 

error_reporting(E_ALL);
ini_set('display_errors', 1);

 

Tas arī jūtami palīdzēs atrast problēmas kodā.

Link to comment
Share on other sites

Pārveidoju, bet nav nekāda rezultāta, ne erroru nekas.

 

Kad es pieņemsim ievietoju, šo kodu:

$reg_name = mysql_result(mysql_query("select reg_name from ".$table_prefix."users WHERE user_id = " .$user_id),0,0);
echo "<strong>".$reg_name."</strong><br />\n";

ārpus funkcijas tad viņš dod attiecīgo rezultātu, bet kad iekša funkcijā liek tad nekā..

A jūsu pārveidotais kods pat ārpus funkcijas nedod rezultātu, bet kad vel to pēdejo kodu "error_reporting" uzlieku tad bail pat skatīties paliek..

Link to comment
Share on other sites

aizmirsu mysql_query() iekšpusē iemest $qry mainīgo:

 

$qry = "select reg_name from ".$table_prefix."users WHERE user_id = " .$user_id;
$result = mysql_query($qry) or trigger_error("Query: " . $qry . "<br/>MySQL error:" . mysql_error());
$reg_name = mysql_result($result,0,0);
echo "<strong>".$reg_name."</strong><br />\n";

 

Vari pamēģināt trigger_error nomainīt pret kādu print un vajadzētu tomēr kaut kādam rezultātam rādīties.

 

Un slēdz tik to error_reporting iekšā un cīnies, kamēr vairs nav bail skatīties.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...