Login  Regeln Aktuelles Datum und Uhrzeit: 05.12.2008, 05:44  
Startseite
Registrieren
Profil
Suchen
Mitgliederliste
Verzeichnis
Impressum



Partner
kostenlose Homepage
Fussball
Kostenloses Forum
SMS kostenlos
Webhosting
Webmasterportal
Kostenlos
Kredit ohne Schufa
Esoterik-Forum
Selbsthilfeforum
Artikel Backlink
Datenrettung
Zufall in php...ich seh nicht durch...

 
Neues Thema eröffnen   Neue Antwort erstellen    Webmaster Forum -> Serverseitige Websprachen
Vorheriges Thema anzeigen Nächstes Thema anzeigen 
Autor Nachricht
Malli
User [User]
User



Anmeldung: 03.02.08
Beiträge: 19
Wohnort: Berlin

BeitragVerfasst am: 14.07.2008, 02:36    Titel: Zufall in php...ich seh nicht durch... Antworten mit Zitat

Da mir bei meiner letzten Frage so fix und sehr gut geholfen wurde, hoffe ich dass ich nochmals eine kleine Hilfestellung bekommen könnte.

Undzwar geht es diesmal um das Zufällige aufrufen von Daten aus der Datenbank.

ich weiß zwar dass man das mit "rand" macht, aber in diesem Beispiel habe ich leider keine Ahnung wo ich das Anwenden sollte.

hier mal meine PHP-Code:

Code:

if(!$epp) $epp=20;

if ($_REQUEST['entries']) $entries=intval($_REQUEST['entries']); else $entries=0;

if ($_REQUEST['sort'] != '')  { $sort = addslashes($_REQUEST['sort']);}
if ($_REQUEST['styp'] != '')  { $styp = addslashes($_REQUEST['styp']);}
if ($_REQUEST['fmod'] != '')  { $fmod = addslashes($_REQUEST['fmod']);}
if ($_REQUEST['fsub'] != '')  { $fsub = intval($_REQUEST['fsub']);}
if ($_REQUEST['faut'] != '')  { $faut = intval($_REQUEST['faut']);}
if ($_REQUEST['fcat'] != '')  { $fcat = addslashes($_REQUEST['fcat']);}
if ($_REQUEST['fmim'] != '')  { $fmim = addslashes($_REQUEST['fmim']);}

if(!$styp) $styp = 'desc';

if($sort) $order = 'order by '.$sort.' '.$styp;
else      $order = 'order by media_timestamp '.$styp;

if($fmod) $filter .= " and media_class = '$fmod'";
if($faut) $filter .= " and media_user_id = '$faut'";
if($fcat) $filter .= " and media_cat = '$fcat'";
if($fmim) $filter .= " and media_mime = '$fmim'";
if($fsub) $filter .= " and media_sub_id = '$fsub'";

$filter = " where media_class!='submit' AND media_user_id = user_id $filter AND (media_rights='' OR ".sqlrights($db_tab['media'].'.media_rights').')';
   
$counter=$DB->fetch_array($DB->query("SELECT COUNT(*) FROM ".$db_tab['media'].",".$db_tab['user']." $filter"));
$counter_size=$DB->fetch_array($DB->query("select sum(media_size) FROM ".$db_tab['media'].",".$db_tab['user']." $filter"));
$total_files = $counter[0];
$total_size = number_format($counter_size[0]/1024,2,",",".");
$min=$DB->fetch_array($DB->query("SELECT min(media_timestamp) FROM ".$db_tab['media'].",".$db_tab['user']." $filter"));
$media_per_day=number_format(($total_files/(ceil((time()-$min[0])/86400))),1,",",".");

if ($entries>$counter[0]) $entries=0;
$total_side=sidelinkfull($counter[0], $epp, $entries, "$scrlink&sort=$sort&fmod=$mod&faut=$faut&fcat=$fcat&styp=$styp","small");

  $SQL = "SELECT *
            FROM ".$db_tab['media'].",".$db_tab['user']."
            $filter
            $order
            LIMIT $entries,$epp";

if($styp == 'desc') $styp = 'asc';
else                $styp = 'desc';

  $get_hist=$DB->query($SQL);
  while ($list=$DB->fetch_array($get_hist)) {
     $row=rowcolor($row);
     $id         = $list['media_id'];
     $timestamp  = date($config['mcp_history_date'],$list['media_timestamp']);
     $media_type = strtoupper(substr($list['media_class'],0,1));
     $media_title = cutstring(htmlentities($list['media_title']),20);     
     $media_mime = cutstring($list['media_mime'],10);


Sorry, ich wollte es der Übersichtlichkeit eigentlich verweiden soviel Code hier zu posten, aber ich hoffe Ihr könnt mir dennoch helfen...

Vielen Dank schonmal...

(PS: In diesem Beispiel wird der Conent nach Datum sortiert und nichtmal da weiß ich wie das zu stande kommt *schäm* Verlegen )


Nach oben
Private Nachricht senden
JFM
Beliebter [User]
Beliebter



Anmeldung: 25.09.05
Beiträge: 425
Wohnort: Gütersloh

BeitragVerfasst am: 14.07.2008, 09:10    Titel: Antworten mit Zitat

Ich glaube (ohne es genau zu wissen) Winken :
Mein PHP ist immo etwas eingetrocknet, weil ich mich mit anderen Sachen beschäftige und mit dem Lesen von fremden Quelltexten tu ich mir auch immer etwas schwer, also schreibe ich das mal unter vorbehalt. Wenn es blödsinn ist, wird mich 800xe sicher bald berichtigen Smilie

Der "Rand()-befehl" wird etwa so eingesetzt:

ORDER BY rand() LIMIT 1

Das bedeutet das deine Ausgabe zufällig sortiert wird und dabei nur der erste Eintrag ausgegeben wird.

Also müsstes du bei deinem Beispiel folgendes ändern:

original:
Code:
  $SQL = "SELECT *
            FROM ".$db_tab['media'].",".$db_tab['user']."
            $filter
            $order
            LIMIT $entries,$epp";


Geändert:
Code:
  $SQL = "SELECT *
            FROM ".$db_tab['media'].",".$db_tab['user']."
            $filter
           ORDER BY rand() LIMIT 0,1
            LIMIT $entries,$epp";



Problem stellt hier aber da, das deine Abfrage Dynamisch erstellt wird, dh. der User hat offenbar die Möglichkeit die Sortierung frei zu wählen, das würde dann zumindest für die Sortierung weg fallen.[/code]

_________________
http://www.onestripe.de


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
800XE
Bekannter [Mod]
Bekannter



Anmeldung: 24.10.04
Beiträge: 1410
Wohnort: Speyer

BeitragVerfasst am: 14.07.2008, 11:14    Titel: Antworten mit Zitat

JFM hat folgendes geschrieben:
Ich glaube (ohne es genau zu wissen) Winken :
Mein PHP ist immo etwas eingetrocknet, weil ich mich mit anderen Sachen beschäftige und mit dem Lesen von fremden Quelltexten tu ich mir auch immer etwas schwer, also schreibe ich das mal unter vorbehalt. Wenn es blödsinn ist, wird mich 800xe sicher bald berichtigen Smilie

Der "Rand()-befehl" wird etwa so eingesetzt:

ORDER BY rand() LIMIT 1[/code]

Ich hab den Code oben jetzt garnicht erst gelesen
und will JFM hier auch nicht berichtigen

vor Wochen war mir noch neu das SQL einen eigenen Würfelbescher hat
und vom Gefühl her, bin ich auch gegen SQLabfragen mit Rufall drin, die sollten konkret sein = der Zufall Konkret fest eingebaut

Code:

$so_mutch_i_have = ....
// irgendwoher kommt die INfo wieviele Datensätze es gibt

$givThis = mt_rand( 1, $so_mutch_i_have );

$query = '';
$query.= ' SELECT ...';

$query.= ' LIMIT ' . $givThis . ' ,1 ';

$result= mysql_query( $query );

so tät ich das machen

SQL = Structured Query Langwitch
not
Spiel Quitung Lasvegas
aber
Applicationen in LasVegas dürfen natürlich auch mit SQL arbeiten



Gruß
Andy 800XE Zmuda


PS
bei ORDER BY RAND() LIMIT 0,1
da wird doch nicht etwa wirklich am Ende(also, am Anfang) erstmal alles durchgewürfelt(durchgemischt)
SQL wird sicherlich so schlau seinund einfach "einen von allen" nehmen, ohne erstmal alle zu mischen ....
... aber der Befehl selbst, der sugeriert das unnötige Arbeit gemacht werden soll

@JFM
bitte verstehe mein gschreibsel nicht als Kritik, ich philosophiere nur über sein und nicht sein, anschein haben, beser sein tun(=es beser tun, oder es beser aussehen lassen, nicht so aussehen lassen das es aussieht als wäre es schlecht)
PS2(nicht die SPielKonsole)
bin kein Politiker
bin angaschiert von der Pharmaindustrie ... Projekt "duplicate the Kopfwehtablette-Umsatz"

_________________
Seien wir realistisch, versuchen wir das Unmögliche!
CMS800 :::::::::: Andy 800XE Zmuda :::::::::
ich bin nicht unhöflich, ich bin binär


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
Malli
User [User]
User



Anmeldung: 03.02.08
Beiträge: 19
Wohnort: Berlin

BeitragVerfasst am: 14.07.2008, 18:32    Titel: Antworten mit Zitat

Vielen lieben Dank JFM. Werd ich direkt mal ausprobieren..

JFM hat folgendes geschrieben:

Problem stellt hier aber da, das deine Abfrage Dynamisch erstellt wird, dh. der User hat offenbar die Möglichkeit die Sortierung frei zu wählen, das würde dann zumindest für die Sortierung weg fallen.[/code]


Hast du genau richtig erkannt, aber da wirklich nur zufällig etwas angezeigt werden sollm benötige ich ja die sortierungsfunktion nicht mehr.


Nach oben
Private Nachricht senden
Malli
User [User]
User



Anmeldung: 03.02.08
Beiträge: 19
Wohnort: Berlin

BeitragVerfasst am: 14.07.2008, 18:46    Titel: Antworten mit Zitat

Sorry, für den Doppelpost, aber an dieser Stelle wirklich mal vielen Dank für die super geniale Hilfe hier im Forum und natürlich an JFM. Ich könnte Luftsprünge machen, es funktioniert Tadellos. Viiiielen DANK!! Winken Sehr glücklich

Nach oben
Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

Gehe zu:  

Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge Images werden nicht angezeigt und kan... Goulgag Einsteigerforum 6 29.11.2008, 22:44 Letzten Beitrag anzeigen
Keine neuen Beiträge Toplist bewertung / Problem: Banner n... MasterM112 HTML & CSS 0 20.11.2008, 18:12 Letzten Beitrag anzeigen
Keine neuen Beiträge POST geht nicht 800XE Serverseitige Websprachen 10 12.11.2008, 22:33 Letzten Beitrag anzeigen
Keine neuen Beiträge Pagerang (k) verlust durch Links ? Siktirlan Linktausch 4 03.11.2008, 13:10 Letzten Beitrag anzeigen
Keine neuen Beiträge Mysql update funktioniert nicht powerup Serverseitige Websprachen 3 22.10.2008, 18:01 Letzten Beitrag anzeigen
Threadübersicht