Problem s mysql_fetch_row – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Problem s mysql_fetch_row – PHP – Fórum – Programujte.comProblem s mysql_fetch_row – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Kozel
~ Anonymní uživatel
11 příspěvků
12. 4. 2008   #1
-
0
-

Zdravim, dostal jsem se do situace, z ktere nevidim bohužel východisko. Byl bych rád, kdyby mi někdo pomohl, zde je část zdrojaku kde je ta chyba:

{

$result = mysql_query("select count(*) from kosik where cookieid = '" . KosikId() . "' and produktid = $id");

$row = mysql_fetch_row($result); // ZDE MI TO HLASI LOGICKOU CHYBU V mysql_query !!!!
$pocetradku = $row[0];

if($pocetradku == 0)
{
// položka neexistuje a proto ji uložíme
mysql_query("insert into kosik(cookieid, produktid, pocet) values('" . KosikId() . "', $id, $pocet)");
}
else
{
// položka existuje, zvýšíme poèet
updateprod($id, $pocet);
}
}
.
.


Editoval hrach: Používat tagy!

Nahlásit jako SPAM
IP: 85.207.212.–
Reklama
Reklama
Kozel
~ Anonymní uživatel
11 příspěvků
12. 4. 2008   #2
-
0
-

You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near '*) from kosik where cookieid = '9c1e5a5bb8f139c2f7e038b243185429' and produktid ' at line 1
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/free/ic.cz/b/bhfw/root/www/moje/kosik.php on line 38

DOSLOVA TOTO MI TO NAPISE

Nahlásit jako SPAM
IP: 85.207.212.–
toka0
Stálý člen
12. 4. 2008   #3
-
0
-

Muzes presne popsat chybu odchycenou pres mysql_error?

Nahlásit jako SPAM
IP: 86.61.165.–
Tomáš Kavalek
Kozel
~ Anonymní uživatel
11 příspěvků
12. 4. 2008   #4
-
0
-

takto staci?? :)

Nahlásit jako SPAM
IP: 85.207.212.–
ench0
Stálý člen
12. 4. 2008   #5
-
0
-

zkus si ošetřit zpracování toho dotazu:



$dotaz = "select count(*) from kosik where cookieid = '" . KosikId() . "' and produktid = $id";
if(($result = mysql_query($dotaz)) == 1){ // tímto si teď z hlavy nejsu jistý ale nějak tak by to mělo být
.
.
.
}else{
echo "<hr />chyba ve zpracování dotazu:<hr />".$dotaz."<hr />;exit;
}

pokud ti to hodí špatný dotaz, tak jej zkus zkopírovat a zkusit zpracovat v phpmyadminu - ten ti toho o té chybě řekne dost...
btw pak to co se dovíš zkus napsat sem....

Nahlásit jako SPAM
IP: 88.146.205.–
I programování je pudová záležitost. Buď to pude, nebo to nepude
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
12. 4. 2008   #6
-
0
-

Zmizela mi ta chybova hlaska, jenže, na te strance se mi ty scrtipty nespusti... je to jako by tam nebyly...
zdrojak mam ted takto:

<?php


include("db.php");

switch($_GET["action"])
{
case "add":
{
addprod($_GET["id"], $_GET["pocet"]);
ukazkosik();
break;
}
case "update":
{
updateprod($_GET["id"], $_GET["pocet"]);
ukazkosik();
break;
}
case "remove":
{
removeprod($_GET["id"]);
ukazkosik();
break;
}
default:
{
ukazkosik();
}
}


function addprod($d, $pocet)
{
//$result = mysql_query("select count(*) from kosik where cookieid = '" . KosikId() . "' and produktid = $id");
$dotaz = "select count(*) from kosik where cookieid = '" . KosikId() . "' and produktid = $id";

if(($result = mysql_query($dotaz)) == 1){


$row = mysql_fetch_row($result);
$pocetradku = $row[0];
}else{

echo "<hr />chyba ve zpracování dotazu:<hr />".$dotaz."<hr />;"exit;

}


if($pocetradku == 0)
{
// položka neexistuje a proto ji uložíme
mysql_query("insert into kosik(cookieid, produktid, pocet) values('" . KosikId() . "', $id, $pocet)");
}
else
{
// položka existuje, zvýšíme poèet
updateprod($id, $pocet);
}
}

function updateprod($d, $pocet)
{
if($pocet == 0)
{
removeprod($id);
}
else
{
mysql_query("update kosik set pocet = $pocet where cookieid = '" . KosikId() . "' and produktid = $id");
}
}

function removeprod($id)
{
mysql_query("delete from kosik where cookieid = '" . KosikId() . "' and produktid = $id");
}

function ukazkosik()
{
$totalcena = 0;
$result = mysql_query("select * from kosik inner join produkty on kosik.produktid = produkty.id where kosik.cookieid = '" . KosikId() . "' order by produkty.jmeno asc");
?>

---------------------------------------------------
Je mi blby stim tak otravovat, ale v PHP začínám tak mi to dela trochu problemy no :/
Editoval hrach: Používat tagy!

Nahlásit jako SPAM
IP: 85.207.212.–
Kozel
~ Anonymní uživatel
11 příspěvků
12. 4. 2008   #7
-
0
-

aaaaaaaaa no to je konec :D tak sem asi tatar :D:D:D proste to tam je znova, ja predtim jakoby do toho kosiku nic nepridal :/ hele to, myslis ze kdybych ti poslal ten

kosik.php

ze by ses na to mohl mrknout treba?? jako samozrejme jestli je to blby, nebo neni cas tak v poho...ja to myslel ze kdyby se ti chtelo :) kdyztak mi napis na ThomasBurberry@email.cz nebo na 3
56-059-505

Nahlásit jako SPAM
IP: 85.207.212.–
ench0
Stálý člen
13. 4. 2008   #8
-
0
-

tož jako poslat to možeš, ale lepší to je řešit tady, aby ten problém nemuseli řešit příště jiní...

Nahlásit jako SPAM
IP: 88.146.205.–
I programování je pudová záležitost. Buď to pude, nebo to nepude
Kozel
~ Anonymní uživatel
11 příspěvků
13. 4. 2008   #9
-
0
-

tak samozřejmě :) ale jak jinak to vyrešit? okej tak jsem tady pripojil ten soubor, snad to k něčemu bude, ja to potřebuju fakt vyřešit, jinak sem mrtvej kozel... :)) zase to pise tu samou chybu, to sam hlaseni jako predtim... domnívám se, že problmém je v tom, jakmile do toho kosiku chci pridat zbozi. Zbozi pridavam takto:

<?php

include("db.php");
$result = mysql_query("select * from zbozi order by nazev asc");
?>

<?php
while($row = mysql_fetch_array($result))
{
?>
<tr>
<td width="26%">
<?php echo $row["jmeno"]; ?> </td>
<td width="21%">
<?php echo $row["cena"]; ?> Kč </td>
<td width="39%">
<?php echo $row["popis"]; ?> </td>
<td width="14%">
<a href="kosik.php?action=add&id=<?php echo $row["id"]; ?>&pocet=1">Přidat</a> </td>
</tr>
<?php
}
?>

Nahlásit jako SPAM
IP: 85.207.212.–
Gobik0
Návštěvník
13. 4. 2008   #10
-
0
-

K tomu prvnímu postu -> Seš si jistý, že máš v proměnné $id uloženou hodnotu ?

Nahlásit jako SPAM
IP: 88.81.84.–
Kozel
~ Anonymní uživatel
11 příspěvků
13. 4. 2008   #11
-
0
-

tak je pravda, ze problem asi bude v ID protoze kdyz to jakoby pridam, tak mi ID neukazuje zadnou hodnotu... ale ja prave nevim, kde je problem, proc se mi v ID nezobrazi ta hodnota...v databazi to je v poradku, podle ID se mi to vypisuje správně, ale neuklada do košíku... :(

Nahlásit jako SPAM
IP: 85.207.212.–
Gobik0
Návštěvník
13. 4. 2008   #12
-
0
-

Nevidím kde k proměnné $id přiřazuješ hodnotu, takže se to těžko určuje. Ale jako první mě hned napadlo registerglobals off..



$id = $_GET['id'];

Nahlásit jako SPAM
IP: 88.81.84.–
Kozel
~ Anonymní uživatel
11 příspěvků
14. 4. 2008   #13
-
0
-

Tak jsem asi našel kde je ta chyba, ale zas nevim, jak to vyresit, resp. který příkaz by to udělal... Takže, chyba je zde:

$dotaz = "select count(*) from kosik where cookieid = '" . KosikId() . "' and produktid = $cena";

Pracuji se dvěma tabulkama, 1) kosik 2) zbozi. COOKIEID pracuje s tabulkou kosik, ale PRODUKTID bude pracovat s tabulkou zbozi, protoze potrebuji za produktid dosadit hodnotu ceny, ktera se nachází v tabulce ZBOZI... Snad jsem to napsal dost srozumitelně :P Doufam že mi poradite nekdo jak docilit toho, abych na místo $cena dostal zkutečnou hodnotu z uvedené tabulky :)

Nahlásit jako SPAM
IP: 85.207.212.–
14. 4. 2008   #14
-
0
-

SELECT (sem si dej co chces, pro urceni tabuky pouzij tabulka.jmeno_radku) FROM  kosik JOIN zbozi where cookieid=... AND kosik.produktid=zbozi.cena



Jen doufam ze nepouzivas cenu jako primarni sloupec...jestli jo, tak to cele muzes rovnou hodit do kose ;)

Jako primarni sloupec je v 99% pripadu nejlepsi pouzivat nezavisly autoincement integer.

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
Kozel
~ Anonymní uživatel
11 příspěvků
14. 4. 2008   #15
-
0
-

tak ja uz nevim jako :( sem asi fakt tatar... v PHP zacinam, tak proto mi to nejde no :/ napsal jsem to takhle:

$dotaz = "SELECT (zbozi.cena) FROM  kosik JOIN zbozi where cookieid = kosik.cookieid AND kosik.produktid = zbozi.cena";


ale je to spatne, porad to nejde... pro info, v tabulce zbozi mam radek CENA, ktery potrebuji dosadit do PRODUKTID, což je zas obsaženo v tabulce kosik...

Nahlásit jako SPAM
IP: 85.207.212.–
Gobik0
Návštěvník
14. 4. 2008   #16
-
0
-



$dotaz = "SELECT zbozi.cena FROM kosik JOIN zbozi where zbozi.cookieid = kosik.cookieid AND kosik.produktid = zbozi.cena";

zkus, JOINům jsem nikdy nepřišel moc na chuť... Ale nechápu teda proč se má produktid rovnat ceně zboží :-D

Nahlásit jako SPAM
IP: 88.81.84.–
Kozel
~ Anonymní uživatel
11 příspěvků
15. 4. 2008   #17
-
0
-

no tak a měl bys jiný řešení? jestli jo, tak sem snim... prostě potřebuju aby se mi do toho kosiku pridaly ty veci...a je mi jedno jak :) ja fakt nevim, tak proto shanim jakykoli reseni..vim ze na netu je toho mraky asi, ale tak je lepsi to mit takhle do nekeho doporučeně :)

Nahlásit jako SPAM
IP: 85.207.212.–
Gobik0
Návštěvník
15. 4. 2008   #18
-
0
-

Kozel napsal:
potřebuju aby se mi do toho kosiku pridaly ty veci...


pro přidávání určitě není příkaz select :-P

Tak co vlastně chceš ? Přidat věci DO košíku nebo vytáhnout Z něj ?

Jaká hodnota se ti vypíše když si vypíšeš $id a KosikID() ?

Nahlásit jako SPAM
IP: 88.81.84.–
Kozel
~ Anonymní uživatel
11 příspěvků
15. 4. 2008   #19
-
0
-

heh :) ja vim sem tatar na tohle zatim... chci to pridat DO kosiku :) $id by mělo byt ID sloupec v tabulce zbozi. KosikID je sloupec v tabulce kosik, ktery je nenaplnen zatim... pravdepodobne ma byt pote neplněn nějakou hodnotou po pridani do kosiku... muzes mi teda aspon nejak popsat nejakej zakladni a lehkej způsob na pridani veci do kosiku?? :) pracuju s MySQL databazi, kde mam pro kazdou položku zbozi jeden radek :) diky

Nahlásit jako SPAM
IP: 85.207.212.–
Gobik0
Návštěvník
15. 4. 2008   #20
-
0
-

Docela jsem se do toho zamotal jak je tu plno zdrojáků :-D

a tady máš chybu



function addprod($d, $pocet) // tady má být $id

Nahlásit jako SPAM
IP: 88.81.84.–
Kozel
~ Anonymní uživatel
11 příspěvků
16. 4. 2008   #21
-
0
-

je nojo :D tak ted se tam aspon zobrazi to Id, ale porad to pise tu chybu :( ja ti poslu odkaz sem a schvalne se podivej na tu reakci, co to udela... http://bhfw.ic.cz/moje/3-.php

Nahlásit jako SPAM
IP: 85.207.212.–
insider0
Věrný člen
16. 4. 2008   #22
-
0
-

taky se pridam do diskuze :)

takze zacneme od databaze - ja bych ji resil nasledovne:

produkty
-------
id_produkt | nazev | cena ....

kosik
-------
id_kosik | cookieid ...

vKosiku
-------
id_kosik | id_produkt | pocet


tucne je primarni klic
podtrzene je indexovani


vlozeni:

$produktId = intval($_GET["id"]); // tusim, ze to tam predavas takhle, takze to napisu, at to nemusis moc menit

$kosikId = kosikId();

$dotaz = "insert into vKosiku(id_kosik,id_produkt,pocet) values($produktId,$kosikId,".intval($_GET["pocet"]).")"; // hotovo :)


funcke kosikId:
function kosikId(){

$dotaz = mysql_query("select id_kosik from kosik where cookieid = ".session_id()); // tady si vloz cookieid, me ted napadlo jen session_id() :)
$id = mysql_fetch_object();
return $id->id_kosik;
}


vyber veci v kosiku
$kosikId = kosikId();


$dotaz = "select p.cena,p.nazev,v.pocet from produkty as p, vKosiku as v where v.id_produkt = p.id_produkt and v.id_kosik = ".$kosikId;



snad jsem tam nenasekal moc chyb :)

Nahlásit jako SPAM
IP: 147.32.97.–
I don't want to see you go,[br] The sky is over[br] Even though we can't afford[br] The sky is over,[br] The sky is over us.[br][br] CIVILIZATION IS OVER
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
16. 4. 2008   #23
-
0
-

nenene, ja to pridavam takhle... priklad: mam jedna.php kde mam nize uvedeny zdrojak... a to se má spracovat v kosik.php

<p><?php

include("db.php");
$result = mysql_query("select * from zbozi order by nazev asc");
?>

<h1>Produkty</h1>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<?php
while($row = mysql_fetch_array($result))
{
?>
<tr>
<td width="26%">
<?php echo $row["nazev"]; ?> </td>
<td width="21%">
<?php echo $row["cena"]; ?> Kč </td>
<td width="39%">
<?php echo $row["kategorie"]; ?> </td>
<td width="14%">
<a href="kosik.php?action=add&id=<?php echo $row["id"]; ?>&pocet=1">Přidat</a> </td>
</tr>
<?php

Nahlásit jako SPAM
IP: 85.207.212.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 38 hostů

Podobná vlákna

Mysql_fetch_row() — založil hujukulu

Problem — založil roonill

Problém — založil Trumpetka

Problém s IE — založil kECUB

Problém — založil Jano

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý