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
Chyba je v sql dotazu. Mezi where a between chybí název sloupce.
kokolino
Profil *
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
kokolino:
nech si vypsat dotaz, mysql_error, zkontroluj připojení k DB.
kokolino
Profil *
panther:
pripojenie som testoval, pripoji ma na DB
nightfish
Profil
kokolino:
viz Databázové FAQ
případně alespoň čti celé příspěvky (#4), ne jen jejich části
kokolino
Profil *
nightfish:
ako si vypisem mysql_error ?
nightfish
Profil
kokolino:
a to je zase popsané v odkázaném Databázovém FAQ - v části nadepsané tvou chybou hláškou
kokolino
Profil *
$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
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 *
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
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 *
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
Pokud se nepletu, between je pro číselné hodnoty. Pro řetězec je buď fulltext vyhledávání nebo in('a', 'b', 'c'...)
Alphard
Profil
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 *
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
kokolino:
mohli by ste mi na toto dat nejaku radu , ak oto osetrit ?
porovnat v PHP a prohodit?
kokolino
Profil *
nightfish:

mohol by si uviest nieco konkretne ? nemusi to byt kod , aspon slovne
nightfish
Profil
if ($mesto1 > $mesto2) {
  $temp = $mesto1;
  $mesto1 = $mesto2;
  $mesto2 = $temp;
}
kokolino
Profil *
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
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 *
AM:
dobre skusim to takto, ak to nepojde zase sa ozvem , zatial dakujem vsetkym co mi pomohli

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: