[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    нужно вывести инфу из таблици без повторов, делаю так

    PHP:
    <?
    $sql=  "SELECT `srt`  FROM `info`  WHERE `data` = DATE(NOW()) ";
    $qq mysql_query($sql) or die(mysql_error());
    $re array_unique($qq);
    while(
    $viv mysql_fetch_array($re)) 
    {
    echo 
    $viv['srt'];
    }
    ?>


    пишет
    Warning: array_unique() [function.array-unique]: The argument should be an array i

    почему?
     
  2. chexec

    chexec Member

    Joined:
    19 Nov 2010
    Messages:
    67
    Likes Received:
    11
    Reputations:
    3
    потому что надо сначала взять все результаты в массив, а потом его сделать в array_unique, а не результат выполнения запроса. сам по себе он не дает никакой инфы о полученных данных, это всего лишь ссылка.
    PHP:
    <?php
    $a 
    = array();
    $sql=  "SELECT `srt`  FROM `info`  WHERE `data` = DATE(NOW()) ";
    $qq mysql_query($sql) or die(mysql_error());
    while(
    $viv mysql_fetch_array($qq)) 
    {
    $a[] = $viv['str'];
    }
    print_r(array_unique($a)); 
     
    1 person likes this.
  3. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    К тому же, почему бы не сделать так?
    PHP:
    <?php
    $sql
    =  "SELECT distinct `srt`  FROM `info`  WHERE `data` = DATE(NOW()) ";
    $qq mysql_query($sql) or die(mysql_error());
    while(
    $viv mysql_fetch_assoc($qq)) 
    {
    echo 
    $viv['str'] . '<br />';
    }
     
  4. Nelz.

    Nelz. Member

    Joined:
    2 Aug 2010
    Messages:
    151
    Likes Received:
    7
    Reputations:
    0
    пост актуально

    не ужели не кто не знает?
     
  5. -=Zhenek=-

    -=Zhenek=- Elder - Старейшина

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1
    1. Посто на 60% не читаемый( Ошибки и несвязанные части речи.
    2. А в чем сложность? Если нужно редактировать данные в БД, то сделайте форму, куда при загрузке внесите текущие данные, и при нажатии сохранить замените все данные в БД (с проверками естественно).

    Ну а если сделать все за вас, то хоть саму структуру БД дайте хотя бы.
     
  6. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Вопрос,

    Есть переменна с текстом HELLO

    Есть файл с текстом в каждой строке

    Hello
    Hello world
    Hello friends
    Hello my name

    Как с помощью пхп без цикла можно сравнить

    переменную со всем массивом ? т.е если в массиве такой текст есть то говорит НАШЕЛ, только не СЛОВО а весь текст точно такой же, т.е как бы сравнивает строку со строками в файле..

    С помощью чего такое можно сделать ?
     
    #18626 Adio, 8 Jun 2011
    Last edited: 9 Jun 2011
  7. -=Zhenek=-

    -=Zhenek=- Elder - Старейшина

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1
    PHP:
    $data file('data.txt'); //считываем содержимое файла в массив
    $text "Hello";

    // Этот вариант вернет True или False
    if (in_array($text$data)) {
        echo 
    "Найдено!";
    }

    //А этот вернет номер ключа где содержится искомое слово
    $key array_search($text$data); 

     
  8. JJoni

    JJoni New Member

    Joined:
    7 Nov 2009
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    В разных скриптах urlencode при одинаковом входном контенте и одинаковой общей конструкции скрипта выдаёт разные результаты:
    Варианты:
    1)+Click+%E2%80%98Activate
    2)+Click+%91Activate

    1 вариант декодируется на ура.
    2 показывает квадратик.

    В чём может быть проблема?
     
  9. Markerok

    Markerok Banned

    Joined:
    13 Nov 2009
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Думаю проблема в кодировках этих 2ух скриптов.
     
  10. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Вопрос,
    А как можно сделать с двумя файлами?
    Т.е вместо переменной $text, файл как в $data ?


    И еще, оно не находит предложение, а только слова..

    Т.е может найти
    Hello
    Но не
    Hello World

    че так ?
     
    #18630 Adio, 9 Jun 2011
    Last edited: 9 Jun 2011
  11. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    Adio ты все продолжаешь в том же духе?
    Прочитать мануал по этим двум функциям и понять "че так", не судьба?
    Думаю Gifts не возрадуется.

    Ты ведь ищешь ключ значения "Hello", вот оно и выдает тебе Hello.
     
  12. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Я знаю что ИЩЮ HELLO, я создаю файл со списком

    Hello
    Hello world
    Hello people
    Hello car

    Почему то может найти только одно слово, без пробела.

    И не как и наче, т.е только одно слово целиком, а если более одного слова то не работает ! Не знаю почему.

    Делал массив без файла, Находит.

    Делаю с Файлом находит только одиночные слова

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


    Code:
    /* wordss.txt
    hello
    hello world
    hello mom
    hello dad
    hello rooms
    */
    
    $data = file('wordss.txt',true); //считываем содержимое файла в массив
    $text = "hello dad";
    
    // Этот вариант вернет True или False
    if (in_array($text, $data)) {
        echo "FOUND!";
    }
    
    //А этот вернет номер ключа где содержится искомое слово
    $key = array_search($text, $data);  
    echo $key;
    

    Ну вот и не работает.
     
    #18632 Adio, 9 Jun 2011
    Last edited: 9 Jun 2011
  13. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Adio у вас фобия на циклы, или есть в этом какой то высший смысл? Или вы думаете in_array и array_search делают какие то волшебные вещи?
     
    _________________________
  14. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Просто есть цикл в котором не должно быть циклов или их нужно как то выносить из цикла типа как функцию вы сделали.. т.е цикл нарушать нельзя другими циклами, того так и все приходиться делать. без циклов или же подставлять $i единсвенного цикла в какието значение...
     
  15. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    Сделай var_dump массива, который получаешь из файла и массива, который создаешь в скрипте. Может найдешь отличие.
     
  16. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Adio Исходя из каких соображений вы считаете, что не должно быть цикла в неком цикле?

    Ошибка в вашем коде тут:
    PHP:
    $data file('wordss.txt'true ); //считываем содержимое файла в массив
    Догадайтесь какая
     
    _________________________
  17. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18

    Я нашел проблему, но не понял откуда она покамись возникает во всех строках моссива в конце стоит пробел, кроме последней строки, я даже создавал новый текстовый файл, все равно выводит вот так. И находит только последнюю строку..

    Code:
    array(4) { [0]=> string(7) "hello " [1]=> string(13) "hello world " [2]=> string(15) "hello my name " [3]=> string(10) "hello good" } 
    

    Отсюда убрал true

    Code:
    $data = file('wordss.txt'); 
    
     
  18. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    http://php.su/functions/?file
     
  19. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    догадывался, но думал ошибка именно в коде...

    Спасибо

    Не тут то было... добавил rtrim

    Code:
    $data = file("hello.txt"); //считываем содержимое файла в массив
    $data = rtrim($data);
    $text = "hello rooms";
    // Этот вариант вернет True или False
    if (in_array($text,$data)) {
        echo "FOUND!";
    }
    var_dump($data);
    //А этот вернет номер ключа где содержится искомое слово
    $key = array_search($text,$data);  
    echo $key;
    
    пишет

    Warning: in_array() [function.in-array]: Wrong datatype for second argument in Z:\home\test1.ru\www\arrays.php on line 11
    string(5) "Array"

    #11 if (in_array($text,$data)) {



    Ура нашел !

    Может кому пригодиться

    Code:
    $data = array_map('trim', $data);
    
     
    #18639 Adio, 9 Jun 2011
    Last edited: 9 Jun 2011
  20. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    PHP:
    <?php
    $data 
    explode("\r\n"file_get_contents('word.txt'));
    $text "hello dad";
    $key array_search($text$data);  
    echo 
    $data[$key];
    ?>
     
    <?php
    $f 
    fopen('word.txt''rb');
    while (!
    feof($f))
    {
        
    $data[] = rtrim(fgets($f));
    }
    fclose($f);
    $text "hello dad";
    $key array_search($text$data);  
    echo 
    $data[$key];
    ?>
     
    1 person likes this.
Thread Status:
Not open for further replies.