Dlaczego w PHP 4.4 to działa a w PHP 5.6 nie?

0

Dlaczego w PHP 4.4 ten skrypt wyświetla zmienną $tytul a w PHP 5.6 nie!?

<? if($t == "ph") {

$query = mysql_query("SELECT * FROM slownik WHERE id='$id'");
while($row = mysql_fetch_array($query)) {
$znaczenie = $row['znaczenie'];
$tytul=$row['tytul'];
}
}
if($t == "ph") { echo $tytul; } ?>

Może ktoś wie?

Dziękuje z góry za pomoc

0

http://sandbox.onlinephpfunctions.com/ - sprawdziłem to tutaj i działa dobrze na 4.4 i na 5.6. Może gdzieś indziej w kodzie masz coś zwalone. Poza tym jeśli popatrzeć na ten kod jak na jakąś funkcję - to zmienna tytuł deklarowana jest w innym zasięgu, więc może gdzieś tu tkwi problem.

Po co Ci w ogóle takie rozkminy? php4.4 nie uzywa sie juz od ponad 10 lat. Funkcje mysql_* są przestarzałe, w php7 z tego co wiem to już całkowicie wypadły.

Testowałem to na takim kodzie

$t = 'ph';
$i = 10;
if ($t == "ph") {
    while ($i < 15) {
        $tytul = 6 + $i;
        
        echo $tytul.'<br/>';
        
        $i++;
    }


}
if ($t == "ph") {
    echo $tytul;
}
0

A nie chodzi o <?php zamiast <? ?? To jakimś parametrem się zmieniało, ale ostatnio to z 6 lat temu to robiłem...

0

A dlaczego ten skrypt w PHP 4.4 wyświetla zmienną $tytul3 a w PHP 5.6 nie!?

 $ta = 'ih';
if($ta == "ih") {
$query = mysql_query("SELECT tytul FROM slownik WHERE tytul LIKE '$l%' ORDER BY tytul ASC limit 0,10");
while($row = mysql_fetch_array($query)) {
$tytul3=str_replace(".", "", $row['tytul']).' , etc ... '; }
}
echo $tytul3;
0

Bo nie masz konkatenacji tylko przypisanie w pętli while.

$ta = 'ih';
        var_dump($ta);
        var_dump($ta == "id");
        if ($ta == "ih") {
            var_dump("inside if");
            $query = mysql_query("SELECT tytul FROM slownik WHERE tytul LIKE '$l%' ORDER BY tytul ASC limit 0,10");
            var_dump($query);
            while ($row = mysql_fetch_array($query)) {
                var_dump($row);
                $tytul3 = str_replace(".", "", $row['tytul']) . ' , etc ... ';
                var_dump($tytul3);
            }
        }
        var_dump($tytul3);
        echo $tytul3;

Wklej output tego.

0

Ma czy nie ma kontkatenacji, powinno mu wyświetlić ostatnią wartość. Co znaczy, że nie wyświetla? masz włączone pokazywanie błędów? jest biała strona?

0

A może ktoś to wie - dlaczego w PHP 4.4 ten skrypt wyświetla zmienną $l w linkach a w PHP 5.6 nie!?


```<?php 
$litera = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","r","s","t","u","v","w","z");

for ($i=0; $i<=21; $i++)
{

echo "<span><a href=\"/03.php?t=ih&l=$litera[$i]\">$litera[$i]</a></span>";

if($i=="28")
{ 
 echo"<br/><br/>";
}
else
{ 
 echo " ::  ";
}
}

if($_GET['t'] =='ih')
{

$zap2 = mysql_num_rows(mysql_query("SELECT tytul FROM slownik WHERE tytul LIKE '$_GET[l]%' ORDER BY tytul ASC ") ); 

$po_ile=56; $min = $_GET[min];
		if (!isset($min) || $min=="") $min=0;
		if (!isset($max)) $max=$min+$po_ile;
		$prev=$min-$po_ile; $next=$min+$po_ile;
		$ktora_strona = ($min/$po_ile)+1;
		if ($ktora_strona==0) { $ktora_strona=1; } $ktora_strona = floor($ktora_strona);
		$dod='';
		if ($prev >= 0) {
			  $dod .= "<a href=\"/03.php?t=ih&l=".$l."&min=$prev\">< prev</a> ";
				}

  if ($prev >= 0 OR ($next >= $po_ile AND $zap2 > $next))
            {
               $stron=floor($zap2/$po_ile);
               $ostatnie=$stron-2;

               for ($i=0; $i<=$stron;$i++) {
               $strona=$i*$po_ile;
               $j=$i+1;
                  if ($stron < 10 OR $j <= 1000) { 
			 $dod .= "<a href=\"/03.php?t=ih&l=".$l."&min=$strona\">$j</a> | ";

				}
                  
				  elseif ($stron > 10 AND $j > $ostatnie) {
                  $ostatnia=$ostatnie+1;
                  if ($j==$ostatnia) $dod .= "... | ";
                  { 
				  $dod .= " <a href=\"/03.php?t=ih&l=".$l."&min=$strona\">$j</a> | ";
 
				 }  
				  }
               
			   }
            
			} 
			
			
			$dod.=' ';
		if ($next >= $po_ile AND $zap2 > $next)	{
		
		$dod .= " <a href=\"/03.php?t=ih&l=".$l."&min=$next\">next ></a> ";
		}
		
		
		$min_list = $min+1;
		if ($next >= $zap2) { $next_list=$zap2; } else { $next_list=$next; }
		if ($zap2>$po_ile)
		{
			$listwa = "<span>wyświetlono: $min_list - $next_list z <b>$zap2</b>   $dod <br /></span>"; }
			
			
     echo $listwa;
			
 }
		
?>

chodzi np.: o to <a href=\"/03.php?t=ih&l=".$l."&min=$prev\">< prev</a>
1

Piszesz jakąś pracę dyplomową nt. wersji PHP?

1 użytkowników online, w tym zalogowanych: 0, gości: 1