WARNING: shuffle() expects parameter |
|Nemo|
Mitglied
Dabei seit: 04.12.05
Beiträge: 530
Herkunft: Düren Forenversion: WBB Lite 1.02
|
|
Ich habe mir ein Script installiert, das zufällige Werte ausgeben soll, wenn man einen HTML-Code einbindet.
Aber jetzt kommt an der Stelle, an der der HTML-Code eingefügt wurde:
Zitat: |
Warning: shuffle() expects parameter 1 to be array, null given in /usr/export/www/vhosts/funnetwork/hosting/wiegehtdas/bannertausch/inc/showb
anner/getbanner.inc on line 13 |
In Zeile 13 steht:
Woran liegt dieser Fehler?
__________________ FUSSBALL - ARTIKELVERZEICHNIS
Social Bookmarking - Düren - Fußball-Forum
|
|
03.01.07 12:33 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
Radiation
Mitglied
Dabei seit: 17.01.04
Beiträge: 2.089
Fähigkeiten: WBB3 Anfänger; WBB2 Profi Herkunft: Reutlingen Forenversion: 2.3
|
|
Ich würde tippen das $bid kein Array ist und Shuffle funktioniert nur im Array.
__________________ Mit freundlichem Gruß
Sascha Speidel
|
|
03.01.07 13:07 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
[kamui]
~
Dabei seit: 27.04.05
Beiträge: 2.992
|
|
Puh, also sieht eigentlich richtig aus soweit. Allerdings kenne ich die Funktion "shuffle()" erst, seit du hier dein Problem schilderst. Hast du es schon einmal mit rand probiert?
|
|
04.01.07 12:45 |
Finden
Als Freund hinzufügen
|
|
lycoos
Frauenstimme 2007
Dabei seit: 05.08.05
Beiträge: 1.076
|
|
Wie wäre es mit array_rand?
php: |
1:
2:
3:
4:
5:
6:
|
<?php
srand((float) microtime() * 10000000);
$Banner = array("Banner1", "Banner2", "Banner3", "Banner4", "Banner5");
$rand = array_rand($Banner, 1);
echo $Banner[$rand[0]] . "\n";
?> |
|
__________________ mfg
der Lycoos
Der Satz des Pythagoras umfasst 24 Worte,die Zehn Gebote 279, die amerikanische Unabhängigkeitserklärung 300 und die Verordnung der EG über die Einfuhr von Karamelbonbons 25.911 Worte.
|
|
04.01.07 13:44 |
E-Mail
Finden
Als Freund hinzufügen
|
|
[kamui]
~
Dabei seit: 27.04.05
Beiträge: 2.992
|
|
Nemo, bevor du eine Funktion anwendest, solltest du immer lesen, wie man das tut
Hier empfehle ich dir www.php.net
Wenn du nicht erst auf die Page gehen willst, kannst du es auch so machen: php.net/FUNKTION (z.B. www.php.net/rand)
|
|
04.01.07 14:04 |
Finden
Als Freund hinzufügen
|
|
|Nemo|
Mitglied
Dabei seit: 04.12.05
Beiträge: 530
Herkunft: Düren Forenversion: WBB Lite 1.02
Themenstarter
|
|
@Kamui: Hatte ich eigentlich auch. Aber ich wusste nicht, wie ich den Code genau verändern sollte.
@lycoos:
Etwa dann in meinem Fall so?
----------------
Statt:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
|
srand ((float)microtime()*1000000);
shuffle ($bid);
srand ((float)microtime()*1000000);
shuffle ($bid);
$id = "$bid[0]";
$id2 = "$bid[1]";
$checkban = "$banner[lastbannerid]";
If ($id == "$checkban"){
$id = "$bid[1]";
}
ElseIf ($id == ""){
$id = "$bid[1]";
}
ElseIf ($id != "$checkban" || $id != ""){} |
|
Das hier:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
|
srand ((float)microtime()*1000000);
$rand = array_rand($bid, 1);
srand ((float)microtime()*1000000);
$rand = array_rand($bid, 1);
$id = "$bid[0]";
$id2 = "$bid[1]";
$checkban = "$banner[lastbannerid]";
If ($id == "$checkban"){
$id = "$bid[1]";
}
ElseIf ($id == ""){
$id = "$bid[1]";
}
ElseIf ($id != "$checkban" || $id != ""){} |
|
Dann habe ich aber das hier nicht drin:
php: |
1:
|
$Banner = array("Banner1", "Banner2", "Banner3", "Banner4", "Banner5"); |
|
Könnte man das denn irgendwie so machen?
php: |
1:
2:
|
$Banner = array{
SELECT * FROM database_table}; |
|
Ich weiß, Syntax ist zu 100% falsch!
##################
Edit:
Mit diesem Code hier
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
|
$result_get_banner = mysql_query("SELECT user_login FROM users WHERE imp_left > 0 AND act='1' AND numban > 0");
while ($banner = mysql_fetch_array($result_get_banner)){
$bid[] = "$banner[user_login]";
}
$ip = getenv ("REMOTE_ADDR");
$bid[] = array("$banner[user_login]");
srand ((float)microtime()*1000000);
$rand = array_rand($bid, 1);
srand ((float)microtime()*1000000);
$rand = array_rand($bid, 1);
$id = "$bid[0]";
$id2 = "$bid[1]"; |
|
bekomme ich wenigstens keine Fehlermeldung mehr, aber auch keinen Banner:
http://hooklines.ho.funpic.de/
__________________ FUSSBALL - ARTIKELVERZEICHNIS
Social Bookmarking - Düren - Fußball-Forum
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von |Nemo|: 05.01.07 22:26.
|
|
05.01.07 22:16 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
[kamui]
~
Dabei seit: 27.04.05
Beiträge: 2.992
|
|
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
|
$result_get_banner = mysql_query("SELECT user_login FROM users WHERE imp_left > 0 AND act='1' AND numban > 0");
while ($banner = mysql_fetch_array($result_get_banner)){
$bid[] = "$banner[user_login]";
}
$ip = getenv("REMOTE_ADDR");
srand ((float)microtime()*1000000);
$rand = array_rand($bid, 1);
$id = "$bid[0]";
$id2 = "$bid[1]"; |
|
Probiers mal so. (Wieso machst du eigtl. ein array_rand rein, wenn du am Ende $id und $id2 sowieso feste Werte zuweist ?)
|
|
06.01.07 00:23 |
Finden
Als Freund hinzufügen
|
|
|Nemo|
Mitglied
Dabei seit: 04.12.05
Beiträge: 530
Herkunft: Düren Forenversion: WBB Lite 1.02
Themenstarter
|
|
Mit deinem Code kommt folgendes:
Zitat: |
Warning: array_rand() [function.array-rand]: First argument has to be an array in /usr/export/www/vhosts/funnetwork/hosting/wiegehtdas/bannertausch/inc/showb
anner/getbanner.inc on line 15 |
Da ist ja auch vor "rand" kein Array...
Was ist denn an meinem Code noch falsch? Denn eine Fehlermeldung kommt ja nicht mehr:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
|
$result_get_banner = mysql_query("SELECT user_login FROM users WHERE imp_left > 0 AND act='1' AND numban > 0");
while ($banner = mysql_fetch_array($result_get_banner)){
$bid[] = "$banner[user_login]";
}
$ip = getenv ("REMOTE_ADDR");
$bid[] = array("$banner[user_login]");
srand ((float)microtime()*1000000);
$rand = array_rand($bid, 1);
srand ((float)microtime()*1000000);
$rand = array_rand($bid, 1);
$id = "$bid[0]";
$id2 = "$bid[1]"; |
|
__________________ FUSSBALL - ARTIKELVERZEICHNIS
Social Bookmarking - Düren - Fußball-Forum
|
|
06.01.07 12:17 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
[kamui]
~
Dabei seit: 27.04.05
Beiträge: 2.992
|
|
Also zu deinem Code:
- Du hast zweimal:
code: |
1:
2:
|
srand ((float)microtime()*1000000);
$rand = array_rand($bid, 1); |
|
drin, was unnötig ist, da es hintereinander ist, und die Variable $rand überschrieben wird.
- In Zeile 7 weist du dem Array $bid noch einen weiteren Wert zu, der selber ein Array ist, aber keinen Inhalt hat (denn es ist außerhalb der while()-Schleife, in der $banner gilt)
|
|
06.01.07 12:50 |
Finden
Als Freund hinzufügen
|
|
[kamui]
~
Dabei seit: 27.04.05
Beiträge: 2.992
|
|
Das wird das beste sein. Denn "Learning by Doing" ist immernoch am besten, meiner Meinung nach
|
|
06.01.07 13:49 |
Finden
Als Freund hinzufügen
|
|
|