За последние 24 часа нас посетили 66949 программистов и 1640 роботов. Сейчас ищут 899 программистов ...

удалить пробел в ссылке. Ваши варианты ??

Тема в разделе "PHP для новичков", создана пользователем Dima4321, 23 ноя 2010.

  1. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Так работает изначально

    PHP:
    1. <?php
    2.  include('conn.php');
    3.  $sql = 'SELECT `ID`,`NAME`, `GENRE`,`TEXT`,`PRICE` FROM `groups`';
    4.  $data = mysql_query($sql);
    5.  while($row = mysql_fetch_row($data))
    6.  
    7.  
    8.  
    9. echo ("<a href='group_{$row[2]}'><b>{$row['2']}</b></a> <br>");
    10.  
    11.  
    12.  ?>
    а вот так не работает ((( Может можно шо-то придумать ??

    т.е я хочу чтобы вывод в адресной строке был не таким BAD%20BOYS а вот таким BADBOYS

    PHP:
    1. <?php
    2.  
    3.  include('conn.php');
    4.  $sql = 'SELECT `ID`,`NAME`, `GENRE`,`TEXT`,`PRICE` FROM `groups`';
    5.  $data = mysql_query($sql);
    6.  while($row = mysql_fetch_row($data))
    7.  
    8.  $trim=str_ireplace(" ","","$row[2]");
    9.  
    10. echo ("<a href='group_{$trim}'><b>{$row['2']}</b></a> <br>");
    11.  
    12.  
    13.  ?>
     
  2. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    после while забыл {}
    и
    $trim=str_ireplace(" ","",$row[2]);

    попробуй
     
  3. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    PHP:
    1. <?php
    2.  
    3.   include('conn.php');
    4.   $sql = 'SELECT `ID`,`NAME`, `GENRE`,`TEXT`,`PRICE` FROM `groups`';
    5.   $data = mysql_query($sql);
    6.   while($row = mysql_fetch_row($data)) {
    7.  
    8.   $trim=str_ireplace(" ","","$row[2]");
    9.  
    10.  echo ("<a href='group_{$trim}'><b>{$row['2']}</b></a> <br>");
    11.  
    12.   }
    13.  
    14.   ?>

    Работает ))
     
  4. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    А вот, что я напрочь забыл..(((

    Мне же надо, чтобы после клика по ссылке <a href='group_{$trim}'><b>{$row['2']}</b></a> запускался новый обработчик.

    т.е. если ссылка передает badboys, то должно всплывать описание пункта соответствующее bad boys.

    Как это реализовать.

    Т.е. как забить обработчик.

    приходят мысли сделать что-то подобное ( псотавил точку и расширение файла) но видимо надо еще что-то

    PHP:
    1. echo ("<a href='{$trim}.php'><b>{$row['2']}</b></a> <br>");

    и как будет называться файл обработчика ??
     
  5. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Реализовал так, но все равно где-то косяк

    PHP:
    1. <?php
    2.  include('conn.php');
    3.  
    4.  $genre = mysql_real_escape_string($_GET['menu']);
    5.  
    6.    $sql = "SELECT * FROM groups WHERE  GENRE = '" . $genre . "'";
    7.    $data = mysql_query($sql);
    8.    echo "<table border=3>";
    9.    while($row = mysql_fetch_row($data))  {
    10.    
    11.    
    12.  
    13.    echo "<td><a href=obrabotka.php?page=$row[1]>$row[1]</a></td>";
    14.    echo "<td>$row[2]</td>";  
    15.    echo "<td>$row[4] $</td>";
    16.    echo "</tr>";
    17.    
    18.    }
    19.  
    20.  
    21. echo "</table>";
    22.  
    23. ?>


    обработчик

    PHP:
    1. <?php
    2. // Устанавливаем соединение с базой данных  
    3. include "conn.php";  
    4.  
    5.  
    6. // Извлекаем из URL текущую страницу
    7.  
    8. $page = $_GET['page'];  
    9.  
    10. $sql = "SELECT 'TEXT' * FROM groups WHERE NAME = '$page'";
    11.  
    12.  
    13.   $data = mysql_query($sql);
    14.   while($row = mysql_fetch_row($data)) {
    15.  
    16.  
    17.  echo "$row[3]<br>";
    18.  
    19.  }
    20.  
    21.   ?>
    Здесь $row[3] это и есть 'TEXT' который я хочу , чтобы выводился на этой странице согласно переданному $_GET['page']

    Пока выводит пустой экран
     
  6. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    Блин, да запомни, что при подстановке элементов массива или любых других "сложных" данных их нужно заключать в {}

    У тебя то используется, то нет. Хватит из кусков код собирать, проанализируй ОТ и ДО
     
  7. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Млин ну все же код из кусочков собирают)) ...вот и я начинаю с простого. Смысл то мне понятен..да синтаксис хромает ((( но пока сложно...я вообще с нуля изучаю php ( это мой первый язык)

    Вот попробывал засадить скобочки в эти строки ..но результат тот же.

    PHP:
    1.   echo "<td><a href=obrabotka.php?page={$row[1]}>$row[1]</a></td>";

    PHP:
    1. $page = {$_GET['page']};  
    2.  
    3. $sql = "SELECT 'TEXT' * FROM groups WHERE NAME = '{$page}'";
     
  8. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    SELECT TEXT FROM groups WHERE NAME = '$page'
     
  9. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    PHP:
    1. <?php
    2. // Устанавливаем соединение с базой данных  
    3. include "conn.php";  
    4.  
    5.  
    6. // Извлекаем из URL текущую страницу
    7.  
    8. $page = {$_GET['page']};  
    9.  
    10. $sql = "SELECT TEXT FROM groups WHERE NAME = '$page'";
    11.  
    12.  
    13.   $data = mysql_query($sql);
    14.   $row = mysql_result($data) {
    15.  
    16.  
    17.  echo $row;
    18.  
    19.  }
    20.  
    21.   ?>
    Выводит пустую страницу
     
  10. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    WTF is $row = mysql_result($data) {} ?
    курить mysql_fetch_array. или хотя бы пробовать echo mysql_result($data,0)
     
  11. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    PHP:
    1. <?php
    2. // Устанавливаем соединение с базой данных  
    3. include "conn.php";  
    4.  
    5.  
    6. // Извлекаем из URL текущую страницу
    7. $page  = isset($_GET["page"]) ? intval($_GET["page"]) : 0;
    8. $query = "SELECT `TEXT` FROM `groups` WHERE `NAME` = '".$page."'";
    9.  
    10.  
    11. if(($fetch = mysql_query($query)) !== false) {
    12.     while($row = mysql_fetch_object($fetch)) {
    13.         print_r($row);
    14.     }
    15. } else {
    16.     print mysql_error();
    17. }
    18.  
    19. ?>
     
  12. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Apple
    С чего ты решил что page передаёт число? :)
     
  13. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Дык мне надо вывести одну ячейку из стобца TEXT поэтому подумал уместно будет использовать mysql_result
     
  14. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Elkaz
    По привычке =))
    Меня вообще тормознуло: сначала я привел к целочисленному типу, а потом ещё в кавычки взял О_о
    ууу, фейл)
     
  15. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    $sql = "SELECT * FROM groups WHERE NAME = '.$page.'";

    Мне кажется , что ошибка в запросе.

    Потому, что подставляя заранее известное имя тоже ничего ничего не происходит...

    Ну кто-нибудь напишите почему !!!!!!!!!!!!

    $sql = "SELECT * FROM groups WHERE NAME = '.BEATLES.'";
     
  16. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Вот так работает с явным заданием переменной $_GET

    PHP:
    1.  <?php
    2.  // Устанавливаем соединение с базой данных  
    3.  include "conn.php";  
    4.  
    5.  
    6.  // Извлекаем из URL текущую страницу
    7.    
    8.  $page = $_GET['band'];  
    9.  
    10.  $sql = "SELECT *  FROM groups WHERE NAME = 'ABBA'";
    11.  
    12.  
    13.    $data = mysql_query($sql);
    14.    $row = mysql_fetch_row($data);
    15.    
    16.    
    17.    echo $row[3];
    18.    
    19.  
    20.  
    21.    ?>

    Как тепер вместо ABBA воткнуть переменную ??))
     
  17. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    чтобы ничего не казалось ставим после $sql = "SELECT * FROM groups WHERE NAME = '.$page.'";

    Код (Text):
    1. echo $sql; die();
    копируем запрос с экрана и выполняем его в phpmyadmin
     
  18. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Вставил!

    Ругается на синтаксическую ошибку.

    SQL-запрос:

    "SELECT * FROM groups WHERE NAME = '.$page.'"

    Ответ MySQL:
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"SELECT * FROM groups WHERE NAME = '.$page.'"' at line 1
     
  19. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    УЧИ СИНТАКСИС!!!

    в начале двойная ковычка, а после равно ординарная, далее точка. Что ты этим хотел показать? Если соединяешь строки, то собирай с одинаковыми кавычками в начале и в конце

    либо

     
  20. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    SELECT * FROM groups WHERE NAME = '.$page.'

    MySQL вернула пустой результат (т.е. ноль строк). (запрос занял 0.0007 сек.)
    SQL-запрос:
    SELECT *
    FROM groups
    WHERE NAME = '.$page.'
    LIMIT 0 , 30
     
  21. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Ensiferum

    Не работает !!!


    И кстати мне не понятно

    PHP:
    1. "SELECT * FROM groups WHERE NAME = '".$page."'"
    Зачем эти точки именно здесь и куча кавычек ??

    ..я знаю фукнцию точки как присоединения..но здесь что-то другое.
     
  22. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Все заработало !! Сейчас расскажу почему !! ))
     
  23. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Надо было исправить здесь. Вместо ключа 2 использовать ключ 1.

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

    А должен был искать совпадения название группы с названием группы.

    PHP:
    1. <?php
    2.  
    3.   include('conn.php');
    4.   $sql = "SELECT * FROM groups";
    5.   $data = mysql_query($sql);
    6.   echo "<table border=3>";
    7.  
    8.   while($row=mysql_fetch_row($data)) {// ссылки
    9.   echo "<tr>";
    10.  
    11.   echo "<td>$row[0]</td><td><a href='doit.php?band=$row[1]'>$row[1]</a></td>";
    12.   echo "</tr>";
    13.  
    14.   }
    15.  
    16.   echo "</table>";
    17.  
    18. ?>
    Как видно во втором файле я специально убрал кучу кавыек и все равно все работает !! ))
    PHP:
    1.  <?php
    2.  // Устанавливаем соединение с базой данных  
    3.  include "conn.php";  
    4.  
    5.  
    6.  // Извлекаем из URL текущую страницу
    7.    
    8.  $page = $_GET[band];
    9.  
    10.  $sql = "SELECT * FROM groups WHERE NAME = '$page'";
    11.  
    12.  
    13.    $data = mysql_query($sql);
    14.    $row = mysql_fetch_row($data);
    15.    
    16.    
    17.    echo $row[3];
    18.    
    19.  
    20.  
    21.    ?>
     
  24. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    грац тя!