Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Допустил ошибку в скрипте


Автор: Диман 29.8.2006, 16:35
Всем привет.Есть таблица с отображением картинки и её имени.Но была проблема с именами картинок.Я исправил скрипт пхп на другой и теперь таблица не работает как нужно.Помогите найти где я допустил ошибку.

Было так!

Код
<?php
function number_to_image($n){
    $arr=array('',
        'картинка 1',
        'картинка 2',
        'картинка 3',
        'картинка 4',
        'картинка 5',
        'картинка 6',
        'картинка 7',
        'картинка 8',
        'картинка 9',
        'картинка 10',
        'картинка 11',
        'картинка 12',
        'картинка 13',
        'картинка 14',
        'картинка 15',
        'картинка 16',
        'картинка 17');
    $a=array("img/image".$n.".jpg",$arr[$n]);
    return $a;
}
function get_image(){
    $h = date("G");
    $d = date("w");
    if(($d>0) and ($d<6)){//понедельник-пятница
        if($h<7){
            if($d==1){//понедельник
                return number_to_image(17);
            }else{//не понедельник
                return number_to_image(5);
            }
        }elseif(($h>=7) and ($h<11)){
            return number_to_image(1);
        }elseif(($h>=11) and ($h<15)){
            return number_to_image(2);
        }elseif(($h>=15) and ($h<19)){
            return number_to_image(3);
        }elseif(($h>=19) and ($h<23)){
            return number_to_image(4);
        }elseif($h>=23){
            return number_to_image(5);
        }
    }elseif($d==6){//суббота
        if($h<9){
            return number_to_image(5);
        }elseif(($h>=9) and ($h<12)){
            return number_to_image(7);
        }elseif(($h>=12) and ($h<14)){
            return number_to_image(8);
        }elseif(($h>=14) and ($h<18)){
            return number_to_image(9);
        }elseif(($h>=18) and ($h<23)){
            return number_to_image(10);
        }elseif($h>=23){
            return number_to_image(11);
        }
    }elseif($d==0){//воскресенье
        if($h<9){
            return number_to_image(11);
        }elseif(($h>=9) and ($h<12)){
            return number_to_image(12);
        }elseif(($h>=12) and ($h<14)){
            return number_to_image(13);
        }elseif(($h>=14) and ($h<16)){
            return number_to_image(14);
        }elseif(($h>=16) and ($h<22)){
            return number_to_image(15);
        }elseif($h>=22){
            return number_to_image(16);
        }
    }
}
$arr = get_image();
?>
<HTML><HEAD><TITLE>Now playing</TITLE>
<link href="../index.css" rel="stylesheet" type="text/css">
</HEAD>
<BODY leftMargin=0 topMargin=0>
    <table width="206" border="0" cellpadding="0" cellspacing="0">
    <tr><td height="36" width="206" style="background-image:url(../img/bgm1.gif); background-position:left top; background-repeat:no-repeat;">
     <table width="206" height="36" border="0" cellpadding="0" cellspacing="0">
     <tr>
     <td width="66" style="padding-left:20px;"><img src="../img/icon_eteryje.gif" border="0"></td>
     <td width="140" class="title">On air</td>
     </tr>
     </table>
    </td></tr>
    <tr><td height="130" align="left" style="background-image:url(../img/bg3.gif); background-position:left top; background-repeat:repeat-y;" class="txtleft" valign="middle">
         <img src="../img/bg10.gif" border="0"><a href="../indexmain.php@2_2F11_2F" target="_parent"><img src="../<?php print($arr[0]); ?>" border="0"> </a> <br><img src="../img/blank.gif" height="5"><br><div align="center"><?php print($arr[1]); ?></div>
    </td></tr>
    <tr><td height="3" style="background-image:url(../img/bg4.gif); background-position:left top; background-repeat:no-repeat;"><img src="../img/blank.gif" border="0"></td></tr>
    </table>
</BODY>
</HTML>


Я исправил на так

Код
<?php

$H = (int)date("H");
$D = (int)date("w");

if (preg_match("/[1-5]/", $D)) {
    if ($H >= 7 && $H < 10) {
        $image = "image1.jpg";
        $text = "Твой текст 1";
    } else if ($H >= 10 && $H < 13) {
        $image = "image2.jpg";
        $text = "Твой текст 2";
    } else if ($H >= 13 && $H < 16) {
        $image = "image3.jpg";
        $text = "Твой текст 3";
    } else if ($H >= 16 && $H < 19) {
        $image = "image4.jpg";
        $text = "Твой текст 4";
    } else if ($H >= 19 && $H < 23) {
        $image = "image5.jpg";
        $text = "Твой текст и т.д.";
    } else {
        $image = "image6.jpg";
        $text = "Твой текст и т.д.";
    }
} else {
    if ($D == "6") {
        if ($H >= 7 && $H < 9) {
           $image = "image6.jpg";
        $text = "Твой текст и т.д.";
        } else if ($H >= 9 && $H < 12) {
            $image = "image1.jpg";
        $text = "Твой текст и т.д.";
        } else if ($H >= 12 && $H < 14) {
            $image = "image2.jpg";
        $text = "Твой текст и т.д.";
        } else if ($H >= 14 && $H < 18) {
            $image = "image3.jpg";
        $text = "Твой текст и т.д.";
        } else if ($H >= 18 && $H < 23) {
            $image = "image4.jpg";
        $text = "Твой текст и т.д.";
        } else {
            $image = "image5.jpg";
        $text = "Твой текст и т.д.";
        }
    } else if ($D == "0") {
        if ($H >= 9 && $H < 12) {
           $image = "image1.jpg";
        $text = "Твой текст и т.д.";
        } else if ($H >= 12 && $H < 14) {
            $image = "image2.jpg";
        $text = "Твой текст и т.д.";
        } else if ($H >= 14 && $H < 16) {
            $image = "image3.jpg";
        $text = "Твой текст и т.д.";
        } else if ($H >= 16 && $H < 22) {
            $image = "image4.jpg";
        $text = "Твой текст и т.д.";
        } else if ($H >= 22) {
            $image = "image5.jpg";
        $text = "Твой текст и т.д.";
        } else if ($H == 0) {
            $image = "image5.jpg";
        $text = "Твой текст и т.д.";
        } else {
            $image = "image6.jpg";
        $text = "Твой текст и т.д.";
        }
    }
}

?>
<img src="<?=$image?>">
<?=$text?>
<HTML><HEAD><TITLE>Now playing</TITLE>
<link href="../index.css" rel="stylesheet" type="text/css">
</HEAD>
<BODY leftMargin=0 topMargin=0>
    <table width="206" border="0" cellpadding="0" cellspacing="0">
    <tr><td height="36" width="206" style="background-image:url(../img/bgm1.gif); background-position:left top; background-repeat:no-repeat;">
     <table width="206" height="36" border="0" cellpadding="0" cellspacing="0">
     <tr>
     <td width="66" style="padding-left:20px;"><img src="../img/icon_eteryje.gif" border="0"></td>
     <td width="140" class="title">On air</td>
     </tr>
     </table>
    </td></tr>
    <tr><td height="130" align="left" style="background-image:url(../img/bg3.gif); background-position:left top; background-repeat:repeat-y;" class="txtleft" valign="middle">
         <img src="../img/bg10.gif" border="0"><a href="../indexmain.php@2_2F11_2F" target="_parent"><img src="../<?php print($arr[0]); ?>" border="0"> </a> <br><img src="../img/blank.gif" height="5"><br><div align="center"><?php print($arr[1]); ?></div>
    </td></tr>
    <tr><td height="3" style="background-image:url(../img/bg4.gif); background-position:left top; background-repeat:no-repeat;"><img src="../img/blank.gif" border="0"></td></tr>
    </table>
</BODY>
</HTML>


И вот две разницы работы!

До
user posted image

После

user posted image

Как видно текст отображается по разному.Скажите что я сделал не так?Нужно чтобы работало так как до моего исправления.

Автор: smartov 29.8.2006, 17:06
Цитата(Диман @  29.8.2006,  15:35 Найти цитируемый пост)
Нужно чтобы работало так как до моего исправления.

Тогда стоит вернуть предыдущий код... я не вижу никаких проблем с именами картинок. В чем они заключались?

Автор: Диман 29.8.2006, 17:36
Во втором случае текст сверху.Вот в чём проблема.А нужно чтобы был так как на первом скрине.

Автор: IZ@TOP 29.8.2006, 18:10
Парень! Может тебе в верстку нужно?

Автор: Диман 29.8.2006, 18:22
В Вёрстке только Html.А у меня с пхп проблема

Автор: faost 29.8.2006, 18:41
Цитата(Диман @ 29.8.2006,  17:36)
Во втором случае текст сверху.Вот в чём проблема.А нужно чтобы был так как на первом скрине.

Расположением элементов как раз и занимается верстка, php тут не причем

Автор: Диман 29.8.2006, 19:32
Перенесите плизз тему..Чтобы новую не создавать.

Автор: Shark 29.8.2006, 22:04
Диман, ты не устал одну и туже тему создавать?????..... причем с одним и тем же кодом?

Автор: Диман 29.8.2006, 22:11
Куча оффтопа.А помощи никакой.А потом вы мне минусы ставите.

Автор: Shark 29.8.2006, 22:40
Диман, тебе их и будут ставить, так как ты сам даже не пытаешься решить проблемму..Вот у тебя 84 поста... и ты еще ни одну проблему сам не решил... все кого-то просишь... 
Пример: посмотри темы мною созданные... и там мне не только помогали решить броблемму... но я еще и сам участвовал в ее решении. и совместными усилиями мы приходили к рабочему результату!

Автор: smartov 29.8.2006, 23:09
Цитата(Диман @  29.8.2006,  16:36 Найти цитируемый пост)
Во втором случае текст сверху.Вот в чём проблема.А нужно чтобы был так как на первом скрине.

Погоди, ну так я про это и спрашиваю.
Если у тебя на первом скрине все как надо, то заче ты вообще код переделывал? Что тебя не устраивало то в первом скрине?

Автор: Диман 30.8.2006, 00:42
Код переделывал потому как мне нужно менять имена Jpg.А в первом коде имена Jpg не показывают.А во втором я всё написал.Только теперь текст не там отображается.Почему незнаю.

Автор: smartov 30.8.2006, 11:18
Диман, насколько я вижу твой код у тебя картинки именуются ТОЧНО так же как и в первом коде
image1.jpg
image2.jpg
и т.п.

В чем отличие? Опиши подробно проблему.
Только не надо торопитьс писать мессаги, если хочешь реальной помощи.
Очень непонятно читать предложения "А в первом коде имена Jpg не показывают": что такое имена jpg? кто и кому их не показывает?

Объясню почему спрашиваю: откровенно говоря код ты переписал очень плохо - сделав его хуже чем был. Поэтому я за то чтобы помочь тебе аккуратно переделать первый код, а не искать ошибку (коих много) в твоем коде.

Автор: Диман 30.8.2006, 12:02
Вот смотри:В первом коде есть только вот это

Код

$arr=array('',
        'картинка 1',
        'картинка 2',
        'картинка 3',
        'картинка 4',
        'картинка 5',
        'картинка 6',
        'картинка 7',
        'картинка 8',
        'картинка 9',
        'картинка 10',
        'картинка 11',
        'картинка 12',
        'картинка 13',
        'картинка 14',
        'картинка 15',
        'картинка 16',
        'картинка 17');
    


Это название картинок которые будут показыватся под картинками.

И в первом коде ещё имеется вот это.

Код

$a=array("img/image".$n.".jpg",$arr[$n]);
    return $a;


Вот тут  сделано так что все имена картинок идут с названием Jpg.И если вдруг мне надо их будет поменять на разные имена то я не смогу.


А во втором коде так:

Код

if (preg_match("/[1-5]/", $D)) {
    if ($H >= 7 && $H < 10) {
        $image = "image1.jpg";
        $text = "Твой текст 1"


Здесь имеется название картинки Твой текст 1 И для каждого название имя картинки image1.jpg который можно поменять.

Вот потому мне и нравится второй случай что сдесь видны имена картинок.Как это сделать в первом коде?Или поправить второй?

Автор: Диман 30.8.2006, 14:21
Помогите плизз кто-нить.

Автор: smartov 30.8.2006, 14:28
Диман, это и вся проблема? smile
Возьми и замени функцию "number_to_image" в первом коде на ту что я привел ниже и будет тебе счастье.

Код

function number_to_image($n){
    $arr=array('',
        'картинка 1',
        'картинка 2',
        'картинка 3',
        'картинка 4',
        'картинка 5',
        'картинка 6',
        'картинка 7',
        'картинка 8',
        'картинка 9',
        'картинка 10',
        'картинка 11',
        'картинка 12',
        'картинка 13',
        'картинка 14',
        'картинка 15',
        'картинка 16',
        'картинка 17');
    $arr_img=array('',
        'image1.jpg',
        'image2.jpg',
        'image3.jpg',
        'image4.jpg',
        'image5.jpg',
        'image6.jpg',
        'image7.jpg',
        'image8.jpg',
        'image9.jpg',
        'image10.jpg',
        'image11.jpg',
        'image12.jpg',
        'image13.jpg',
        'image14.jpg',
        'image15.jpg',
        'image16.jpg',
        'image17.jpg');
    $a=array("img/".$arr_img[$n],$arr[$n]);
    return $a;
}

Автор: Диман 30.8.2006, 14:36
Если не трудно замени плизз.А то я опять что-нить не так сделаю.

Автор: smartov 30.8.2006, 14:45
[censored] товарищ, ну ты [censored] вообще даешь.
Делаю такое первый и последний раз, чесслово. Раз уж взялся помочь.

Код

<?php
function number_to_image($n){
    $arr=array('',
        'картинка 1',
        'картинка 2',
        'картинка 3',
        'картинка 4',
        'картинка 5',
        'картинка 6',
        'картинка 7',
        'картинка 8',
        'картинка 9',
        'картинка 10',
        'картинка 11',
        'картинка 12',
        'картинка 13',
        'картинка 14',
        'картинка 15',
        'картинка 16',
        'картинка 17');
    $arr_img=array('',
        'image1.jpg',
        'image2.jpg',
        'image3.jpg',
        'image4.jpg',
        'image5.jpg',
        'image6.jpg',
        'image7.jpg',
        'image8.jpg',
        'image9.jpg',
        'image10.jpg',
        'image11.jpg',
        'image12.jpg',
        'image13.jpg',
        'image14.jpg',
        'image15.jpg',
        'image16.jpg',
        'image17.jpg');
    $a=array("img/".$arr_img[$n],$arr[$n]);
    return $a;
}

function get_image(){
    $h = date("G");
    $d = date("w");
    if(($d>0) and ($d<6)){//понедельник-пятница
        if($h<7){
            if($d==1){//понедельник
                return number_to_image(17);
            }else{//не понедельник
                return number_to_image(5);
            }
        }elseif(($h>=7) and ($h<11)){
            return number_to_image(1);
        }elseif(($h>=11) and ($h<15)){
            return number_to_image(2);
        }elseif(($h>=15) and ($h<19)){
            return number_to_image(3);
        }elseif(($h>=19) and ($h<23)){
            return number_to_image(4);
        }elseif($h>=23){
            return number_to_image(5);
        }
    }elseif($d==6){//суббота
        if($h<9){
            return number_to_image(5);
        }elseif(($h>=9) and ($h<12)){
            return number_to_image(7);
        }elseif(($h>=12) and ($h<14)){
            return number_to_image(8);
        }elseif(($h>=14) and ($h<18)){
            return number_to_image(9);
        }elseif(($h>=18) and ($h<23)){
            return number_to_image(10);
        }elseif($h>=23){
            return number_to_image(11);
        }
    }elseif($d==0){//воскресенье
        if($h<9){
            return number_to_image(11);
        }elseif(($h>=9) and ($h<12)){
            return number_to_image(12);
        }elseif(($h>=12) and ($h<14)){
            return number_to_image(13);
        }elseif(($h>=14) and ($h<16)){
            return number_to_image(14);
        }elseif(($h>=16) and ($h<22)){
            return number_to_image(15);
        }elseif($h>=22){
            return number_to_image(16);
        }
    }
}
$arr = get_image();
?>
<HTML><HEAD><TITLE>Now playing</TITLE>
<link href="../index.css" rel="stylesheet" type="text/css">
</HEAD>
<BODY leftMargin=0 topMargin=0>
    <table width="206" border="0" cellpadding="0" cellspacing="0">
    <tr><td height="36" width="206" style="background-image:url(../img/bgm1.gif); background-position:left top; background-repeat:no-repeat;">
     <table width="206" height="36" border="0" cellpadding="0" cellspacing="0">
     <tr>
     <td width="66" style="padding-left:20px;"><img src="../img/icon_eteryje.gif" border="0"></td>
     <td width="140" class="title">On air</td>
     </tr>
     </table>
    </td></tr>
    <tr><td height="130" align="left" style="background-image:url(../img/bg3.gif); background-position:left top; background-repeat:repeat-y;" class="txtleft" valign="middle">
         <img src="../img/bg10.gif" border="0"><a href="../indexmain.php@2_2F11_2F" target="_parent"><img src="../<?php print($arr[0]); ?>" border="0"> </a> <br><img src="../img/blank.gif" height="5"><br><div align="center"><?php print($arr[1]); ?></div>
    </td></tr>
    <tr><td height="3" style="background-image:url(../img/bg4.gif); background-position:left top; background-repeat:no-repeat;"><img src="../img/blank.gif" border="0"></td></tr>
    </table>
</BODY>
</HTML>

Автор: Диман 30.8.2006, 15:13
Спасибо!Вроде всё работает.Ещё вопрос:А если этот код пхп писать не в одном файле вместе с HTML а к хтмп присоеденить код рхр.Что нужно будет добавить в коде пхп чтобы он работал так как работает вместе с HTml в одном файле?

Автор: faost 30.8.2006, 20:53
a.html:

Код

<p><?=include('b.php');?></p>



b.php:

Код

<?

echo 'Текст';

?>


.htaccess:

Код

RemoveHandler .htm .html
AddType application/x-httpd-php .php .htm .html


Вывод:

Код

<p>Текст</p>

Автор: Диман 31.8.2006, 01:25
Всем привет!Хочу сделать следующее.ЧТобы небыло много кода то я сделал пхп код в отдельном файле,и его присоеденил в Html/Запускаю ничего не работает.Делал следующим образом.

Код

<HTML><HEAD><TITLE>Now playing</TITLE>
<link href="../index.css" rel="stylesheet" type="text/css">
<META http-equiv=Refresh content=10; url=inc/failsphp.php>
<META content="MSHTML 6.00.2900.2802" name=GENERATOR></HEAD>
</HEAD>
<BODY leftMargin=0 topMargin=0>
    <table width="206" border="0" cellpadding="0" cellspacing="0">
    <tr><td height="36" width="206" style="background-image:url(../img/bgm1.gif); background-position:left top; background-repeat:no-repeat;">
     <table width="206" height="36" border="0" cellpadding="0" cellspacing="0">
     <tr>
     <td width="66" style="padding-left:20px;"><img src="../img/icon_eteryje.gif" border="0"></td>
     <td width="140" class="title">On air</td>
     </tr>
     </table>
    </td></tr>
    <tr><td height="130" align="left" style="background-image:url(../img/bg3.gif); background-position:left top; background-repeat:repeat-y;" class="txtleft" valign="middle">
         <img src="../img/bg10.gif" border="0"><a href="../indexmain.php@2_2F11_2F" target="_parent"><img src="../<?php print($arr[0]); ?>" border="0"> </a> <br><img src="../img/blank.gif" height="5"><br><div align="center"><?php print($arr[1]); ?></div>
    </td></tr>
    <tr><td height="3" style="background-image:url(../img/bg4.gif); background-position:left top; background-repeat:no-repeat;"><img src="../img/blank.gif" border="0"></td></tr>
    </table>
</BODY>
</HTML>


А вот что написал в файле с Пхп

Код

<?php
function number_to_image($n){
    $arr=array('',
        'картинка 1',
        'картинка 2',
        'картинка 3',
        'картинка 4',
        'картинка 5',
        'картинка 6',
        'картинка 7',
        'картинка 8',
        'картинка 9',
        'картинка 10',
        'картинка 11',
        'картинка 12',
        'картинка 13',
        'картинка 14',
        'картинка 15',
        'картинка 16',
        'картинка 17');
    $arr_img=array('',
        'image1.jpg',
        'image2.jpg',
        'image3.jpg',
        'image4.jpg',
        'image5.jpg',
        'image6.jpg',
        'image7.jpg',
        'image8.jpg',
        'image9.jpg',
        'image10.jpg',
        'image11.jpg',
        'image12.jpg',
        'image13.jpg',
        'image14.jpg',
        'image15.jpg',
        'image16.jpg',
        'image17.jpg');
    $a=array("img/".$arr_img[$n],$arr[$n]);
    return $a;
}

function get_image(){
    $h = date("G");
    $d = date("w");
    if(($d>0) and ($d<6)){//понедельник-пятница
        if($h<7){
            if($d==1){//понедельник
                return number_to_image(17);
            }else{//не понедельник
                return number_to_image(5);
            }
        }elseif(($h>=7) and ($h<11)){
            return number_to_image(1);
        }elseif(($h>=11) and ($h<15)){
            return number_to_image(2);
        }elseif(($h>=15) and ($h<19)){
            return number_to_image(3);
        }elseif(($h>=19) and ($h<23)){
            return number_to_image(4);
        }elseif($h>=23){
            return number_to_image(5);
        }
    }elseif($d==6){//суббота
        if($h<9){
            return number_to_image(5);
        }elseif(($h>=9) and ($h<12)){
            return number_to_image(7);
        }elseif(($h>=12) and ($h<14)){
            return number_to_image(8);
        }elseif(($h>=14) and ($h<18)){
            return number_to_image(9);
        }elseif(($h>=18) and ($h<23)){
            return number_to_image(10);
        }elseif($h>=23){
            return number_to_image(11);
        }
    }elseif($d==0){//воскресенье
        if($h<9){
            return number_to_image(11);
        }elseif(($h>=9) and ($h<12)){
            return number_to_image(12);
        }elseif(($h>=12) and ($h<14)){
            return number_to_image(13);
        }elseif(($h>=14) and ($h<16)){
            return number_to_image(14);
        }elseif(($h>=16) and ($h<22)){
            return number_to_image(15);
        }elseif($h>=22){
            return number_to_image(16);
        }
    }
}
$arr = get_image();
?>



Помогите.Последний раз.Скажите что я не дописал?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)