Autor | Zpráva | ||
---|---|---|---|
ondrej16556 Profil |
#1 · Zasláno: 20. 3. 2010, 09:38:43 · Upravil/a: ondrej16556
Dobrý deň,
Potreboval by som poradiť ako dať premennú do napr. $a tak, aby zobrazilo názov premennej a nie obsah a zároveň do $a dať 2. premennú ale aby zobrazilo jej obsah. Mám takýto skript: for($hodnota = 1; $hodnota <= $budovy; $hodnota++) { $query = "SELECT * FROM budovy WHERE id = $hodnota"; $result = mysql_query($query); list($p1, $p2, $p3, $p4, $p5, $p6, $p7, $p8) = mysql_fetch_row($result); $data2 = "INSERT INTO budovy(id, username, nazov, stupen, viac, viac2, nova, koniec) VALUES ($p1, '$p2', '$p3', $p4, $p5, $p6, $p7, $p8)"; $kondata = "$query = \"$data2\""; $file = FOpen("../../Zaloha/$nazov", "r+"); $data = FRead($file, FileSize("../../Zaloha/$nazov")); FWrite($file, $data+$kondata); FClose($file); } Ale namiesto $kondata = "$query = \"$data2\""; mi to hádže 0. Ako by som to mohol spraviť? |
||
Leopik 2x Profil |
#2 · Zasláno: 20. 3. 2010, 09:41:59
takto?
$a = '$b'; echo $a; // vypise "$b"; |
||
ondrej16556 Profil |
#3 · Zasláno: 20. 3. 2010, 09:47:44
Nejako takto:
echo $kondata; //vypíše sa $query = "INSERT INTO budovy(id, username, nazov, stupen, viac, viac2, nova, koniec) VALUES (1, '2', '3', 4, 5, 6, 7, 8)"; |
||
Leopik 2x Profil |
#4 · Zasláno: 20. 3. 2010, 10:31:22 · Upravil/a: Leopik 2x
$kondata = '$query = "' . $data2 . '";'; |
||
ondrej16556 Profil |
#5 · Zasláno: 20. 3. 2010, 10:43:14
Ďakujem, ale ešte mám jednu otázku.
$query = "SELECT COUNT(id) FROM budovy"; $result = mysql_query($query); list($budovy) = mysql_fetch_row($result); Ako dosiahnem, aby vo výpise som mal počítaný ďalší autoindex? |
||
rexi Profil * |
#6 · Zasláno: 20. 3. 2010, 12:21:33
Přes foreach třeba takto
$query = "SELECT COUNT(id) FROM budovy"; $result = mysql_query($query); list($budovy) = mysql_fetch_row($result); foreach ($budovy as $barak => $index) { echo $index.'. - '.$barak; } |
||
ondrej16556 Profil |
#7 · Zasláno: 20. 3. 2010, 17:08:45
rexi:
Ale vypíše mi Warning: Invalid argument supplied for foreach() in /home/users/adminstr/stredovek.comehere.cz/web/Dedina/Admin/pokracovanie_zaloha.php on line 13 |
||
Nox Profil |
#8 · Zasláno: 20. 3. 2010, 17:23:46
Taky je to nesmysl, daná query bude vracet vždy jen 1 záznam
Ten tvůj skript je hodně divoký.... Nejdřív si vybereš id *úplně všech* budov, pak si z nich vytáhneš 8 (proč teda query na všechny?) do očíslovaných! proměnných Potom to znovu vkládáš do té tabulky a pak ještě do souboru... A ještě tuplem je to v cyklu.... který začíná na hodně 67 která je napevno narvaná do kódu a ani není jasný, co znamená... Nechápu základní věc: co je účelem toho kódu? Pak se možná někam pohnem |
||
ondrej16556 Profil |
#9 · Zasláno: 20. 3. 2010, 17:27:36 · Upravil/a: ondrej16556
Účelom je, aby vypísalo premenné a vložilo ako obyčajný text do php kódu(do súboru).
A ako by som mohol spraviť, aby mi to vrátilo 67 záznamov? //EDIT napríklad vypíše premenné a vloží ako $query = "INSERT INTO budovy(id, username, nazov, stupen, viac, viac2, nova, koniec) VALUES (1, '2', '3', 4, 5, 6, 7, 8)"; |
||
ondrej16556 Profil |
#10 · Zasláno: 20. 3. 2010, 17:32:53
Tu máš celý kód:
<? session_start() ?> <body bgcolor="#980000"> <?php require_once "../../db.php"; $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die(""); mysql_select_db($_SESSION["server"]); $nazov = $_SESSION['nazov']; //výpis $query = "SELECT COUNT(id) FROM budovy"; $result = mysql_query($query); list($budovy) = mysql_fetch_row($result); for($hodnota = 1; $hodnota <= $budovy; $hodnota++) { $query = "SELECT * FROM budovy WHERE id = $hodnota"; $result = mysql_query($query); list($p1, $p2, $p3, $p4, $p5, $p6, $p7, $p8) = mysql_fetch_row($result); $data2 = "INSERT INTO budovy(id, username, nazov, stupen, viac, viac2, nova, koniec) VALUES ($p1, '$p2', '$p3', $p4, $p5, $p6, $p7, $p8)"; $kondata = '$query = "' . $data2 . '";' . "\n"; $file = FOpen("../../Zaloha/$nazov", "r+"); $data = FRead($file, FileSize("../../Zaloha/$nazov")); FWrite($file, $kondata); FClose($file); } $query = "SELECT * FROM dedina"; $result = mysql_query($query); $query = "SELECT * FROM lode"; $result = mysql_query($query); ?> |
||
Nox Profil |
#11 · Zasláno: 20. 3. 2010, 17:52:22 · Upravil/a: Nox
...už to po dlouhé době asi chápu, proč to ale proboha načítáš po jednom řádku?
na zálohování DB to stejně vypadá dost krkolomně, použij SELECT .... INTO OUTFILE a máš to stejné na 1 řádku! --------------------------------------------------------------- (ne až tak) "drobnosti" řádky 1 > radši <?php 4 > používej radši absolutní adresování s rootem uloženým do konstanty, pak nebudeš při přesunu muset přepisovat kompletně celý kód! 6 > proč žádná hláška v die() a proč tedy ty uvozovky? dej si tam třeba "Nepovedlo se připojit k DB" 10 > v tomhle případě je myslim spešl proměnná zbytečná 12 > nepoužívej "$budovy" protože tam nejsou budovy, ale jen jejich počet" -> $pocetBudov např. 12 > proč list a fetch na 1 buňku -> $pocetBudov = mysql_result("SELECT COUNT(*) FROM budovy", 0); 16 > proč takhle prasácky čísla v proměnné, proč ne pole? -> $budova = mysql_fetch_row($result); 19 > opět cesty... 20 > není tenhle řádek zbytečný? 19-22 > jde použít file_put_contents() Tvůj kód taky operuje s tím, že IDčka jdou jedno za druhým a není tam díra, ale ve skutečnosti tam může záznam chybět a pak to nepojede jak bys chtěl dělej občas prázdné řádky, bude se to líp číst |
||
ondrej16556 Profil |
#12 · Zasláno: 20. 3. 2010, 18:09:33
Nox:
1 > ok 4 > ok 6 > ok 10 > Prečo? Takto: $result = mysql_query("SELECT COUNT(id) FROM budovy!"); list($budovy) = mysql_fetch_row($result); 12 > ok 12 > Píše mi Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home/users/adminstr/stredovek.comehere.cz/web/Dedina/Admin/pokracovanie_zaloha.php on line 10 18 > ok 20 > Nie, nie je. Ten súbor je už tam vytvorený |
||
Nox Profil |
#13 · Zasláno: 20. 3. 2010, 18:15:02 · Upravil/a: Nox
ondrej16556:
10 > ano (bez vykřičníku) 12 > jasně, chybka -> $pocetBudov = mysql_result(mysql_query("SELECT COUNT(*) FROM budovy"), 0); 20 > no...ale nikde dál nevidím proměnnou $data použitou *) tento zápis je ok jen pro query, které vždy vrací hodnotu.... pokud bys chtěl vzít třeba textovou hodnotu z řádku podle id a řádek s tím id by tam nebyl, hodilo by to chybu, takže nejdřív query, pak zjistit jestli to něco vrátilo a pak teprv mysql_result() |
||
ondrej16556 Profil |
#14 · Zasláno: 20. 3. 2010, 19:00:08
Súbor zaloha.php:
<?php $vykonaj = 1; if($vykonaj == 1): $den = date("d"); $mesiac = date("m"); $rok = date("Y"); $hodina = date("H"); $minuta = date("i"); $sekunda = date("s"); $nazov = "backup-$den-$mesiac-$rok---$hodina-$minuta-$sekunda.php"; $vykonaj = 0; endif; $_SESSION['nazov'] = $nazov; $data = '<? session_start() ?> <html> <head> <link rel="stylesheet" type="text/css" href="../active.css"> <link rel="stylesheet" type="text/css" href="../styly.css"> <meta http-equiv="Content-type" content="text/html; charset=Windows-1250"> </head> <body bgcolor="#980000"> <?php require_once "../db.php"; $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die(""); mysql_select_db($_SESSION["server"]); /* -- phpMyAdmin SQL Dump -- version 3.2.2 -- http://www.phpmyadmin.net -- -- Hostiteľ: localhost -- Verzia serveru: 5.1.41 -- Verzia PHP: 5.2.10 */ $query = "SET SQL_MODE=\"NO_AUTO_VALUE_ON_ZERO\""; mysql_query($query); /* -- -- Databáza: `` -- -- -------------------------------------------------------- -- -- Štruktúra tabuľky pre tabuľku `budovy` -- */'; $file = FOpen("../../Zaloha/$nazov", "a+"); FWrite($file, $data); FClose($file); $go = true; if($go == true): header("Location: pokracovanie_zaloha.php"); endif; ?> |
||
Nox Profil |
#15 · Zasláno: 20. 3. 2010, 19:38:10
Kromě toho že
$den = date("d"); $mesiac = date("m"); $rok = date("Y"); $hodina = date("H"); $minuta = date("i"); $sekunda = date("s"); $nazov = "backup-$den-$mesiac-$rok---$hodina-$minuta-$sekunda.php"; => $nazov = "backup-".date("d-m-Y--H-i-s").".php"; tak....to furt není argument proti INTO OUTFILE ;) |
||
Časová prodleva: 14 let
|
0