Anzeige - [Hier werben / Mediadaten]
(?) Tags raten (?) (edit)
 
Reply to this topicStart new topicStart Poll
> php Array Problem
kekskruemel
---
Geschrieben am: Di 14.10.2008, 17:18
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 330
Mitglied seit: 8.11.2005


Hallo,

ich versuce ein Array mit Zufallszahlen zu befüllen. Diese sollen dann abgeglichen werden und anschließend die herausgelöscht werden, welche doppelt sind. Dann soll es jeweils den entsprechenden Eintrag aus der Datenbank mit dieser ID heraussuchen und anzeigen.

Leider habe ich irgendwo einen Fehler drin. Kann mir wer helfen?
Danke!
CODE
$vorschlaghead = "<h1 class='head'>".$lang['Vorschlag_Head']."</h1>";
$vorschlag = "";
$anz_sql = mysql_query("SELECT * FROM anzeige");
$anz_res = mysql_num_rows($anz_sql);
for($i=0; $i < 10; $i++)
}
$zufallszahl[] = rand(1,$anz_res);
}
$zufallszahl = array_unique($zufallszahl);
$anzahlarray = array_count_values($zufallszahl);
for($j=0; $j < $anzahlarray; $j++)
{
$vorschlagSQL = "SELECT * FROM anzeige WHERE anzeige_id  = '".$zufallszahl[$j]."' ";
$vorschlagquery = mysql_query($vorschlagSQL);
while($vorschlag_ds = mysql_fetch_object($vorschlagquery))
 {
 $vorschlag .= "<p class=vorschlag><a href='anzeige.php?art=".$vorschlag_ds->anzeige_id."'>".$vorschlag_ds->head."</a></p>";
 }
}




--------------------
Top
PMEmail PosterUsers WebsiteICQ
Top
 
 
connectR
#2 Geschrieben am: Di 14.10.2008, 17:27 (+00:09)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 100
Mitglied seit: 29.01.2008


Du solltest eine Fehlermeldung wie "Parse error: syntax error, unexpected '}' in /var/www/web/html/deinedatei.php on line 6" erhalten.
Und die besagt: Du hast eine geschweifte Klammer falsch gesetzt.

Schau mal in zeile 6 und dreh die geschweifte Klammer dort um ;-)


--------------------
Ich bin freiberuflicher Programmierer - Und du?
Have a look at BodyVoten.de - Bilder voten
Top
PMUsers Website
Top
 
Oliver Pester
#3 Geschrieben am: Di 14.10.2008, 17:29 (+00:01)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 59
Mitglied seit: 23.06.2008


Hallo,

wenn du einfach nur zufällige Einträge aus der Datenbank auslesen willst, dann kannst du das auch mit:

CODE
SELECT * FROM anzeige ORDER BY RAND() LIMIT 0,10


das würde dir 10 zufällige Zeilen zurückgeben.

Grüße
Oli


--------------------
Top
PMEmail PosterUsers Website
Top
 
kekskruemel
---
#4 Geschrieben am: Di 14.10.2008, 17:43 (+00:14)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 330
Mitglied seit: 8.11.2005


ahh danke, so einfach
:-)


--------------------
Top
PMEmail PosterUsers WebsiteICQ
Top
 
nitrit
#5 Geschrieben am: Di 14.10.2008, 17:46 (+00:03)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 259
Mitglied seit: 8.08.2007


ich hoffe das ist nicht der fertige Code, ansonsten bau bitte noch:

CODE

if(empty($vorschlagquery))


ein, sonst wirft er dir ja ne Fehlermeldung bei rows=0


--------------------
Top
PMEmail Poster
Top
 
800XE
#6 Geschrieben am: Di 14.10.2008, 22:36 (+04:49)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 88
Mitglied seit: 10.04.2008


QUOTE (nitrit @ Di 14.10.2008, 18:46)
ich hoffe das ist nicht der fertige Code, ansonsten bau bitte noch:

ich hoffe das ist nicht der fertige Code, ansonsten bau bitte um

.....

Der orginalCode ist zwar eh hinfällig wegen dem Hinweis auf SQL-RAND ....
... aber, vielleicht für andere Fälle sehe ich mich gewzungen den Code zu kritisieren
CODE

for($j=0; $j < $anzahlarray; $j++)
{
 $vorschlagSQL = "SELECT * FROM anzeige WHERE anzeige_id  = '".$zufallszahl[$j]."' ";
 $vorschlagquery = mysql_query($vorschlagSQL);
 while($vorschlag_ds = mysql_fetch_object($vorschlagquery))

SQL auslesen in "while" wo doch immer nur ein datensatz rauskommt ....
... auslesen mit "if" .... bitte
CODE

 if($vorschlag_ds = mysql_fetch_object($vorschlagquery))


bzw
es geht um IDs?
die ForSchleife weg und den WHERE auf einen IN
CODE

 $vorschlagSQL = " SELECT * FROM anzeige ";
 $vorschlagSQL.= " WHERE anzeige_id  IN (1,2,3,4,5,6,7,8,9)";
 $vorschlagquery = mysql_query($vorschlagSQL);
 while($vorschlag_ds = mysql_fetch_object($vorschlagquery))


wie könnten die Daten dort reinkommen ... für den IN ... wenn der RAND nicht schon genutzt würde /vielleicht will man ja keinen Rand, in anderem Anwendungsfall)

Angenommen die QuellIDs kommen aus Anderer tabelle wie die spätere WHERE IN (1,2,3,4,5)
CODE

$KOMMA='';$WHERE='';// $WHERE = IDliste
$query = mysql_query("SELECT id FROM quelltabele");
$result = mysql_query($query) or die('<hr>'.$query.'<hr>'.mysql_error());
while( $line = mysql_fetch_array($result, MYSQL_ASSOC))
{
$WHERE .= $KOMMA . $line['id']; $KOMMA=',';
}
// ups, das ist jetzt irgendwie etwas falsch ....
// wegen randomizer müße ich ja in Arry schreiben
// ok, mach ich einen explode und bau dann den STring wieder zurück
$WUERFELBECHER = explode(',',$WHERE);
$WUERFELcounter= count($WUERFELBECHER);
$WUERFELschuettel=100;
//noch eine kleine verschiebung ... weil Array bei 0 beginnt und Mensch ab 1 zählt
$WUERFELBECHER[$WUERFELcounter]=$WUERFELBECHER[0];
// [0] nutzen wir jetzt noch ab "buffer" ähm, "zwischenablage";
while( $WUERFELschuettel-- )
{
 $zufall1 = mt_rand( 1, $WUERFELcounter );
 $zufall2 = mt_rand( 1, $WUERFELcounter );
 $WUERFELBECHER[       0]=$WUERFELBECHER[$zufall1];  
 $WUERFELBECHER[$zufall1]=$WUERFELBECHER[$zufall2];  
 $WUERFELBECHER[$zufall2]=$WUERFELBECHER[       0];  
}
// und zurückbauen
$i=0; $KOMMA='';$WHERE='';// $WHERE = IDliste
while( $i++<$WUERFELcounter )
{
$WHERE .= $KOMMA . $WUERFELBECHER[$i]; $KOMMA=',';
}

$vorschlagSQL = " SELECT * FROM ergebnisslieferant ";
$vorschlagSQL.= " WHERE anzeige_id  IN ($WHERE)";
$vorschlagquery = mysql_query($vorschlagSQL);
while($vorschlag_ds = mysql_fetch_object($vorschlagquery))
{
}



wenn die Daten für "WHERE IN" keine Zahlen sind ....
CODE

while( $line = mysql_fetch_array($result, MYSQL_ASSOC))
{
$WHERE .= $KOMMA ."'". addslashes($line['textSpalte']) ."'"; $KOMMA=',';
}


--------------------
zurück in die Zukunft CSVAndy 800XE Zmuda ····
Top
PMEmail Poster
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/26792

Topic Options Reply to this topicStart new topicStart Poll

 


> Ähnliche Themen
Kleines Problem mit preg_replace... BartTheDevil89 77 3 Do 20.11.2008, 22:13
Problem bei Mail-Versand PH 344 14 Di 11.11.2008, 08:32
PHP: session_start() blockiert $_FILES-Array Guentor Netzor 124 1 Do 6.11.2008, 09:23
Datenbankabfrage Problem Mauf 234 13 Mi 22.10.2008, 15:48
Php mail Problem UTF-8 Carbon 356 6 So 19.10.2008, 12:35
Firefox Problem Marc3l 165 4 So 19.10.2008, 10:42
Install-Problem mit Elgg MacGyver 170 1 Fr 10.10.2008, 12:16
FTP Problem DrCash 122 1 Mi 1.10.2008, 06:28
Zanox und OpenX Problem FAn1919 300 5 Di 23.09.2008, 17:33
Problem mit JavaScript & Flash Marc3l 257 4 Mo 22.09.2008, 06:49




Anzeige - [Hier werben / Mediadaten]



Anzeigen


[Hier werben / Mediadaten]