Špatné řazení při vypisování z databáze – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Špatné řazení při vypisování z databáze – PHP – Fórum – Programujte.comŠpatné řazení při vypisování z databáze – PHP – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
hujukulu0
Newbie
4. 9. 2012   #1
-
0
-

Mám redakční systém u kterého lze dávat příspěvky a přidat k němu i fotku, problém ale je, že když k příspěvku přidám právě tu fotku a uložim ho do databáze a pak příspěvky vypisuju, jakoby příspěvky u kterých je fotka měli nějakym divnym způsobem přednost. Takže vlastně mám například 4 příspěvky a u 1 fotka není u 2 fotka je u 3 není a u 4 je ale když vypisuju z databáze řazením DESC aby byl na prvnim místě ten poslední zařadí se mi takhle 4,2,3,1 . prostě to dá nejdřív ty s tou fotkou. nevíte někdo co s tím ? 

Kód pro vypisování z databáze : 
 

<?
header("Content-Type: text/html; charset=utf-8");
$spojeni=mysql_connect("localhost","php@localhost","");
mysql_select_db('mysql42733');
mysql_set_charset('utf8');
$navrat=mysql_query( 'SELECT `redakce`.`text`'
        . ' FROM `redakce`'
        . ' ORDER BY `redakce`.`text` DESC LIMIT 0, 5 ', $spojeni);
echo mysql_error();

while (list($text) = mysql_fetch_row($navrat))
printf($text);

?>

Kód pro uložení : 
 

<?php
header("Content-Type: text/html; charset=utf-8");
$nadpis=$_POST["nadpis"];
$redakce=$_POST["redakce"];
$datum=$_POST["datum"];
$cislo=$_POST["cislo"];

$prvnicast = substr($redakce, 0, strrpos($redakce, "*("));
$odkaz = substr($redakce, strrpos($redakce, "*(")+2);
$odkaz = substr($odkaz, 0, strrpos($odkaz, ")*"));
$konec = substr($redakce, strrpos($redakce, ")*")+2);
$https = substr($odkaz, 8);
$http = substr($odkaz, 7);
if (strpos (" " . $odkaz, "https://")){ $text = "$prvnicast<a href=\"$odkaz\" target=\"_blank\">$https</a>$konec";}
else if (strpos (" " . $odkaz, "http://")){ $text = "$prvnicast<a href=\"$odkaz\" target=\"_blank\">$http</a>$konec"; }
else if (strpos (" " . $odkaz, "www")) {$text = "$prvnicast<a href=\"http://$odkaz\" target=\"_blank\">$odkaz</a>$konec";}
else {$text = "$redakce";}

for($c=1; $c<$cislo; $c++) {
$prvnicast = substr($text, 0, strrpos($text, "*("));
$odkaz = substr($text, strrpos($text, "*(")+2);
$odkaz = substr($odkaz, 0, strrpos($odkaz, ")*"));
$konec = substr($text, strrpos($text, ")*")+2);
$https = substr($odkaz, 8);
$http = substr($odkaz, 7);
if (strpos (" " . $odkaz, "https://")){ $text = "$prvnicast<a href=\"$odkaz\" target=\"_blank\">$https</a>$konec";}
else if (strpos (" " . $odkaz, "http://")){ $text = "$prvnicast<a href=\"$odkaz\" target=\"_blank\">$http</a>$konec"; }
else if (strpos (" " . $odkaz, "www")) {$text = "$prvnicast<a href=\"http://$odkaz\" target=\"_blank\">$odkaz</a>$konec";}
else {$text = "$text";}
}
if($soubor) {
	  
    
	if (copy ($soubor, "img/$soubor_name")) {
      


    }
    else {
      print "Při nahrávání souboru došlo k chybě!<BR>";
    }
  }

  
if ($soubor){$novinka ="<div class=\"redakce\"><table><tr><td width=\"470px;\"><h2>$nadpis</h2><p class=\"p\">$text</p></td><td><div class=\"fotka\"><a href=\"redakce/img/$soubor_name\" target=\"_blank\"><img src=\"redakce/img/$soubor_name\" height=\"100px\"></a> </div></td></tr></table><p  class=\"datum\">Datum:$datum</p></div>";}
else {$novinka = "<div class=\"redakce\"><h2>$nadpis</h2><p class=\"p\">$text</p><p  class=\"datum\">Datum:$datum</p></div>";}
$db="mysql42733";
$tb="redakce";



$spojeni=mysql_connect("localhost","php@localhost","");

mysql_select_db($db, $spojeni);
mysql_query("INSERT INTO $tb values ('','$novinka')", $spojeni);

header("Location: redaknisystem.php");

?>

Formulář redakčního systému : 
 

<form action="redakce.php" method="POST" ENCTYPE="multipart/form-data">
<h2>Příspěvek</h2>
<input type="text" name="nadpis" value="Nadpis" id="nadpis2"><input type="button" value="vložit odkaz" onClick="odkaz()" class="button"><input type="button" value="vložit odstavec" onClick="odstavec()" class="button"><input type="number" id="cislo" name="cislo" value="0"><br>
<textarea name="redakce" rows="6" cols="60" id="redakce">Sem zadejte text..</textarea><br>
<INPUT TYPE="file" NAME="soubor" SIZE="30">
<br>
<script>

var datum = new Date;
var den = datum.getDate();
var mesic = datum.getMonth()+1;
var rok = datum.getFullYear();
var datum2= "Datum: <input type=\"text\" name=\"datum\" id=\"datum2\" value="+den+"."+mesic+"."+rok+">"
document.write(datum2);

</script>
<br>
<input type="submit" value="odeslat"  class="button">
</form>
Nahlásit jako SPAM
IP: 46.254.70.–
nergal+1
Návštěvník
4. 9. 2012   #2
-
+1
-
Zajímavé

ak mas obrazok tak stlpec podla ktoreho triedis `redakce`.`text` ma hodnotu: <div class=\"redakce\"><table>

ak nemas tak: <div class=\"redakce\"><h2>

pokial je mi zname tak h je v abecede pred t a kedze radis zostupne tak to vysvetluje preco sa to chova ako si to naprogramoval ;)

Nahlásit jako SPAM
IP: 85.135.162.–
viem že neviem čo viem
Nefaritus
~ Redaktor
+2
Posthunter
4. 9. 2012   #3
-
+1
-
Zajímavé

Měl bys to třídit nějak rozumněji, třeba podle data nebo ID a ne podle textu.

 
Nahlásit jako SPAM
IP: 109.238.43.–
null_while
~ Moderátor
+6
Věrný člen
5. 9. 2012   #4
-
+1
-
Zajímavé

Ukládej společně s fotkou i informaci o tom, zda-li článek fotku obsahuje (save_picture - 1,0). Dále podle podmínky vypisuj jen ty, které fotku mají - WHERE save_picture = 1 a pokud trváš na tom nesmyslném vypisování podle textu, tak ho můžeš použít. Pokud ti nezáleží na pořadí, jakože nezáleží, když vypisuješ podle textu - tak vypisuj dle ID nebo DATA, ať v tom je řád. 

Krom toho:  

$nadpis=$_POST["nadpis"];
$redakce=$_POST["redakce"];
$datum=$_POST["datum"];
$cislo=$_POST["cislo"];

bych ošetřoval, být tebou. 

Nahlásit jako SPAM
IP: 84.16.103.–
WEBNIA.cz - tvorba webových stránek
hujukulu0
Newbie
8. 9. 2012   #5
-
0
-

Děkuji za rady, toho řazení podle textu v tom SQL příkazu sem si nějak nevšiml, děkuji.

Nahlásit jako SPAM
IP: 89.111.98.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 21 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý