Необычная проблема с PHP / MYSQL - имена обрезаются - PullRequest
0 голосов
/ 16 мая 2011

Для некоторых продуктов в моей базе данных название продукта будет обрезано между <a href=" RIGHT HERE "> </a>

Он будет правильно отображаться через визуальную сторону HTML. Но ссылка иногда отображает сокращенное имя.

Кто-нибудь знает, почему это может быть?

Кажется, я даже не думаю, в чем проблема?

            $result = mysql_query($query);
            while($row = mysql_fetch_row($result))
                {


        $namelink = str_replace(" ","_",$row[1]);



print <<< PRODUCT_RESULTS
    <table  cellpadding="5" cellspacing="5" id="vProducts">
        <tr>
                <td><img src="$row[3]"/></td>
                <td id="productTitle"><a href="/view_product1.php?name=$namelink&model=$row[0]">$row[1]</a><br />
                <li>Model: $row[0]</li>
                </td>
        </tr>
    </table>
    <div style="width:749px; height:1px; background:#CCC;"></div>

PRODUCT_RESULTS;
}

Структура таблицы:

   CREATE TABLE `products` (
  `modelNumber` varchar(100) NOT NULL DEFAULT '',
  `name` varchar(400) DEFAULT NULL,
  `shortDescription` varchar(500) DEFAULT NULL,
  `image` varchar(400) DEFAULT NULL,
  `largeImage` varchar(400) DEFAULT NULL,
  `url` varchar(400) DEFAULT NULL
  )

Ответы [ 2 ]

1 голос
/ 16 мая 2011

Это может показаться сумасшедшим, но у вас есть >, " или какой-то другой символ, который может привести к некорректному HTML в этой записи? Что происходит, когда вы используете «просмотр источника»? Это все еще отрезано?

Кроме того, я не знаю, понимаете ли вы это, но вы делаете двойной поиск по этим переменным. Это не только медленнее, но и сложнее отлаживать. Вместо этого:

             <td id="productTitle">
                  <a href="/view_product1.php?name=$namelink&model=$row[0]">
                      $row[1]
                  </a>
                  <br />
                  <li>Model: $row[0]</li>

Установите переменные перед печатью, эквивалентные каждому из индексов массива, а затем выведите результат.

Вы также можете избавиться от вызова на печать и просто использовать ?> <?php. Очевидно, что вам нужно будет выводить содержимое переменных вручную, как только вы это сделаете, но, возможно, это будет чище и яснее.

1 голос
/ 16 мая 2011

Измените $row[3] на $row[image] и $row[0] на $row[modelNumber] и т. Д. И если это не сработает, мне нужно будет увидеть запрос $.

Редактировать: Krinkle (комментарий ниже), предлагает использовать $row["image"] и $row["modelNumber"], что является лучшей практикой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...