Autor Zpráva
zacekjakub
Profil *
Ahoj, potřeboval bych poradit, peru se s tím a ne a ne na to přijít.
Pokud mám dotaz:
$data = mysql_query("(SELECT * FROM vylet)");

while (list($id,$id,uzivatele,$id_trasy,$nazev,$datum,$cas_odjezdu,$cas_prijezdu) = mysql_fetch_row($data)){
echo $nazev.$datum;

}
Funguje to bez problému, ale jakmile za něj na stránku přidám další:

$vyberdatprovypsani = mysql_query("(SELECT * FROM itinerar WHERE id_trasy=$id)");
while list($id_trasy,$poradi,$vzdalenost,$misto,$druh_mista,$vyska,$sirka,$delka,$poznamka_mista,$druh_cesty,$znaceni_cyklo,$znaceni_pesi,$cislo_znaceni,$poznamka_cesty) = mysql_fetch_row($vyberdatprovypsani)) {


už to nejede a hází mi tyto chyby:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/free/ic.cz/t/trasy/root/www/trasa.php on line 108

Nevíte prosím kde by mohla být chyba?

Dekuji
Alphard
Profil
chyba je pravděpodobně v dotazu samotném, vypiště si mysql_error()
// ta závorka mi utekla, mám statistickou smůlu, téměř vždy tato chyba znamená chybný dotaz :-(
tiso
Profil
zacekjakub
-chýba ti ( za while
-nedoporučuje sa použitie list, ani mysql_fetch_row ale použiť priamo názvy stĺpcov z databázy:
while($row=mysql_fetch_assoc($result)){
  echo $row['stlpec_nazev'].$row['stlpec_datum'];
 ...
}
zacekjakub
Profil *
Mohu se zeptat proč se nedoporučuje list? Proč tato funkce tedy je?
Tu chybu vážně nemohu najít, přidám krátký kód, nekomentujte prosím strukturu, optimalizuji na konci. :)


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Cyklotrasy</title>
<meta http-equiv="content-type" content="text/html; charset=cp1250" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<link rel="stylesheet" type="text/css" media="screen" href="style.css" />
<script type="text/javascript" src="lightbox.js"></script>

</head>

<body>
<div id="container">

<div id="head">Prezentační aplikace- cyklotrasy</div>
<div id="left_side"><br />
<ul id="navigation">
<li>Menu</li>

<?PHP
Header("Pragma: no-cache");
$id=$_GET["id"];


// Nadefinujeme proměnné pro přístup


$server_db = "*";
$uzivatel_db = "*";
$heslo_db = "*";


?>
<li><a href=vylety.php class=button>Prohlížet výlety</a></li>
<li><a href=diskuse.php class=button>Diskuse</a></li>
<li><a href=vyhledavani.php class=button>Vyhledávání</a></li>
<li><a href=statistiky.php class=button>Statistiky</a></li>
<li><a href=prihlaseni.php class=button>Admin</a></li>


</ul>
</div>
<div id="right_side">
<h2>Informace o trase</h2>
<div id="content">
<?
// Připojíme se k DB


$spojeni = MySQL_Connect($server_db, $uzivatel_db, $heslo_db) or die(mysql_error());
mysql_select_db("test");
$spojeni = mysql_query("SET NAMES 'cp1250'");


$data = mysql_query("(SELECT * FROM vylet)");

while (list($id,$id_uzivatele,$id_trasy,$nazev,$datum,$cas_odjezdu,$cas_prijezdu) = mysql_fetch_row($data)){
echo $nazev.$datum;

}


$mapaaprofil = mysql_query("(SELECT * FROM trasa WHERE id=$id)");

list($id,$nazev,$poznamka,$delka,$nahoru,$dolu,$soubor_mapy,$soubor_profilu) = mysql_fetch_row($mapaaprofil);
echo "<a href=obr/$soubor_mapy rel=lightbox><img src=obr/$soubor_mapy width=500 class=mapky></a>";
echo "<a href=obr/$soubor_profilu rel=lightbox><img src=obr/$soubor_profilu width=500 class=mapky></a>";


$vyberdatprovypsani = mysql_query("(SELECT * FROM itinerar WHERE id_trasy=$id)");


?>

<table border=0 style=color:black;>
<tr>
<td>
<?



echo "


<a href=trasarozs.php?id=$id>Podrobný výpis</a>
</td>
";
?>
<td></td>


</tr>
<tr>
<td>Vzdálenost</td>
<td>Název místa</td>
<td>Pozn. místa</td>
<td>nad. výška</td>

</tr>


<?

$y=1;

while (list($id_trasy,$poradi,$vzdalenost,$misto,$druh_mista,$vyska,$sirka,$delka,$poznamka_mista,$druh_cesty,$znaceni_cyklo,$znaceni_pesi,$cislo_znaceni,$poznamka_cesty) = mysql_fetch_row($vyberdatprovypsani)) {

$zacinazavorkou = SubStr ($misto, 0, 1); // vrátí 1. jedenznak
if($zacinazavorkou!="("){

if ($y%2==0)
echo "<tr bgcolor=grey>";
else
echo "<tr bgcolor=darkgrey>";
echo "

<td>$vzdalenost</td><td valign=top>";
if($druh_mista!=0){
echo "<img src=obr/piktogramy/misto$druh_mista.gif>";
}
echo "
$misto</td>
<td>$poznamka_mista</td><td>
";
echo "$vyska</td>

</tr>
";
$y++;
}

}


?>

</table>
<BR /><BR /><BR /><BR /><BR /><BR />
</div>
<div id="footer">Cyklotrasy</div>
</div>


</div>
</body>
</html>
sicario
Profil
zacekjakub
Komu neni rady, tomu neni pomoci. Uz jsi udelal to, co radi Alphard?

Skript v teto podobe nemuzes nasadit na web. Jakym zpusobem osetrujes treba $id aby mohl obsahovat pouze cislo?

A proc neni vhodne pouzivat list? Kdyz se rozhodnes pridat do vyberu dalsi sloupec, musis aktualizovat take zapis list(...) = ...
zacekjakub
Profil *
Ano, co psal Alphard jsem zkoušel, napsalo to to samé co jsem psal už na začátku příspěvku. Dobře, chápu s tím listem, ale to nemá vliv na aktuální chybu! Pokud předám v id číslo, bude to číslo a to mi stačí, bezpečnost zatím neřeším.
sicario
Profil
zacekjakub
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/free/ic.cz/t/trasy/root/www/trasa.php on line 108
Toto neni vystupem funkce mysql_error().

Problem bude pravdepodobne v tomto dotazu:
$vyberdatprovypsani = mysql_query("(SELECT * FROM itinerar WHERE id_trasy=$id)");
Umisti za nej
echo mysql_error()
zacekjakub
Profil *
Díky moc, vyzkouším.
zacekjakub
Profil *
Zajímavé, hází to
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 ')' at line 1
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/free/ic.cz/t/trasy/root/www/trasa.php on line 243

Ale dokud tam nepřidám tu část $data = mysql_query("(SELECT * FROM vylet)"); , funguje to bez problému...
kajaman
Profil
$query = "SELECT * FROM itinerar WHERE id_trasy= '" . $id . "'";
$vysledek = MySQL_Query($query);
nightfish
Profil
tiso
nedoporučuje sa použitie list, ani mysql_fetch_row ale použiť priamo názvy stĺpcov z databázy
protože to tu nezaznívá poprvé, rád bych se zeptal, kdo to doporučuje a proč?
Alphard
Profil
protože to tu nezaznívá poprvé, rád bych se zeptal, kdo to doporučuje a proč?
ačkoliv je adresátem tiso, myslím, že je to přinejmenším zbytečné kopírování proměnných a v případě změny nebo záměny několika sloupců v rozsáhlejší aplikaci taky důvod k bezesné noci
tiso
Profil
nightfish - tak to "nedoporučuje" som nenašiel, asi som si len spojil archaická=nedoporučovaná.
Riešenia s while($row=$mysql_fetch_assoc($result)) a foreach($array as $key => $val) považujem za programátorsky čistejšie, mám lepší prehľad čo kde mám, nezaskočí ma zmena poradia stĺpcov.
Mastodont
Profil
Mně se list taky nelíbí, kromě toho je k dispozici extract.
Co se ale určitě nedoporučuje, je hvězdička za SELECT a tu vidím všude :-((
Histler
Profil *
Caw mam stejny problem,
nemuze to byt tim že si mysql_fetch_row() muze obsahovat vysledky pouze z jednoho dotazu? Kdysi jsem v jedny knizce cet že by se to melo nejak vynulovat... Myslite ze to je mozny??
djlj
Profil
Histler
Spíš máš nějakou chybu v SQL dotazu.
AM_
Profil
Histler
Jak se ti povedlo narvat do mysql_fetch_row vic dotazu? :) tam bych asi hledal zdroj problemu, pochopitelne ze nemuzes mit jeden radek vysledku z vic dotazu soucasne...
Aladyreg
Profil *
Čau, mám stejnej problém jako zacekjakub.......když přidám za $vypsat_clanky=mysql_query("SELECT nazev, popis FROM vtipy ORDER by id DESC LIMIT $vynechat,10;"); ----echo mysql_error(); nahodí mi to : 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 '-10,10' at line 1
.Nevíte prosím někdo co s tím? díky moc za radu
AM_
Profil
já myslím, že '-10,10' mluví za vše - opravdu se snažíš začít od mínus desátého prvku?
Aladyreg
Profil *
Tady je celý ten tag:

if ($stranka=="") {
$stranka=1;
$vynechat=0;
}
else {
$vynechat=$stranka*10-10;
}


$vypsat_clanky=mysql_query("SELECT nazev, popis FROM vtipy ORDER by id DESC LIMIT $vynechat,10;");echo mysql_error();
while (list($nazev, $popis) = mysql_fetch_row($vypsat_clanky)) {
echo "Název článku: $nazev<br>
Text: $popis";
}

$pocet_radku=mysql_query("SELECT COUNT(*) AS nazev FROM vtipy");
$pocet_radku=mysql_fetch_array($pocet_radku);


$pocet_stran=ceil($pocet_stran=$pocet_radku["nazev"]/10);
$i=0;
while ($i<$pocet_stran) {$i++;
echo ?>
<a href="index.php?stranka=$i"><? echo "$i"?></a>


<? ;}?>
Aladyreg
Profil *
Ne, koukni se na ten script a uvidíš
Aladyreg
Profil *
Ne, koukni se na ten script at to vidis cele(viz predchozi clanek)
Aladyreg
Profil *
prosím pomozte mi
AM_
Profil
ale my už jsme ti pomohli... přečti si tu svojí chybu a zjistíš, že se snažíš začít od -10tého prvku. Kde se ti tam bere -10, na to už přijdeš sám, ne?

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: