Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Отбор из Базы
 
 автор: JESS   (04.09.2009 в 10:18)   письмо автору
 
 

Привет!
Достаю информацию из бд к примеру

id  |   youtube                          |  extra
1   |  http://toytube.se?jejjej  | 4
2   | 0                                        | 5


если Youtube = 0 то пришет что "Нет ссылок!"
если Youtube не равняетьйса 0, то пишет ссылку которая в бд

пишу так

$edit_post = mysql_query("SELECT * FROM `vA_life` WHERE id='{$_GET['id']}' LIMIT 1");
        while($dt= mysql_fetch_row($edit_post))
        {        
if($dt[3] == 0) { print "No links"; } else { print $dt[3]; }
}


Проблема в том что ничего неработает, показываеть только "No links", как сделать функциональную функцию? Подскажите Плиз!

  Ответить  
 
 автор: Лена   (04.09.2009 в 10:58)   письмо автору
 
   для: JESS   (04.09.2009 в 10:18)
 

Сделайте так и сами все увидите:

        while($dt= mysql_fetch_row($edit_post)) 
        { 
print_r($dt);
if($dt[3] == 0) { print "No links"; } else { print $dt[3]; } 



Если в таблице только 3 поля, у вас вообще нет такого элемента массива - $dt[3]

  Ответить  
 
 автор: JESS   (04.09.2009 в 11:08)   письмо автору
 
   для: Лена   (04.09.2009 в 10:58)
 

Нет, он есть, я просто структуру БД упрощенную написал))
Вот база реальная>
CREATE TABLE IF NOT EXISTS `vA_life` (
  `id` int(11) NOT NULL auto_increment,
  `parent` int(11) default NULL,
  `headline` varchar(225) default NULL,
  `youtube` varchar(500) default NULL,
  `text` longtext,
  `date` datetime default NULL,
  `renewal` datetime default NULL,
  `show` char(1) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=42 ;


INSERT INTO `vA_life` (`id`, `parent`, `headline`, `youtube`, `text`, `date`, `renewal`, `show`) VALUES
(41, 0, 'Går inte att fixa bara', 'http://www.youtube.com/v/-vk5RGyR8DM&hl=sv&fs=1', 'hmm) cd', '2009-09-04 00:37:43', '2009-09-04 00:39:40', ''),
(39, 0, '<i>AS, Orka skriva nеt hдr!</i>', '0', 'heh))&nbsp;', '2009-09-03 23:58:00', '0000-00-00 00:00:00', ''),
(40, 0, '0', 'http://www.youtube.com/watch?v=s7a9xCIAdDU', 'huh)', '2009-09-04 00:00:05', '0000-00-00 00:00:00', '');

  Ответить  
 
 автор: JESS   (04.09.2009 в 13:29)   письмо автору
 
   для: Лена   (04.09.2009 в 10:58)
 

вот я написал код, вроде работает:

$headline = $dt[2];
$youtube = $dt[3];      
//Headline Function
    $string_headline = strlen($headline);
     if($string_headline == 0) { $set_headline = "Rubrik Saknas"; } else { $set_headline = $headline; }
     // EOF
    //YouTube Function
     $string_youtube = strlen($youtube);
     if($string_youtube == 0) { $set_youtube = "YouTube Klipp Adress Saknas"; } else { $set_youtube = $youtube; }
    // EOF

  Ответить  
 
 автор: Root   (04.09.2009 в 13:39)   письмо автору
 
   для: JESS   (04.09.2009 в 13:29)
 

>if($dt[3] == 0)

Когда Вы сравниваете строку с интом, php приводит эту строку к инту. Результатом будет:
<?php
var_dump
( (int)'http://www.youtube.com/watch?v=s7a9xCIAdDU' );
?>
и соответственно
<?php
var_dump
'http://www.youtube.com/watch?v=s7a9xCIAdDU' == );
?>

  Ответить  
 
 автор: JESS   (04.09.2009 в 13:59)   письмо автору
 
   для: Root   (04.09.2009 в 13:39)
 

Можете подробнее объяснить, куда это подставлять?

  Ответить  
 
 автор: root   (04.09.2009 в 14:01)   письмо автору
 
   для: JESS   (04.09.2009 в 13:59)
 

это нужно один раз запустить, чтобы понять что происходит.

  Ответить  
 
 автор: JESS   (04.09.2009 в 14:43)   письмо автору
 
   для: root   (04.09.2009 в 14:01)
 

Не понимаю, первая пишет

boot(true)

Вторая>

int(0)

  Ответить  
 
 автор: root   (04.09.2009 в 14:47)   письмо автору
 
   для: JESS   (04.09.2009 в 14:43)
 

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

  Ответить  
 
 автор: root   (04.09.2009 в 15:12)   письмо автору
 
   для: JESS   (04.09.2009 в 14:43)
 

В Вашем $dt[3] находится строка.
Эту строку Вы пытаетесь сравнить с интом (0)
if($dt[3] == 0) { print "No links"; } ...
Результатом будет true потому, что:
php попробует привести строку в $dt[3] к инту.
<?php
var_dump
( (int)'http://www.youtube.com/watch?v=s7a9xCIAdDU' );
Получится: int(0);
После этого, оператор "if($dt[3] == 0) { print "No links"; }..." будет выглядеть так:
if(0 == 0) { print "No links"; }

  Ответить  
 
 автор: JESS   (05.09.2009 в 00:13)   письмо автору
 
   для: root   (04.09.2009 в 15:12)
 

а может сразу скажите куда надо смотреть, функции, операторы ... ?

  Ответить  
 
 автор: root   (05.09.2009 в 00:29)   письмо автору
 
   для: JESS   (05.09.2009 в 00:13)
 

смотрите функции, операторы ...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования