| Autor | Správa |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3683 Bydlisko: Nitra Vek: 18
 | Zaslal: St 09.01.08 18:19 |   |
Nazdar,
som zaciatocnik v php a dnes som sa rozhodol skusit nieco s databazou. Rozhodol som sa spravit hodnotenie clankov podla manualu. Ten som nakoniec nasiel na pcsvet.cz (tento tutorial). ale ked som urobil vsetko podla navodu tak mi to neslo takmer vobec. v tom kode ktory je tam uverejneny chbyaju vseliake veci napriklad na ziskanie ID a pod. tak som porobil v kode par zmien ale nie moc velkych.. nakoniec som sa nejako dostal k tomu aby to mohlo fungovat ale v poslednom scripte (samotny akt hodnotenia) mi vypisuje toto
: | kód: | Notice: Undefined variable: znamka in h:\program files\easyphp1-8\www\emer2\hodnotenie\hodnot.php on line 5
Notice: Undefined variable: pricti in h:\program files\easyphp1-8\www\emer2\hodnotenie\hodnot.php on line 23
Notice: Undefined variable: HTTP_REFERER in h:\program files\easyphp1-8\www\emer2\hodnotenie\hodnot.php on line 26
Warning: Cannot modify header information - headers already sent by (output started at h:\program files\easyphp1-8\www\emer2\hodnotenie\hodnot.php:5) in h:\program files\easyphp1-8\www\emer2\hodnotenie\hodnot.php on line 26 |
tu mate aj kod toho suboru
| kód: | <?
$ID=$_GET['ID'];
?>
Hodnotenie:<BR>
<A HREF="hodnot.php?ID=<? echo "$ID"; ?>&znamka=1">1</A> |
<A HREF="hodnot.php?ID=<? echo "$ID"; ?>&znamka=2">2</A> |
<A HREF="hodnot.php?ID=<? echo "$ID"; ?>&znamka=3">3</A> |
<A HREF="hodnot.php?ID=<? echo "$ID"; ?>&znamka=4">4</A> |
<A HREF="hodnot.php?ID=<? echo "$ID"; ?>&znamka=5">5</A>
<BR><?
require("opendb.php");
$vysledek = MySQL_Query("SELECT * FROM hodnot WHERE ID=$ID");
$zaznam = MySQL_Fetch_Array($vysledek);
$prvni=$zaznam["Celek"];
$druhe=$zaznam["Pocet"];
@$prumer=$prvni/$druhe;
if(!$prumer):
echo "Clanok este nebol hodnoteny.";
else:
echo "Znamka: $prumer";
echo "<BR>";
echo "Hlasovalo: ";
echo "$druhe". "ludi";
endif;
?> |
|
| |
    |
 |
kmsa
 Užívateľ
 Založený: 26.07.2006 Príspevky: 1383 Bydlisko: Slovakia-Košice
 | Zaslal: St 09.01.08 18:41 |   |
skus tam hodit
| kód: |
<?
$ID=$_GET['ID'];
?>
Hodnotenie:<BR>
<A HREF="hodnot.php?ID=<? echo $ID; ?>&znamka=1">1</A> |
<A HREF="hodnot.php?ID=<? echo $ID; ?>&znamka=2">2</A> |
<A HREF="hodnot.php?ID=<? echo $ID; ?>&znamka=3">3</A> |
<A HREF="hodnot.php?ID=<? echo $ID; ?>&znamka=4">4</A> |
<A HREF="hodnot.php?ID=<? echo $ID; ?>&znamka=5">5</A>
<BR><?
require("opendb.php");
$vysledek = MySQL_Query("SELECT * FROM hodnot WHERE ID=$ID");
$zaznam = MySQL_Fetch_Array($vysledek);
$prvni=$zaznam["Celek"];
$druhe=$zaznam["Pocet"];
@$prumer=$prvni/$druhe;
if(!$prumer) {
echo "Clanok este nebol hodnoteny.";
} else {
echo "Znamka:". $prumer;
echo "<BR>";
echo "Hlasovalo: ";
echo $druhe. "ludi";
}
?> |
mno neskusal som to ale skus to
inac nauc sa citat aj z chyby nielen pitat sa |
_________________ CPU: Intel E7200 momentalne default + freezer 7 pro | MB: Gigabyte GA-P35-DS3 rev. 2.0 F14 | RAM: A-DATA 4x1GB EE Vitesta | VGA: ATI Radeon HD4850 Sapphire Dual Slot | Monitor: BenQ E2200HD+17CTX | HDD: WD 3200AAKS + Maxtor 6Y080M0 80GB SATAII + 120GB ATA Barracuda | PSU: Corsair VX450W | Windows 7 Ultimate Sk | REPRO: Logitech X-210
+
IPhone 3GS JB 3.1.3 (new BR)
múdry sa postara o seba ale ešte múdrejši sa postara aj o druhých | |
    |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3683 Bydlisko: Nitra Vek: 18
 | Zaslal: St 09.01.08 18:46 |   |
a sakra.. ja som omilom zly kod poslal..
ospravedlnujem sa... chyby mi pise v tomto
| kód: | <?
require("opendb.php");
$ID = $_GET['ID'];
switch($znamka) {
case "1":
$pricti = "1";
break;
case "2":
$pricti = "2";
break;
case "3":
$pricti = "3";
break;
case "4":
$pricti = "4";
break;
case "5":
$pricti = "5";
break;
}
mysql_query("update hodnot set celek=celek+$pricti where id=$ID");
mysql_query("update hodnot set pocet=pocet+1 where id=$ID");
MySQL_Close();
Header("location: $HTTP_REFERER");
?> |
|
_________________ Pocity popi*i, keď víš že všetko hrá jak má, vychádza to všetko pekne, tak jak má, hovorim si ná ne, musíš vedeť plánovať | |
    |
 |
vl4kn0
 Užívateľ
 Založený: 22.11.2007 Príspevky: 254 Bydlisko: 127.0.0.1
 | Zaslal: St 09.01.08 18:51 |   |
| Glupak napísal: | a sakra.. ja som omilom zly kod poslal..
ospravedlnujem sa... chyby mi pise v tomto
| kód: | <?
require("opendb.php");
$ID = $_GET['ID'];
switch($znamka) {
case "1":
$pricti = "1";
break;
case "2":
$pricti = "2";
break;
case "3":
$pricti = "3";
break;
case "4":
$pricti = "4";
break;
case "5":
$pricti = "5";
break;
}
mysql_query("update hodnot set celek=celek+$pricti where id=$ID");
mysql_query("update hodnot set pocet=pocet+1 where id=$ID");
MySQL_Close();
Header("location: $HTTP_REFERER");
?> |
|
neni ta switch konstrukcia trochu zbytocna? a potom premennu $HTTP_REFERER si nikde nealokoval. ked tak uz $_SERVER['HTTP_REFERER'] |
_________________ PODPIS BOL ZMAZANY Z DOVODU NERESPEKTOVANIA PRAVIDIEL FORA!!!
Je povolených max. 5 riadkov s veľkosťou písma 9 (rozlíšenie 1280x1024px).
Sprava pre vedenie fora: ake nerespektovanie pravidiel. ved som mal v podpise citaciu na 2 riadky omg? lol? no a este jabber ale to neni moja chyba ze tu nemate input aj na jabber... | |
     |
 |
suchy
 Čestný člen
 Založený: 17.10.2006 Príspevky: 1770
 | Zaslal: St 09.01.08 18:56 |   |
undefined variable. daj tam $GET['znamka']; tym ti zmizne aj chyba na line 23, dalej http_referer zamen za $_SERVER['HTTP_REFERER']. posledny warning ti vravi, ze odosielas hlavicky uz po odoslani nejakych dat do vystupu, co sa neda, takze si to cele zbehni este raz a oprav. videl by som to na opendb.php kedze tu som si nic take nevsimol |
_________________ A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table. | |
     |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3683 Bydlisko: Nitra Vek: 18
 | Zaslal: St 09.01.08 19:24 |   |
tak teraz som to zas trochu pomenil (dik suchy) a uz nevypisuje ziadne chyby ale znamku nezapisuje resp. nevypocita priemer ani nic.
pridanie clanku:
| kód: |
<FORM ACTION="obsluha.php" METHOD="get">
Nove ID clanku: <INPUT TYPE="text" NAME="ID"><INPUT TYPE="submit" VALUE="Vlozit ID">
</FORM>
|
obsluha.php
| kód: |
<?
$ID = $_GET['ID'];
MySQL_Connect("localhost", "meno", "heslo");
MySQL_Select_DB("data");
MySQL_Query("INSERT INTO hodnotenie VALUES('$ID', '', '');");
MySQL_Close();
header("location: hodnotenie.php?ID=$ID")
?>
|
hodnotenie.php
| kód: |
<?
$ID=$_GET['ID'];
?>
Hodnotenie:<BR>
<A HREF="hodnot.php?ID=<? echo $ID; ?>&znamka=1">1</A> |
<A HREF="hodnot.php?ID=<? echo $ID; ?>&znamka=2">2</A> |
<A HREF="hodnot.php?ID=<? echo $ID; ?>&znamka=3">3</A> |
<A HREF="hodnot.php?ID=<? echo $ID; ?>&znamka=4">4</A> |
<A HREF="hodnot.php?ID=<? echo $ID; ?>&znamka=5">5</A>
<BR><?
MySQL_Connect("localhost", "meno", "heslo");
MySQL_Select_DB("data");
$vysledek = MySQL_Query("SELECT * FROM hodnot WHERE ID=$ID");
$zaznam = MySQL_Fetch_Array($vysledek);
$prvni=$zaznam["Celek"];
$druhe=$zaznam["Pocet"];
@$prumer=$prvni/$druhe;
if(!$prumer) {
echo "Clanok este nebol hodnoteny.";
} else {
echo "Znamka:". $prumer;
echo "<BR>";
echo "Hlasovalo: ";
echo $druhe. "ludi";
}
?>
|
hodnot.php
| kód: |
<?
$ID = $_GET['ID'];
$pricti = $_GET['znamka'];
MySQL_Connect("localhost", "meno", "heslo");
MySQL_Select_DB("data");
mysql_query("update hodnot set celek=celek+$pricti where id=$ID");
mysql_query("update hodnot set pocet=pocet+1 where id=$ID");
MySQL_Close();
?>
|
|
| |
    |
 |
kmsa
 Užívateľ
 Založený: 26.07.2006 Príspevky: 1383 Bydlisko: Slovakia-Košice
 | Zaslal: St 09.01.08 21:08 |   |
taze ti vobec neprida ziaden bod nic?
ako sa to sprava pri prejdeni si to od zaciatku kodu tj. co to roby ak vlozis to id atd |
_________________ CPU: Intel E7200 momentalne default + freezer 7 pro | MB: Gigabyte GA-P35-DS3 rev. 2.0 F14 | RAM: A-DATA 4x1GB EE Vitesta | VGA: ATI Radeon HD4850 Sapphire Dual Slot | Monitor: BenQ E2200HD+17CTX | HDD: WD 3200AAKS + Maxtor 6Y080M0 80GB SATAII + 120GB ATA Barracuda | PSU: Corsair VX450W | Windows 7 Ultimate Sk | REPRO: Logitech X-210
+
IPhone 3GS JB 3.1.3 (new BR)
múdry sa postara o seba ale ešte múdrejši sa postara aj o druhých | |
    |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3683 Bydlisko: Nitra Vek: 18
 | Zaslal: St 09.01.08 22:04 |   |
napisem cely postup ako to robim (idem od zaciatku)
1. vytvorim tabulku 'hodnot', po vytvoreni ma hned presmeruje na pridaj.html
2. takze vlozim nejake ID napriklad 1
3. potom sa dotanem uz na samotnu stranku (hodnotenie.php) kde su uz odkazy na znamkovanie.
4. dam znamku a hodi ma napr. na hodnot.php?ID=1&znamka=5.. nevypise ziadnu chybu ale neprida ani ziadny zaznam do databazy.. vtedy ked vypisovalo tie chyby tak nieco pridavalo do databazy ale uz nevm co.. ale asi to bolo neco (podla mna) nepodstatne ked som si nezapametal...
EDIT:// teraz som si vsimol, ze pri polozke 'Záznamov' v phpmyadmin je taka ziarovka a ako titulok je tam "May be approximate. See FAQ 3.11"... moze to byt nieco s tim? |
| |
    |
 |
andreas
 Užívateľ
 Založený: 02.01.2008 Príspevky: 123 Bydlisko: Košice
 |
Pozeram na to a zda sa mi tam nieco divne. Nedal si tu sice strukturu tej tabulky v databaze, ale tipujem, ze skripty pracuju iba s jednou... lenze ty vkladas do databazy v subore obsluha.php do tabulky hodnotenie a v dalsich skriptoch vyberas udaje z tabulky hodnot. |
_________________ NB: MacBook Pro 8.1, Toshiba Portege M800-107, Acer 1410-742G25
PC:
Zdroj: Corsair HX 520W | CPU: Core 2 Quad Q9650 + Noctua NH-C12P | MB: Asus P5Q Turbo | RAM: 2x 2GB DDR2 Corsair XMS2 1066 MHz | VGA: Sapphire Radeon HD4890 1GB | HDD: Seagate 500GB SATAII + 2x 250GB | CASE: AeroCool ExtremEngine 3T | 24" LCD HP LP2475w, repro Genius SW-HF5.1 5000 | |
  |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3683 Bydlisko: Nitra Vek: 18
 | Zaslal: Št 10.01.08 15:38 |   |
andreas... mas pravdu... uz tomu prestavam celkom chapat... a teraz som si vsimol ze som tu osalal kod obsluha.php z druheho pokusu.. ale tam je iba zmeneny nazov tabulky..
//edit... nemohli by ste poradit nejaky dobry sposob na vytvorenie hodnoteni clanku? |
| |
    |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3683 Bydlisko: Nitra Vek: 18
 | Zaslal: Št 10.01.08 17:27 |   |
tak našiel som si iny tutorial lebo z hentoho som bol vedla...
pouzil som
tento tut a po par upravach to zacalo naozaj fungovat....
---
mimo veci.. aj teraz sa mi potvrdilo, ze ctrl+c a ctrl+v z tutorialov nikdy nefunguju.... treba tam vzdy nejake upravy.. ci uz vacsie alebo mensie zeby autory naschval tak stavali tie navody?  |
| |
    |
 |
suchy
 Čestný člen
 Založený: 17.10.2006 Príspevky: 1770
 | Zaslal: Št 10.01.08 17:39 |   |
| citácia: | | zeby autory naschval tak stavali tie navody? | no ten kod co si sem pastol mi pripada jak z dob davno minulych, cize problem bude tam. dost dolezita je aj konfiguracia servera na ktorom to pustas. |
_________________ A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table. | |
     |
 |
|