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

Форум MySQL

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

 

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

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

тема: помогите с выборкой
 
 автор: stigler   (27.05.2010 в 16:51)   письмо автору
94.5 Кб
 
 

помогите доделать код
есть таблица a1a_script_step_pass_param
в ней два столбика param и value
из param надо вывести в столбик значения pass_6453 но что бы выводилось без pass_
и при условии что в столбике value в той же строке что и найденное значение pass_6453 существует какое либо значение

вот попробовал написать сам хотябы выборку но безрезультатно ничего не выводит
<?php
$nomer="pass_6453";
$server="localhost";
$dbname="a1a_script_step_pass_param";
$username="h8823_2";
$userpass="2";
$servcon=mysql_connect($server,$username,$userpass);
mysql_query("SET NAMES utf8");
mysql_select_db($dbname,$servcon);

$query="SELECT * FROM `a1a_script_step_pass_param` WHERE param='".$nomer."' ";
$result=mysql_query($query, $servcon);
/* Печать результатов в HTML */
print "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
print "\t<tr>\n";
foreach ($line as $col_value) {
print "\t\t<td>$col_value</td>\n";
}
print "\t</tr>\n";
}
print "</table>\n";

?>

  Ответить  
 
 автор: cheops   (27.05.2010 в 17:53)   письмо автору
 
   для: stigler   (27.05.2010 в 16:51)
 

>помогите доделать код
>есть таблица a1a_script_step_pass_param
>в ней два столбика param и value
>из param надо вывести в столбик значения pass_6453 но что бы выводилось без pass_
>и при условии что в столбике value в той же строке что и найденное значение pass_6453 >существует какое либо значение
Не очень понятно... кажется слово значение используется в нескольких смыслах. Что выводит следующий скрипт и как далеко это находится от того, что нужно?
<?php
  $nomer
="pass_6453";
  
$server="localhost";
  
$dbname="a1a_script_step_pass_param";
  
$username="h8823_2";
  
$userpass="2";
  
$servcon=mysql_connect($server,$username,$userpass);
  
mysql_query("SET NAMES utf8");
  
mysql_select_db($dbname,$servcon);

  
$query="SELECT * FROM `a1a_script_step_pass_param` WHERE param='$nomer' ";
  
$result=mysql_query($query$servcon);
  if(
$result) exit("Ошибка выполнения SQL-запроса ".mysql_error());
  if(
mysql_num_rows($result))
  {
    print 
"<table>\n";
    print 
"\t<tr>\n";
    while(
$line mysql_fetch_array($resultMYSQL_ASSOC))
    {
      print 
"\t\t<td>".substr($nomer, -4)."</td>".
            
"<td>$line[value]</td>\n";
    }
    print 
"\t</tr>\n";
    print 
"</table>\n";
  }
?>

  Ответить  
 
 автор: stigler   (27.05.2010 в 18:13)   письмо автору
 
   для: cheops   (27.05.2010 в 17:53)
 

не находит! вот переписал код, выводит НЕТУ т.е. не находит ничего что в этом что в том
значение имею ввижу что нужна не пустая ячейка, будут значения буквы+цыфры там
<?
$hostname = "localhost";
$username = "h8823_2";
$password = "2";
$dbName = "h8823_2";

/* Таблица MySQL, в которой хранятся данные */
$userstable = "a1a_script_step_pass_param";

/* создать соединение */
MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не могу создать соединение ");

@mysql_select_db("$dbName") or die("Не могу выбрать базу данных ");

$query = "SELECT param FROM $userstable WHERE param = 'pass%' and value = IS NOT NULL ";

$result = MYSQL_QUERY($query);

/* Как много нашлось*/
$number = MYSQL_NUMROWS($result);

/* Напечатать*/
$i = 0;

IF ($number == 0) {
PRINT "<CENTER><P>нету</CENTER>";
} ELSEIF ($number > 0) {
PRINT "<CENTER><P>Количество: $number<BR><BR>";
WHILE ($i < $number){
$name = mysql_result($result,$i,"name");
PRINT "icq $name <BR>";
PRINT "<BR><BR>";
$i++;
}
PRINT "</CENTER>";
}
?>

  Ответить  
 
 автор: cheops   (27.05.2010 в 18:24)   письмо автору
 
   для: stigler   (27.05.2010 в 18:13)
 

Хм... и ошибок не выдает? Функция MYSQL_NUMROWS() намерено использована или это опечатка? Дело в том, что стандартная функция называется mysql_num_rows().

  Ответить  
 
 автор: stigler   (27.05.2010 в 18:32)   письмо автору
 
   для: cheops   (27.05.2010 в 18:24)
 

хм... исправил, результат тот же

  Ответить  
 
 автор: cheops   (27.05.2010 в 18:41)   письмо автору
 
   для: stigler   (27.05.2010 в 18:13)
 

Нельзя писать "value = IS NOT NULL", либо нечто вида "value != ''", либо "value IS NOT NULL". Вообще при работе с SQL-запросами из PHP-кода необходимо обязательно проверять правильность выполнения SQL-кода. PHP об этом не сообщит, он не знает о том, что твориться на SQL-сервере
<?php
  
...
  
$query "SELECT param FROM $userstable WHERE param = 'pass%' and value IS NOT NULL ";
  
$result MYSQL_QUERY($query);
  if(!
$result) exit("Ошибка выполнения запроса - ".mysql_error());
 ...
?>

  Ответить  
 
 автор: stigler   (27.05.2010 в 18:46)   письмо автору
 
   для: cheops   (27.05.2010 в 18:41)
 

не поверите, не работает =)
скрин бд прикрепил, посмотрите мож чего ещё накасячил

  Ответить  
 
 автор: cheops   (27.05.2010 в 18:51)   письмо автору
 
   для: stigler   (27.05.2010 в 18:46)
 

Лучше дамп таблицы прикрепите, чтобы можно было воспроизвести ситуацию.

  Ответить  
 
 автор: stigler   (27.05.2010 в 19:00)   письмо автору
106.7 Кб
 
   для: cheops   (27.05.2010 в 18:51)
 

вот он, если не ошибся что есть дамп=)

  Ответить  
 
 автор: stigler   (27.05.2010 в 19:14)   письмо автору
 
   для: stigler   (27.05.2010 в 19:00)
 

вот всё сделал
<?
$hostname 
"localhost";
$username "h8823_2";
$password "2";
$dbName "h8823_2";

/* Таблица MySQL, в которой хранятся данные */
$userstable "a1a_script_step_pass_param";

/* создать соединение */
MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не могу создать соединение ");

@
mysql_select_db("$dbName") or die("Не могу выбрать базу данных "); 

  
$query "SELECT * 
FROM `a1a_script_step_pass_param` 
WHERE `param` LIKE 'pass_%'
AND `value` != ''
LIMIT 0 , 30"


  
$result MYSQL_QUERY($query); 
  if(!
$result) exit("Ошибка выполнения запроса - ".mysql_error());


    
/* Печать результатов в HTML */
    
print "<table>\n";
    while (
$line mysql_fetch_array($resultMYSQL_ASSOC)) {
        print 
"\t<tr>\n";
        foreach (
$line as $col_value) {
  print 
"\t\t<td>$col_value</td>\n";
        }
        print 
"\t</tr>\n";
    }
    print 
"</table>\n";

    
/* Освобождение resultset */
    
mysql_free_result($result);

    
/* Закрытие соединения */
    
mysql_close($link);
?>


а теперь подскажите плиз как вывести только значения первого столбика param но что бы значение выводилось только после 5го симвало, не pass_324252 а 324252

  Ответить  
 
 автор: stigler   (27.05.2010 в 19:17)   письмо автору
 
   для: stigler   (27.05.2010 в 19:14)
 

по первому столбику сообразил
$query = "SELECT param
FROM `a1a_script_step_pass_param`
WHERE `param` LIKE 'pass_%'
AND `value` != ''
LIMIT 0 , 30";

последний вопрос, подскажите как выводить значение после 5го символа=)

  Ответить  
 
 автор: cheops   (27.05.2010 в 19:20)   письмо автору
 
   для: stigler   (27.05.2010 в 19:17)
 

>последний вопрос, подскажите как выводить значение после 5го символа=)
Можно воспользоваться функцией substr()
<?php
  
echo substr($text4)
?>

  Ответить  
 
 автор: stigler   (27.05.2010 в 19:35)   письмо автору
 
   для: cheops   (27.05.2010 в 19:20)
 

простите, не соображу как его корректно вставить в код...

  Ответить  
 
 автор: stigler   (27.05.2010 в 19:56)   письмо автору
 
   для: stigler   (27.05.2010 в 19:35)
 

всё разобрался, благодарю=)

  Ответить  
 
 автор: stigler   (02.06.2010 в 23:18)   письмо автору
 
   для: stigler   (27.05.2010 в 19:56)
 

необходимо изменить все значения в массиве, а не только на выводе
вот написал но что то не работает =( хэлпми
<?php
$hostname 
"localhost";
$username "h8823_2";
$password "2";
$dbName "h8823_2";

/* Таблица MySQL, в которой хранятся данные */
$userstable "a1a_script_step_pass_param";

/* создать соединение */
MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не могу создать соединение ");

@
mysql_select_db("$dbName") or die("Не могу выбрать базу данных "); 

  
$query ="SELECT param 
FROM `a1a_script_step_pass_param` 
WHERE `param` LIKE 'pass_%'
AND `value` != ''
LIMIT 0 , 100"


function 
walk($item1

$item1 substr("$item1"5); 

function print(
$item2

echo 
"$item2<br />\n";


  
$result MYSQL_QUERY($query); 
  if(!
$result) exit("Ошибка выполнения запроса - ".mysql_error());


 while (
$line mysql_fetch_array($resultMYSQL_ASSOC)){
array_walk($line'walk'); 
array_walk($line'print');
}


    
/* Освобождение resultset */
    
mysql_free_result($result);

    
/* Закрытие соединения */
    
mysql_close($link);
?>

  Ответить  
 
 автор: ........   (03.06.2010 в 00:50)
 
   для: stigler   (02.06.2010 в 23:18)
 

function walk(&$item1)

> все значения в массиве
массив $line перезаписывается при каждой итерации цикла

чтобы иззменить в результате запроса SELECT LEFT(........

>LEFT(str,len)
>Возвращает крайние слева len символов из строки str:

  Ответить  
 
 автор: ......   (03.06.2010 в 00:55)
 
   для: stigler   (02.06.2010 в 23:18)
 

>SUBSTRING(str,pos), SUBSTRING(str FROM pos)
>Возвращает подстроку из строки str, начиная с позиции pos:

и название для функцмм print() уже занято

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

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