Есть конструкция if и else , как сделать так чтобы else вывелся не сразу после выполнения условия , а через 5 минут.
Нужно скачать страничку по ссылке, которую я получаю из другой ссылки. Делаю так: PHP: $parse_url = file_get_contents('http://test1.ru/777/server.php?parse_url=http://test1.ru/777/index.php');echo($parse_url); // возвращает ссылку текст: http://ya.ru$content = file_get_contents("$parse_url");// пытаюсь скачать страничку http://ya.ru echo($content); Но возвращает ошибку: Warning: file_get_contents( http://ya.ru ) [function.file-get-contents]: failed to open stream: Invalid argument in G:\OpenServer\domains\test1.ru\777\index.php on line 12 подскажите плиз как быть
Добрый день, подскажите пожалуйста. Вывожу данные из БД, циклом while при помощи foreach. Вот таким кодом: PHP: <?php//Запрос к БД table_products$result = mysqli_query($link, 'SELECT * FROM table_products');//Вывод товаров циклом whilewhile ($row = mysqli_fetch_assoc($result)) {foreach ($row as $key => $value) {$image = 'uploads_images/'.$row['image'];$title = $row['title'];$price = $row['prise'];$mini_features = $row["mini_features"];}}echo $title;echo $prise;echo $mini_features;?> И выводится только последняя запись в БД, а не все записи которые в БД. Подскажите как вывести все записи? з.ы. Желательно с комментариями что-бы не просто узнал решение, а понял как это работает. Спасибо за помощь.
У тебя вывод уже после того, как цикл прошёл. То есть переменная менялась много раз за время цикла, и выводишь ты то, что получилось за последнее изменение. Просто блок с echo помести до закрытия фигурных скобок. И мне кажется, у тебя цикл foreach лишний. По идее так: PHP: <?php//Запрос к БД table_products$result = mysqli_query($link, 'SELECT * FROM table_products');//Вывод товаров циклом whilewhile ($row = mysqli_fetch_assoc($result)) {$image = 'uploads_images/'.$row['image'];$title = $row['title'];$price = $row['prise'];$mini_features = $row["mini_features"];echo $title . "\n";echo $prise. "\n";echo $mini_features. "\n\n";}?>
Понял, спасибо. Хочу поместить echo $title в html код, но не хочу html писать в php. Приходится разрывать while, писать html разметку, а после html тогда прописывать endwhile;. Мне такой салат не очень нравится и хочу вывести php код в отдельный файл, и потом его подключать уже непосредственно в html при помощи include. Для этого и попробовал добавить в while foreach. Если подскажите чтиво для создания такого способа буду премного благодарен.
PHP: <?php//Запрос к БД table_products$result = mysqli_query($link, 'SELECT * FROM table_products');//Вывод товаров циклом whilewhile ($row = mysqli_fetch_assoc($result)) {$image = 'uploads_images/'.$row['image'];$title = $row['title'];$price = $row['prise'];$mini_features = $row["mini_features"];?>Тайтл: <?=$title ?><br/>Зэ прайс: <?=$price ?><br/>Мини-фичи: <?=$mini_features ?><br/><?php}?> Должно сработать
Именно такой способ я в данный момент и использую, а хочу так: PHP: while ($row = mysqli_fetch_assoc($result)) { $image = 'uploads_images/'.$row['image']; $title = $row['title']; $price = $row['price']; $mini_features = $row["mini_features"]; } HTML: <?php include='путь к файлу с циклом while' ?> <p>Название <?=$title?></p> <p>Цена <?=$price?></p> <p>Характеристики <?=$mini_features?></p>
Как не очень правильный вариант: можно в инклуженном файле создавать массив всех строк с помощью того же while или mysqli_fetch_all. А после инклуда (в основном скрипте) – другой while, выводящий уже из этого массива. Тогда мы исключим работу с базой в коде основного файла. Но это ли требуется?
Только учусь php поэтому и интересуюсь разными методами, и решением интересующих вопросов. Смысла не вижу в том что-бы подключать include и в основном еще один while выводить, проще тогда сразу вывести while в основном. Спасибо за помощь, пойду лучше читать книги с мануалами.
Ребят, подскажите как можно упростить данный код? HTML: <form action="zagadki.php" method="post"> <p>Крыльями машет, а улететь не может.</p> <input type="text" name="o1"><br> <p>Висит груша, нельзя скушать.</p> <input type="text" name="o2"><br> <p>Весь день за мной шагала, а в темноте пропала.</p> <input type="text" name="o3"><br> <input type="submit" value="Проверить"> </form> PHP: <?php $otgadki = 0; $z1 = "мельница"; $o1 = $_POST['o1']; if ($z1 == $o1) { $otgadki++; } $z2 = "лампочка"; $o2 = $_POST['o2']; if ($z2 == $o2) { $otgadki++; } $z3 = "тень"; $o3 = $_POST['o3']; if ($z3 == $o3) { $otgadki++; } echo "Правильных ответов $otgadki"; ?>
Он и так проще не куда, сложного в нем ничего. Единственное что можно сократить на создании ненужных переменных и ненужных фигурных скобках в одно строчных условиях. Code: <?php $otgadki = 0; if($_POST['o2'] == "лампочка") $otgadki++; if($_POST['o1'] == "мельница") $otgadki++; if($_POST['o3'] == "тень") $otgadki++; $otgadki++; ?>
Code: <?php $otgadki = 0; if(isset($_POST['o2']) && $_POST['o2'] == "лампочка") $otgadki++; if(isset($_POST['o1']) && $_POST['o1'] == "мельница") $otgadki++; if(isset($_POST['o3']) && $_POST['o3'] == "тень") $otgadki++; $otgadki++; ?>
Спасибо, код то простой, а спросил потому что стало интересно как его можно упростить, что-бы было меньше писанины. Совсем не подумал про запись $_POST в условие if.
Пыщь PHP: $otgadki = 0;// мб код какой ещё. а если нет, то на следующей строке вместо += можно просто =// тогда вообще всё в одну строку =-p$otgadki+=(($_POST['o1'] == "лампочка")?1:0) + (($_POST['o2'] == "мельница")?1:0) + (($_POST['o3'] == "тень")?1:0); Есть ещё второй вариант: ($_POST['o2'] == "...") это значения булевого типа, можно приводить их к int (например, (int)($_POST['o2'] == "лампочка")) и просто складывать. Тогда тоже в одну строку получится. PHP: $otgadki = 0;// мб код какой ещё. а если нет, то на следующей строке вместо += можно просто =// тогда вообще всё в одну строку =-p$otgadki+=(int)($_POST['o1'] == "лампочка") + (int)($_POST['o2'] == "мельница") + (int)($_POST['o3'] == "тень"); Вообще это способы сократить код, но они вряд ли его упрощают, т.к. не делают проще читаемым