Autor | Zpráva | ||
---|---|---|---|
kokolino Profil * |
cawte mam problem vypisat select :(
<?php $con = mysql_connect("localhost","root",""); if (!$con) { die('Could not connect: ' . mysql_error()); } $mesto1=$_POST['mesto1']; mysql_select_db("test", $con); $result = mysql_query("SELECT * FROM mesta where between $mesto1 and $mesto2 "); echo "<table border='1'> <tr> <th>id_mesta</th> <th>nazov</th> </tr>"; while($row = mysql_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row['id_mesta'] . "</td>"; echo "<td>" . $row['nazov'] . "</td>"; echo "</tr>"; } echo "</table>"; mysql_close($con); ?> chybova hlaska Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\skuska\spracuj.php on line 20 Moderátor Alphard: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
|
||
Alphard Profil |
#2 · Zasláno: 11. 11. 2009, 15:50:56
Chyba je v sql dotazu. Mezi where a between chybí název sloupce.
|
||
kokolino Profil * |
#3 · Zasláno: 11. 11. 2009, 16:34:36
Alphard:
toto som si nevsimol, doplnil som to $result = mysql_query("SELECT * FROM mesta where nazov between $mesto1 and $mesto2 "); problem pretrvava ostava ta ista chybova hlaska :( |
||
panther Profil |
#4 · Zasláno: 11. 11. 2009, 16:36:12
kokolino:
nech si vypsat dotaz, mysql_error, zkontroluj připojení k DB. |
||
kokolino Profil * |
#5 · Zasláno: 11. 11. 2009, 16:37:40
panther:
pripojenie som testoval, pripoji ma na DB |
||
nightfish Profil |
#6 · Zasláno: 11. 11. 2009, 16:40:38
|
||
kokolino Profil * |
#7 · Zasláno: 11. 11. 2009, 16:42:44
nightfish:
ako si vypisem mysql_error ? |
||
nightfish Profil |
#8 · Zasláno: 11. 11. 2009, 16:47:19
kokolino:
a to je zase popsané v odkázaném Databázovém FAQ - v části nadepsané tvou chybou hláškou |
||
kokolino Profil * |
#9 · Zasláno: 11. 11. 2009, 16:48:58
$vysledek = mysql_query($q="SELECT * FROM mesta where between $mesto1 and $mesto2 ") or print("Došlo k chybě v dotazu: ".$q."<br>".mysql_error());
som tam nasiel toto, a hodilo mi na to syntax error , preto ta otazka |
||
nightfish Profil |
#10 · Zasláno: 11. 11. 2009, 16:52:43
kokolino:
„som tam nasiel toto, a hodilo mi na to syntax error , preto ta otazka“ v uvedeném kódu chyba není, je třeba ji hledat jinde |
||
kokolino Profil * |
#11 · Zasláno: 11. 11. 2009, 16:53:12
nightfish:
hodilo mi to tuto chybu Unknown column 'rv' in 'where clause' ak to zadam do consoly v DB vypise mi to normalne mesta ,cize ta hodnota tam je |
||
nightfish Profil |
#12 · Zasláno: 11. 11. 2009, 16:54:34 · Upravil/a: nightfish
pokud to píše, že sloupec 'rv' neexistuje, tak k tomu má asi dobrý důvod
zřejmě by mohlo pomoct ty dvě proměnné obalit apostrofy EDIT: ...aby je mysql nepovažovalo za názvy sloupců |
||
kokolino Profil * |
#13 · Zasláno: 11. 11. 2009, 16:58:57
nightfish:
vyriesil som to takto $result = mysql_query("SELECT * FROM mesta where id_mesta between $mesto1 and $mesto2 "); davam tam id_mesta a ide to ako ma 1 rv 2 paca 3 moldava 4 ke 5 poprad co ma vsak zaskocilo dal som este raz do konzoly SELECT * FROM mesta where nazov between 'rv' and 'ke' ; a mi vypisalo,ze nie je ziadny zaznam ako to ? |
||
Shulík Profil |
#14 · Zasláno: 11. 11. 2009, 17:37:42
Pokud se nepletu, between je pro číselné hodnoty. Pro řetězec je buď fulltext vyhledávání nebo in('a', 'b', 'c'...)
|
||
Alphard Profil |
#15 · Zasláno: 11. 11. 2009, 17:59:50
Shulík:
„Pokud se nepletu, between je pro číselné hodnoty“ Není, ale záleží na pořadí. mysql> select 'bk' between 'am' and 'cl'; +----------------------------+ | 'bk' between 'am' and 'cl' | +----------------------------+ | 1 | +----------------------------+ 1 row in set (0.00 sec) mysql> select 'bk' between 'cm' and 'al'; +----------------------------+ | 'bk' between 'cm' and 'al' | +----------------------------+ | 0 | +----------------------------+ 1 row in set (0.00 sec) |
||
kokolino Profil * |
#16 · Zasláno: 11. 11. 2009, 18:55:21
Alphard:
aha takze to musi byt zadane v abecednom poradi, lenze tu je mensi problem,ze ja mam vstup z formulara a neviem ako to mam obmedzit aby to uzivatel zadal spravne. kedze ak hladam zastavku z mesta paca do moldavy tak je divne zadavat to opacne. mohli by ste mi na toto dat nejaku radu , ak oto osetrit ? |
||
nightfish Profil |
#17 · Zasláno: 11. 11. 2009, 19:06:51
kokolino:
„mohli by ste mi na toto dat nejaku radu , ak oto osetrit ?“ porovnat v PHP a prohodit? |
||
kokolino Profil * |
#18 · Zasláno: 11. 11. 2009, 19:50:59
nightfish:
mohol by si uviest nieco konkretne ? nemusi to byt kod , aspon slovne |
||
nightfish Profil |
#19 · Zasláno: 11. 11. 2009, 19:52:14
if ($mesto1 > $mesto2) { $temp = $mesto1; $mesto1 = $mesto2; $mesto2 = $temp; } |
||
kokolino Profil * |
#20 · Zasláno: 13. 11. 2009, 09:22:36
nightfish:
toto co si mi napisal ,mi prehodi tie dva vyrazy, ale ako ich otestujem voci abecede ? ak zadam kosice, tak som kukal,ze by sa to dalo overit pomocou regularnych vyrazov, ale neviem presne ako , chcem sa len spytat ci idem na to dobre ? |
||
AM_ Profil |
#21 · Zasláno: 13. 11. 2009, 13:48:05
dělal bych to raději na straně mysql, nějak takto:
SELECT * FROM mesta WHERE nazov BETWEEN IF('$mesto1'>'$mesto2', '$mesto2', '$mesto1') AND IF('$mesto1'>'$mesto2', '$mesto1', '$mesto2') V některých případech bys mohl totiž narazit na to, že lexikografické uspořádání v PHP bude jiné, než v MySQL (různé porovnání češtiny; PHP imho navíc české znaky nepřelouská při řazení vůbec, ale jistě to tvrdit nechci, nezkoušel jsem). |
||
kokolino Profil * |
#22 · Zasláno: 13. 11. 2009, 14:00:09
AM:
dobre skusim to takto, ak to nepojde zase sa ozvem , zatial dakujem vsetkym co mi pomohli |
||
Časová prodleva: 14 let
|
0