Problem s mysql_num_fields():

11.12.2011 09:48
příspěvků:38

<b>No predsa podla vyssie uvedenej rady, najskor tento:</b>

$sql=mysql_query(&quot;SELECT * FROM nazov tabulky WHERE nazov riadku v db LIKE &quot;%&quot;.$_GET['search'].&quot;%&quot;&quot;);

<b>A potom tento: </b>

$result=mysql_query(&quot;SELECT FROM `nazov tabulky v db` WHERE `Nazov riadku 1 v db` and `Nazov riadku 2 ` and `Nazov riadku 3` and `Nazov riadku 4` and `Nazov riadku 5` LIMIT 0, 30&quot; );

<b>A vysledok bol:</b>
Invalid argument supplied for foreach()

11.12.2011 10:04
moderátorověřen
příspěvků:537

Hod sem komplet takhle to fakt nikdo zkoumat nebude.

správce PCforum.cz, provozovatel http://rychlost.cz , http://www.netstranky.cz - vše co píšu je bez záruk :) to jak si s tím naložíte je zcela na vás
11.12.2011 14:35
příspěvků:38

<b>Jedna varianta:</b>
&lt;?

echo &quot;&lt;table border=&quot;0&quot;&gt;&quot;; echo &quot;&lt;tr&gt;&lt;td&gt; riadok1 &lt;/td&gt;&lt;td&gt; riadok2&lt;/td&gt;&lt;td&gt; riadok3 &lt;/td&gt;&lt;td&gt; riadok4 &lt;/td&gt;&lt;td&gt; riadok5 &lt;/td&gt;&lt;/tr

if($_GET['send']==&quot;Vyhladaj&quot;)

while ($row=mysql_fetch_array($result));

$result=mysql_query(&quot;SELECT ` nazov tabulky db `.` riadok1 ` , ` nazov tabulky db `.` riadok2` , nazov tabulky db `.` riadok3 ` , ` nazov tabulky db `.` riadok4 ` , nazov tabulky db `.` riadok5 ` , ` nazov tabulky db `. `Url` FROM nazov tabulky db

LIMIT 90 , 30&quot;);
{ echo '&lt;tr&gt;';
foreach ($row as $k =&gt; $h)
if (is_int($k))

echo '&lt;td&gt;'.htmlspecialchars($h).'&lt;/td&gt;';

}
echo '&lt;/table&gt;'
?&gt;
<b>Druha varianta:</b>

Uz som do toho aj vrtal a teraz je to takto:

&lt;?

$sql=mysql_query(&quot;SELECT * FROM nazov tabulky db WHERE riadok v db LIKE &quot;%&quot;.$_GET['search'].&quot;%&quot;&quot;);

echo &quot;&lt;table border=&quot;0&quot;&gt;&quot;; echo &quot;&lt;tr&gt;&lt;td&gt; riadok1 &lt;/td&gt;&lt;td&gt; riadok2&lt;/td&gt;&lt;td&gt; riadok3 &lt;/td&gt;&lt;td&gt; riadok4 &lt;/td&gt;&lt;td&gt; riadok5 &lt;/td&gt;&lt;/tr

if($_GET['send']==&quot;Vyhladaj&quot;)

while ($row=mysql_fetch_array($result));
{ echo '&lt;tr&gt;';
foreach ($row as $k =&gt; $h)
if (is_int($k))

echo '&lt;td&gt;'.htmlspecialchars($h).'&lt;/td&gt;';

}
echo '&lt;/table&gt;'
?&gt;

11.12.2011 20:14
moderátorověřen
příspěvků:537

Ok z druhe varianty odstran &quot;db WHERE riadok v db LIKE &quot;%&quot;.$_GET['search'].&quot;%&quot;&quot; a &quot;if($_GET['send']==&quot;Vyhladaj&quot;)&quot;

rovnez odstran strednik na konci radku s while

mimochodem je dobrym zvykem po zacatku bloku odradkovat tj enter za {

správce PCforum.cz, provozovatel http://rychlost.cz , http://www.netstranky.cz - vše co píšu je bez záruk :) to jak si s tím naložíte je zcela na vás
11.12.2011 21:18
příspěvků:38

Mal si radsej napisat cely upraveny kod, mozno som to neurobil spravne,

tu je vysledok:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

Invalid argument supplied for foreach()

11.12.2011 21:31
moderátorověřen
příspěvků:537

Hm tak to asi nepomuze, opravdu si sezen nejakou knizku a nauc se to postupne. Tohle placani kodu aniz bys vedel co delas nikam nikdy nepovede.

Napriklad co vidis na tomto SQL dotazu spatne?

SELECT * FROM nazov tabulky db WHERE riadok v db

správce PCforum.cz, provozovatel http://rychlost.cz , http://www.netstranky.cz - vše co píšu je bez záruk :) to jak si s tím naložíte je zcela na vás
11.12.2011 21:48
příspěvků:38

Nic, je to pisane vseobecne:
nazov tabulky db=veci
riadok v db = tricka

Kod mam z jednej ucebnice PHP a dotaz som skopiroval z MySQL.

Uz som pisal vyssie, ze mi to moc nejde, ale potrebujem aby to slapalo.

A co je nam tom podla teba zle?

12.12.2011 07:30
moderátorověřen
příspěvků:537

Tak pokud je to psane vseobecne tak to samozrejme nemuze fungovat. Pokud tam nenapises konkretni existujici databazovou tabulku tak to nepujde.

mimochodem zacinam take pochybovat ze se v tom skriptu k mysql pripojujes

Pokud to je z ucebnice PHP neni to tam vysvetleno kompletne? Se vsim a funkcne?

správce PCforum.cz, provozovatel http://rychlost.cz , http://www.netstranky.cz - vše co píšu je bez záruk :) to jak si s tím naložíte je zcela na vás
12.12.2011 15:22
příspěvků:38

Samozrejme, ze tam mam doplnenu skutocnu databazu

a urcite sa pripajam k serveru, pretoze inak by mi vypisalo,

ze sa nepodarilo pripojit, to uz mam overene, dokonca mi to

aj vyhodilo nejake vysledky, ale neboli spravne, tak tam stale nieco opravujem

a vysledok poznas. Neodpovedal si mi co je tu zle SELECT * FROM nazov tabulky db WHERE riadok v db,

iba ak by tam chybali uvodzovky.

12.12.2011 16:26
moderátorověřen
příspěvků:537

No zle tam je to ze tam neni nazev realne databazove tabulky samozrejme. A taky to ze se urcite do where nedava radek v db protoze nic takoveho prakticky neni, pouze sloupec

správce PCforum.cz, provozovatel http://rychlost.cz , http://www.netstranky.cz - vše co píšu je bez záruk :) to jak si s tím naložíte je zcela na vás
12.12.2011 21:00
příspěvků:38

Ved hovorim, ze v kode v skutocnosti mam vsetko realne.

a pokial ide o riadok/stlpec, tak je to je jedno aj druhe.

V celej databaze je to nazov stlpca, ale ked zadavam dalsie udaje

o produkte, tak su to nazvy riadkov, ktore v globale su vlastne stlpce.

Dufam, ze chapes co som tym myslel.

12.12.2011 21:31
moderátorověřen
příspěvků:537

Chapu ale tezko poradim kdyz nevidim presne to co tam mas.

správce PCforum.cz, provozovatel http://rychlost.cz , http://www.netstranky.cz - vše co píšu je bez záruk :) to jak si s tím naložíte je zcela na vás
12.12.2011 22:04
příspěvků:38

Podla mna je to jedno, dolezite su tie prikazy a funkcie a pod.

Tak kde je chyba v tomto:
&lt;?

$sql=mysql_query(&quot;SELECT * FROM veci WHERE tricka LIKE &quot;%&quot;.$_GET['search'].&quot;%&quot;&quot;);

echo &quot;&lt;table border=&quot;0&quot;&gt;&quot;; echo &quot;&lt;tr&gt;&lt;td&gt;tricka&lt;/td&gt;&lt;td&gt;svetre&lt;/td&gt;&lt;td&gt;topy&lt;/td&gt;&lt;td&gt;sukne&lt;/td&gt;&lt;td&gt; nohavice&lt;/td&gt;&lt;/tr

if($_GET['send']==&quot;Vyhladaj&quot;)

while ($row=mysql_fetch_array($result));
{ echo '&lt;tr&gt;';
foreach ($row as $k =&gt; $h)
if (is_int($k))

echo '&lt;td&gt;'.htmlspecialchars($h).'&lt;/td&gt;';

}
echo '&lt;/table&gt;'
?&gt;

13.12.2011 08:16
moderátorověřen
příspěvků:537

No chyba, pominuli to ze by php hodilo syntax eror tak zkus toto, presne

<pre>&lt;?

$sql=mysql_query(&quot;SELECT * FROM veci WHERE tricka LIKE &quot;%&quot;.$_GET&#91;'search'&#93;.&quot;%&quot;&quot;);

echo &quot;&lt;table border=&quot;0&quot;&gt;&quot;;

echo &quot;&lt;tr&gt;&lt;td&gt;tricka&lt;/td&gt;&lt;td&gt;svetre&lt;/td&gt;&lt;td&gt;topy&lt;/td&gt;&lt;td&gt;sukne&lt;/td&gt;&lt;td&gt; nohavice&lt;/td&gt;&lt;/tr&gt;&quot;;

while ($row=mysql_fetch_array($result)) {

echo '&lt;tr&gt;';
foreach ($row as $k =&gt; $h)
if (is_int($k))

echo '&lt;td&gt;'.htmlspecialchars($h).'&lt;/td&gt;';

echo '&lt;/tr&gt;';
}
echo '&lt;/table&gt;';

// tady jen aby to ukazalo pripadnou chybu, pokud to bude ok, odmaz&#93;

echo &quot;SELECT * FROM veci WHERE tricka LIKE &quot;%&quot;.$_GET&#91;'search'&#93;.&quot;%&quot;&quot;;

echo mysql_error();
?&gt;</pre>

btw, ja ze zvyku v sql dotazech, uvnitr nepouzivam &quot; ale jednoduche uvozvky ', pak nemusis escapovat pomoci zpetneho lomitka

správce PCforum.cz, provozovatel http://rychlost.cz , http://www.netstranky.cz - vše co píšu je bez záruk :) to jak si s tím naložíte je zcela na vás
13.12.2011 19:41
příspěvků:38

Tak ci tak to hadze toto:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL

Nemal by som si vyssie zadefinovat ten array?

13.12.2011 19:49
moderátorověřen
příspěvků:537

A co to píše dále? Nepíse to níže nahodou tu konkretní chybu z MYSQL?

správce PCforum.cz, provozovatel http://rychlost.cz , http://www.netstranky.cz - vše co píšu je bez záruk :) to jak si s tím naložíte je zcela na vás
13.12.2011 21:04
příspěvků:38

Nie len cislo riadku na ktorom to je

14.12.2011 07:30
moderátorověřen
příspěvků:537

V tom případě jsi tam nedal vše co jsem ti posílal, poslední dva řádky kódu viz "13 pro 2011 09:16 " obsahují vypsání přesného SQL dotazu a chyby kterou to vrací. Takže pokud nehodíš to co to píše tak ti není rady a pomoci.

správce PCforum.cz, provozovatel http://rychlost.cz , http://www.netstranky.cz - vše co píšu je bez záruk :) to jak si s tím naložíte je zcela na vás
14.12.2011 13:59
příspěvků:38

Dal som tam vsetko, ale vysledok bol rovnaky. Jedine co som sem nedal je adresa databazy, ku

ktorej sa pripaja a dufam, ze uznas pristupove udaje tu predsa nebudem zverejnovat.

Takze to vyzeralo takto:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL in domains...,

cislo riadku v kode na ktorom je mysql_fetch_array()

14.12.2011 15:30
moderátorověřen
příspěvků:537

V tom případě opravdu nemohu poradit, pokud se radama neřídíš.

Konkrétně jěště tedy jednou a nakonec

<pre>// tady jen aby to ukazalo pripadnou chybu, pokud to bude ok, odmaz&#93;

echo &quot;SELECT * FROM veci WHERE tricka LIKE &quot;%&quot;.$_GET&#91;'search'&#93;.&quot;%&quot;&quot;;

echo mysql_error();</pre>

Toto mělo vypsat důležité informace,které sem ale nepíšeš.

Nění ti tedy rady a pomoci.

správce PCforum.cz, provozovatel http://rychlost.cz , http://www.netstranky.cz - vše co píšu je bez záruk :) to jak si s tím naložíte je zcela na vás
Diskuze k tomuto tématu pokračuje na další stránce.
Pokud budete vkládat odpověď bez znalosti dalších stránek můžete být mimo :)
© 2007-2024 PCforum.cz, všechna práva vyhrazena, veškeré informace zde uvedené jsou bez záruk, podmínky užití, kontaktní informace