Autor | Zpráva | ||
---|---|---|---|
akali Profil * |
#1 · Zasláno: 2. 9. 2010, 17:19:31
Ahoj, potřebuju na web vypsat několik řádku a potřebuju je seřadit podle id, ceny, názvu ap..
Takže tady mám select 1<form action="./" method=POST> <form action="./" method=POST>
<select name="select">
<option value="id">id</option>
<option value="cena">cena</option>
</select>
<input type="submit" value="ok">
</form> a tady php 1<?php <?php
// Správné nastavení češtiny.
$objekt_vysledku = mysqli_query($db_spojeni,"SET NAMES 'UTF8'");
// zjištění počtu řádků v tabulce:
$radku=MySQLi_Fetch_Row(MySQLi_Query($db_spojeni,"SELECT COUNT(0) FROM Nabytek"));$radku=$radku[0];
// Zaslání SQL příkazu do databáze.
$strana=IntVal($_GET['strana'])*3; //číselná hodnota ?strana=
$radit=Empty($_POST['select']) ? "cena" : MySQL_Escape_String($_POST['select']);
echo "radit:$radit<br>strana:$strana";
$objekt_vysledku = mysqli_query($db_spojeni,"SELECT * FROM Nabytek ORDER BY $radit") Or Die(MySQLi_Error());
echo '<h1>',$radek['nazev'],'</h1>';
echo '<table><tr><td>',$radek['img'],'</td><td>';
/*oříznutí textu*/
$rest = substr($radek['text'], 0, 500);
echo $rest;
/*konec - oříznutí textu*/
echo '<br>Cena <b>',$radek['cena'],'</b> </td></table>';
$id = $radek['ID'];
?> Když vlezu na stránku, tak je to seřazené podle ID, ale když zvolím cenu, tak se to ani za boha neseřadí, kouknul by mi tu na to někdo? Děkuji mockrát |
||
blazej44800 Profil |
#2 · Zasláno: 2. 9. 2010, 17:50:59
tam ako mas..radio 12 pridaj za ORDER BY $radit ASC alebo DESC (to ti zabezpeci ze ti to zoradi zostupne alebo vzostupne) ... dufam ze si myslel to
|
||
akali Profil * |
#3 · Zasláno: 2. 9. 2010, 17:53:55
Ne, to jsem nemyslel. Tady je stránka http://kamil.velkyberanov-fotbal.cz/
A když vyberu ID nebo cenu, tak je to pořád stejné a neseřadí se to tak, jak má (teda tak jak chci) |
||
Taps Profil |
#4 · Zasláno: 2. 9. 2010, 18:02:32
akali:
zkus si pomocí echo vypsat sql dotaz a uvidíš co se ti vypíše |
||
blazej44800 Profil |
#5 · Zasláno: 2. 9. 2010, 18:04:11
nevem ale mne sa ten kod zda byt zbytocne dlhy.
|
||
akali Profil * |
#6 · Zasláno: 2. 9. 2010, 18:08:19
Taps: Jak to vypíšu? Co si tím pomůžu?
blazej44800: A jak by si to zkrátil? Chyba bude jinde, než v délce.. |
||
panther Profil |
#7 · Zasláno: 2. 9. 2010, 18:22:23 · Upravil/a: panther
akali:
„Jak to vypíšu?“ echo „Co si tím pomůžu?“ uvidíš, kde je chyba a mohl sis ušetřit tohle vlákno. Případně si do výpisu přidej i mysql_error(). |
||
akali Profil * |
#8 · Zasláno: 2. 9. 2010, 18:30:43
Vím, že pomocí echo, ale jak dál.. Nikdy jsem sql dotaz nevypisoval
|
||
panther Profil |
#9 · Zasláno: 2. 9. 2010, 18:32:17
akali:
že by echo "SELECT * FROM Nabytek ORDER BY $radit" echo "SELECT * FROM Nabytek ORDER BY $radit" |
||
akali Profil * |
#10 · Zasláno: 2. 9. 2010, 18:49:37
Aha, tak to vypíše přesně toto
SELECT * FROM Nabytek ORDER BY id nebo SELECT * FROM Nabytek ORDER BY cena |
||
akali Profil * |
#11 · Zasláno: 2. 9. 2010, 18:50:57
Toto echo "SELECT * FROM Nabytek ORDER BY $radit ASC LIMIT $strana,30"; vypíše
SELECT * FROM Nabytek ORDER BY id ASC LIMIT 0,30 |
||
panther Profil |
#12 · Zasláno: 2. 9. 2010, 18:52:14 · Upravil/a: panther
akali:
už to vidím. Dotaz se provede, ale nikde dál s jeho výsledkem nepracuješ, musíš si nově seřazená data taky vypsat. |
||
akali Profil * |
#13 · Zasláno: 2. 9. 2010, 19:07:24
Vypisuji je o kousek níž, myslel jsem, že tento kód k rozřešení potřebovat nebudete..
Jestli myslíš tohle: 1 echo '<h1>',$radek['nazev'],'</h1>'; echo '<h1>',$radek['nazev'],'</h1>';
echo '<table><tr><td>',$radek['img'],'</td><td>';
/*oříznutí textu*/
$rest = substr($radek['text'], 0, 500);
echo $rest;
/*konec - oříznutí textu*/
echo '<br>Cena <b>',$radek['cena'],'</b> </td></table>';
$id = $radek['ID']; |
||
panther Profil |
#14 · Zasláno: 2. 9. 2010, 19:17:13 · Upravil/a: panther
akali:
a proměnnou $radek naplňuješ kde? Po nově vzniklém dotazu skrze cyklus vypiš data z DB znovu, budou nově seřazená, čiliže while ($radek = mysql_fetch_assoc($objekt_vysledku)) { while ($radek = mysql_fetch_assoc($objekt_vysledku)) {
//vypis tabulky
} Co se samotného řazení týče, všimni si, že po změně stránky se vrátí hodnota selektu na empty, POST se napříč stránkami nepřenáší. Výsledek řadícího formuláře si buď někam ulož, nebo řaď parametrem v URL. |
||
akali Profil * |
#15 · Zasláno: 2. 9. 2010, 19:34:41
proměnou $radek mám naplněnou takto
while ($radek = mysqli_fetch_array($objekt_vysledku)) { echo '<h1>',$radek['nazev'],'</h1>'; echo '<table><tr><td>',$radek['img'],'</td><td>'; /*oříznutí textu*/ $rest = substr($radek['text'], 0, 500); echo $rest; /*konec - oříznutí textu*/ echo '<br>Cena <b>',$radek['cena'],'</b> </td></table>'; $id = $radek['ID']; } Takže to mám pochopit tak, že musím použít přesměrování, při změně z ID na cenu? |
||
akali Profil * |
#16 · Zasláno: 2. 9. 2010, 21:09:27
Fíha, tak jsem na to přišel.. Nebyla chyba v php kódu, ale v struktuře tabulky.. Byl jsem zoufalej tak jsem prohradával aji DB a přišel jsem an to, že sloupec 'cena' je VARCHAR :(
Achjo, bybý chybičky.. Děkuji vám, pánové!! |
||
Časová prodleva: 15 let
|
Toto vlákno je staré, již dlouho do něj nikdo nepřispíval.
Informace a odkazy zde uváděné už nemusejí být aktuální. Nechcete-li řešit zde uvedenou konkrétní otázku, založte si vlastní vlákno, nepište do tohoto. Vložíte-li sem nyní příspěvek, upoutáte pozornost mnoha lidí a někteří z nich si jen kvůli vám přečtou i všechny předcházející příspěvky. Předpokládáte-li, že váš text skutečně bude hodnotný, stiskněte následující tlačítko:
Běda vám, jestli to bude blábol.
0