1. Народ где ошибка может быть? У меня for( $id=0; $id<=4; $id++); Переменная $id срабатывает сразу с "4" а не с "0" 2. И как можно доделать скрипты чтоб все выводило по порядку: Id "1" Name "Цой" Sub "Рок" URL "http://" ... Id "4" Name "Шевчук" Sub "Рок" URL "http://" Расчитываю на вашь профессиональный опыт) db:"Sound" From: "main" || [id] [name] [dis] [code]<?php try { $pdo = new PDO...{ echo "Ничего не найдено."; } }?>[/code]
ты используешь одну переменную (i) и для итерации от нуля до четырех и для итерации полей результата запроса к субд. внимательность.
а язык тут каким местом? это алгоритмизация. если ты не одупляешь что нужно использовать две разные переменные то тебе лучше пока отложить программирование. мышлялку развивай Добавлено спустя 1 минуту 50 секунд: ай-ай-ай... прошу прощения)))) привидилось мне что там $i вместо $id. ща секунду ведёрко кофе выпью и вернусь))) Добавлено спустя 1 минуту 18 секунд: а покажи какая страница у тебя получается. и есть ли у тебя айдишники вообще ниже 4 Добавлено спустя 1 минуту: ну и кстати если первичный ключ с автоинкрементом то нулевого айдишника быть не может. итерируй от 1. и можно 4 запроса к субд не делать а одним обойтись и разом по 4 строкам пройтись.
Connect to the database OK! 5 Мумитроль Rock http:// Если я поставлю for( $id=1; $id<=4; $id++); Нечего не измениться. У него 4 это моя 5я позиция в SQL Словно я ему сразу указал что переменная $id=4; ----- Всё брат Разобрался! надо было просто урать ";" for( $id=0; $id<=2; $id++); { ... } На for( $id=0; $id<=2; $id++) { ... }
значит нет айдишников ниже 4. попробуй первой строкой в теле цикла выводить текущее значение айдишника и убедись что цикл перебирает все значения от 1 до 4 включительно.
Всё брат Разобрался! надо было просто урать ";" for( $id=0; $id<=2; $id++); { ... } На for( $id=0; $id<=2; $id++) { ... } Id "1" Name "Цой" Sub "Рок" URL "http://" до 5 Мумитроль Rock http:// И потом ещё: Ничего не найдено.Ничего не найдено.Ничего не найдено.Ничего не найдено.Ничего не найдено.Ничего не найдено.Ничего не найдено.Ничего не найдено. Так как: for( $id=1; $id<=10; $id++) { ... } Как теперь бы сделать так чтоб $id<=10; работал до того момента как таблицы в SQL не закончиться.
for( $id=1; $id; $id++) { $data->execute(array('id' => $id)); $result = $data->fetchAll(); if ( count($result) ) { foreach($result as $row) { $i = 0; $i < count($row); echo($row[$i++] . " "); echo($row[$i++] . " "); echo($row[$i++] . " "); echo($row[$i++] . " </br>"); } } else { exit(); // Вместо Ничего не найдено... } } Вот так он выводит до конца. Мне пока так нужно. А одним запросом я не понимаю, про что ты и для чего бы это нужно было) Как то так)
вот я тут уже одному одаренному рассказывал что его мамка послала за десятком яиц, тот пошел оделся, спастился, сел в маршрутку, доехал до ашана, купил яйцо, вернулся домой, выложил яйцо, разделся, оделся, спустился и так далее пока дома не набрался десяток яиц. выборка всех строк это вообще азы работы с рсубд. выборка по условию это уже чуть более частное. если ты вдруг пропустил начало то конечно делай сотню запросов. тебе так удобнее. ты так знаешь.
Понял не дурак, блин надо теперь подумать как это сделать) else { exit; } Не подходит, php и html перестаёт работать, дальше это команды.
не, знаешь, не обижайся но... на пальчиках показываем как в детском садике. есть у тебя числовой ряд 1-2-3-4-5 и ты его выбираешь пятью запросами явно указывая за один запрос один идентификатор строки можно сделать: 1) 1 запрос в котором перечислить идентификаторы тех строк которые тебе нужны (один, два, три, четыре, пять) . или 2) 1 запрос в котором ты явно указываешь первый и последний идентификаторы (больше или равно одному и меньше или равно пяти) или 3) 1 запрос в котором явно указать только правую границу диапазона (меньше или равно пяти) так или иначе но даже когда ты делаешь один запрос и он тебе возвращает результирующую таблицу - ты перебираешь в ней все строки. но только у тебя по роду запроса получается что там лежит только по одной строке. сделай запрос который вернет пять строк и будешь итерировать через пять строк. магия блин? не думаю. просто мануалы нужно читать.
Ganzal, Не знаю, я тебя тяжело понимаю) Если честно я вообще с последнего сообщения не чего не понял) Я PHP изучаю третье сутки.
проблема не в языке программирования а в умении сформулировать алгоритм. тебе основы программирования в школе классе в 7 должны были объяснить. а потом если ты только третьи сутки изучаешь пхп то почему уже работаешь с субд? ты уже прошел базовые типы данных? функциональные и объектно ориентированное программирование различаешь? уже сделал несколько связанных страниц между которыми ты данные успешно передаешь? база данных это немного следующий уровень. и поскольку ты нулевой программист то хоть трое суток хоть три месяца - результата никакого не будет. собственно то что ты выбираешь пять строк пятью запросами уже говорит о том насколько ты адекватно мыслишь и видишь данные и видишь как с ними можно работать. не важно в базе они лежат, в файле, или прям в скрипте написаны. ты одинаково НЕ умеешь с ними работать. $sql = "SELECT * FROM `table` WHERE `id` IN (1,2,3,4)"; - первый вариант запроса - перечисление айдишников $sql = "SELECT * FROM `table` WHERE `id` >= 1 AND `id` <= 5"; - второй вариант запроса - указание диапазона айдишников $sql = "SELECT * FROM `table` WHERE `id` <= 5"; - третий вариант запроса - указание верхней границы диапазона айдишников $result = query($sql); - выполняем запрос записанный в переменную скуэль. не сложно догадаться что раз там трижды шло присвоение текстового значения одной и той же переменной - там будет лежать последний текст - ТРЕТИЙ ВАРИАНТ С УКАЗАНИЕМ ВЕРХНЕЙ ГРАНИЦЫ, ваш кэп while($row = fetch($result)) { - итерируем результат пока в нем есть кортежи var_dump($row); - просто тупо дампим строку. в конце концов ты обязан уметь отлаживать приложение хотя бы таким способом. ты же уже три дня изучаешь пхп. как ты собираешься программы писать если не знаешь как она должна работать и какое состояние в какой момент иметь? } - граница цикла и вот представь себе любой из тех трех запросов вернет набор из максимум 5 строк если такие есть в базе. и тело цикла выполнится максимум пять раз и покажет тебе максимум пять строк. почему же у меня не получается для этого делать пять запросов? наверное потому что я на третьем дне изучения пхп не стремился делать то к чему не готов. удачи
Надо будет попробывать как ты предложил. Я тут уже так зделал, понравилось, может ты про это и имел ввиду... Код (Text): $sql = "SELECT id,name,description,url FROM main"; $q = $pdo->prepare($sql); $q->execute(); $q->bindColumn(1, $id); $q->bindColumn(2, $name); $q->bindColumn(3, $description); $q->bindColumn(4, $url, PDO::PARAM_LOB); while($q->fetch()) { echo("ID: " . "<b>" . $id . "</b>" . " "); echo("Name: " . "<b><a href ='" . $url . "'>" . $name . "</a></b>" . " "); // NAME + URL echo("Description: " . "<b>" . $description . "</b>" . " " . "<br>"); Спс тебе за поддержу. Ты мне один здесь обьясняешь по делу. Ты в VK есть? Если не против давай задружим)