#1 6. Januar 2006 Zuletzt von einem Moderator bearbeitet: 15. April 2017 Hi so vll kann mir ja hier jemand helfen . Hab mir schon ein paar vorschläge ander leute angehört funzt nur nicht so richtig. da wir ja hier 3 oder 4 profi coder haben mal die frage an euch also. Also mein Plan war es ich hab eine Datebank wo ich z.b. alle Leute aus meiner Klasse eintrage. So die lass ich dann auf der Homepage ausgeben. Nun wollte ich, dass jeder aus meiner Klasse eine Friendliste machen kann. (Also jeder der Regestriert ist) also das mit der Friendliste kann ich ist kein Problem. Aber ich würde gerne das die Leute farbig makiert werden die der jenige in seine Friendsliste getan hat . (Aber nur bei dem jenigen der sie auch in die Liste hinzugefügt hat). Vlt fällt euch ja ein wie man es realisieren kann. Wäre aufjedenfall cool *gg* Hab es mal mit einem Beispiel hinterlegt: Nehmen wir an wir sind 10 Tests in der Klasse. Ich bin Test und ich hab Test2 und Test3 in meine Friendsliste hinzugefügt. Diese sollen dann z.b. rot hinterlegt werden. Vorher bevor sie in die liste hinzugefügt wurden: {img-src: //img369.imageshack.us/img369/3427/vorher9nv.jpg} Und nachdem ich Test2 und 3 in meine Liste hinzugefügt habe: {bild-down: http://img369.imageshack.us/img369/5766/nachher9xy.jpg} und das ganze soll dann nur von mir gesehen werden. Also z.b. Test5 added Test und Test4 in seine liste soll nur er Test und Test4 markiert sehen ^^. Bestimmt unlösbar ... *G*
#2 6. Januar 2006 Ich habe erst vor kurzer zeit darüber nachgedacht wie es im wbb mit der buddy list geht :> Ist doch am ende das gleiche, nur das die buddy's dann mit einem * vor und hinter dem nick gekennzeichnet sind. Aber ich würde mal sagen man könnte es per Session machen für die jeweiligen user machen ..
#3 6. Januar 2006 jo eigendlich ist es genau so wie die buddy list aber beim wbb code steig ich eh meistens nicht durch und mit sessions wüsste ich atm nicht so richtig wie aber vll kommt ja jemand ^^. dann hat mir jemand ein script gemacht mit foreach was aber auch irgendwie noch nicht richtig funzt vll bekommt er es ja noch hin und dann hab ich den tip bekommen mit arrays zu arbeiten und nachher friend und user mit array_diff() zu unterscheiden
#4 6. Januar 2006 is doch net so schwer, machst einfach in die db ne spalte rein, in der die leute(IDs) derer stehn, die ihn auf der liste haben... diesen string ließt du dann aus, der hat dann vllt folgendes aussehen: Code: 12-|-7-|-1-|-86 oder so, dann explodeste den an der stelle mit explode("-|-", $stringfromDB) in nen array und dann checkst du bei der ausgabe der tabelle, bei wem das is und packst bei denen dann nen <font color=red> tag oder was auch immer dazu... mfG. sCuDs
#5 6. Januar 2006 krass so weit bin ich dann doch noch nicht mit meinen php künsten ^^ also ich hab eigendlich eine datenbank mit ####Friendslist#### ## #Name####Friend### ##Harry###Bernhardt### .... und so weiter
#6 6. Januar 2006 dann mussu die db erweitern, dassu zu jedem namen noch die friendIDs hast... halt sowat: Code: ID | Name | friendIDs ----+--------+---------------------- 1 | sCuDs |1-|-3-|-43-|-98726
#7 6. Januar 2006 achso also nicht den name sondern die id hast du vll ein beispiel script wie ich das mit dem explode jetzt machen kann ?
#8 6. Januar 2006 hä? IP??? PHP: $friendstring = mysql_db_result ( $mysqlqry , 0 , "friendIDs" ); $friends = explode ( "-|-" , $friendstring ); hab grad keine zeit, das ganze weiter zu machen, aber das wirste ja hinbekommen...
#9 6. Januar 2006 sry hab mich vertippt ^^ meinte id hm falls du mal mehr zeit hast kannst du mir es ja mal richtig erklären werd google mal benutzen um mal mehr über explode rauszufinden . ansonsten werd ich es wohl lassen xD edit:// ok die funktion verstehe ich jetzt es macht z.b. aus one|two one und two aber die frage ist jetzt wie mache ich das er mir die färbt, die in der liste sind und trozdem die anderen auch ausgibt ? *Gg* vll bin ich auch atm ein bissle verplant ^^
#10 6. Januar 2006 mit explode() kannst du nen string in en array zerlegen lassen zb. der string is "hacker5 kann kein explode xD" dann lass ich den so zerlegen: $blablubb = explode(" ", $string); das ergebnis wäre dann in den einzelnen teilen das hier: $blablubb[0] = "hacker5" $blablubb[1] = "kann" $blablubb[2] = "kein" $blablubb[3] = "explode" $blablubb[4] = "xD" so einfach geht das
#11 6. Januar 2006 jo das hab ich rausbekommen funzt auch eigendlich so wie ich es eingebaut habe nur die frage ist jetzt wie mache ich das er die farbig macht und trozdem die anderen mit raushohlt und die z.b. blau macht xD
#12 6. Januar 2006 bin zwar nicht der hellste und kenn mich nich so mit php aus, aber da könnte man doch if abfrage benutzten. ja = liste ; nein = nicht in der liste ^^ wenn ja "rot" wenn nein "blau" dafür halt nen farbcode/befehl irgendwie rein bauen ^^ bei logo (sehr alte programmiersprache und meine erste ;D, haben wir auch sowas in der schule mit "wenn dann" gemacht und mit listen gearbeitet. Wie das aber bei php ist, ka)
#13 7. Januar 2006 Bin auch nich der hellste in php aber kannste doch einfach if name in der liste then rot else grau end if oda wie das in php geht
#14 7. Januar 2006 hm könnte vll gehen ^^ ich versuche es morgen mal wenn es geht wieso bin ich da nicht drauf gekommen ^^ ich mache immer alles mit if schleifen -.- ^^ nur das prob ist, das ich es gerne Alphabetisch geordnet hätte und zwar beide mal gucken ob es hinhaut ^^
#15 7. Januar 2006 hab nochmal langeweile gehabt und n script dafür geschrieben... PHP: <? php // Hier setze ich mal die ID desjenigen, der die Friendlist abruft... $nameid = 4 ; $connection = mysql_connect ( "localhost" , "root" , "passwort" ); $friendnames = mysql_db_query ( friendlist , "SELECT * FROM friendtable" ); $maximalnumber = mysql_num_rows ( $friendnames );for( $i = 0 ; $i < $maximalnumber ; $i ++){ $ID = mysql_result ( $friendnames , $i , "ID" ); $persons [ $ID ] = mysql_result ( $friendnames , $i , "name" );} $mysqlqry = mysql_db_query ( friendlist , "SELECT friendIDs FROM friendtable WHERE ID = $nameid " ); $friendstring = mysql_db_result ( $mysqlqry , 0 , "friendIDs" ); $friends = explode ( "-|-" , $friendstring );echo "<table>" ;for( $j = 1 ; $j <= $maximalnumber ; $j ++){ if( in_array ( " $j " , $friends )) { echo "<tr><td bgcolor='#FF0000'> $persons [ $j ] </td></tr>" ; } else { echo "<tr><td> $persons [ $j ] </td></tr>" ; } ?> die Tabelle dazu muss so ausschaun: Code: ID | Name | friendIDs -----+-----------------------------+-------------------------- 6 | Max Mustermann | 12-|-72-|-181-|-4-|-21
#16 8. Januar 2006 hey sCuDs vielen dank für deine hilfe nur leider kommt ein parser error find den fehler auch nciht so richtig. es soll etwas hier falsch sein "?>" aber da kann ja nichts also ist vll was mit der for schleife nicht richtig ? PHP: for( $j = 1 ; $j <= $maximalnumber ; $j ++){ if( in_array ( " $j " , $friends )) { echo "<tr><td bgcolor='#FF0000'> $persons [ $j ] </td></tr>" ; } else { echo "<tr><td> $persons [ $j ] </td></tr>" ; } und wenn ich die for schleife weg mache kommt: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Programme\xampp\htdocs\test\friend.php on line 8 Fatal error: Call to undefined function: mysql_db_result() in C:\Programme\xampp\htdocs\test\friend.php on line 16 das wäre hier PHP: $mysqlqry = mysql_db_query ( friendlist , "SELECT friendIDs FROM friendtable WHERE ID = $nameid " ); $friendstring = mysql_db_result ( $mysqlqry , 0 , "friendIDs" ); $friends = explode ( "-|-" , $friendstring );echo "<table>" ; wenn du keine zeit oder lust hast es nachzugucken wäre auch kein problem *gg*
#17 8. Januar 2006 die zweite meldung kann ich schon mal klären... hab ich in jedem code mindestens einmal drin... muss natürlich nicht "mysql_db_result()" sondern "mysql_result()" den rest mach ich jetz neu, hatte bloß bis gestern abend kein funktionierendes xampp mehr und nur noch holzmodem... jetz geht abba wieder alles...
#19 8. Januar 2006 ich seh jetzt nur n Klammerungs fehler.. es fehlt eine Klammer welche die for() zu macht!
#20 8. Januar 2006 stimmt... naja, kommt vor, wie gesagt, hatte keine möglichkeit zum testen... EDIT: Hier hab ichs jetz komplett funktionierend: PHP: <? php // Hier setze ich mal die ID desjenigen, der die Friendlist abruft... $nameid = 4 ; $connection = mysql_connect ( "localhost" , "root" , "passwortr" ); $friendnames = mysql_db_query ( friendlist , "SELECT * FROM friendtable" ); $maximalnumber = mysql_num_rows ( $friendnames );for( $i = 0 ; $i < $maximalnumber ; $i ++){ $ID = mysql_result ( $friendnames , $i , "ID" ); $persons [ $ID ] = mysql_result ( $friendnames , $i , "name" );} $mysqlqry = mysql_db_query ( friendlist , "SELECT friendIDs FROM friendtable WHERE ID = $nameid " ); $friendstring = mysql_result ( $mysqlqry , 0 , "friendIDs" ); $friends = explode ( "-|-" , $friendstring );echo "<table>" ;for( $j = 1 ; $j <= $maximalnumber ; $j ++){ if( in_array ( " $j " , $friends )) { echo "<tr><td bgcolor='#FF0000'> $persons [ $j ] </td></tr>" ; } else { echo "<tr><td> $persons [ $j ] </td></tr>" ; }}echo "</table>" ; ?> hab allet getestet und wörkt auch... noch n testscript, um 50 testeinträge in die tabelle zu tun: (das feld ID muss dazu auto_increment haben) PHP: <? php$db = mysql_connect ( "localhost" , "root" , "passwort" ); for( $i = 1 ; $i <= 50 ; $i ++){ mt_srand ((double) microtime ()* 1000000 ); for( $h = 1 ; $h <= 50 ; $h ++) $cnt [ $h ]= 0 ; $z = mt_rand () % 50 + 1 ; $cnt [ $z ] = 1 ; $string = " $z " ; for( $j = 1 ; $j <= 15 ; $j ++) { do { $z = mt_rand () % 50 + 1 ; }while( $cnt [ $z ]> 0 ); $cnt [ $z ] = $cnt [ $z ]+ 1 ; $string .= "-|- $z " ; } echo $string ; mysql_db_query ( "friendlist" , "INSERT INTO friendtable (Name, friendIDs) values ('Name $i ', ' $string ')" );} mysql_close ( $db ); ?>
#21 9. Januar 2006 cool big thx bist der eizige der mir helfen konnte. naja dann werd ich wohl mal foreach und for lernen müssen wenn man es so oft braucht ^^. den rest kann ich eigendlich xD ^^ ich kann dir garnicht genug danken thxthxthx ps: kannst du mir vll man die funktion for und for each erklären ? *gg*
#22 9. Januar 2006 und ich dachte immer, du bist hier der master of coding... [TEACHER] die funktion for() dient zum wiederholten ausführen eines bestimmten codeblocks z.B. PHP: <? php for( $i = 0 ; $i <= 50 ; $i ++){ echo "Durchlauf $i " ;} ?> Erklärung dazu: die funtion hat drei parameter (naja so richtige parameter sinds nit...) zuerst wird die zählvariable(wird glaub ich auch Iterator genannt) initialisiert indem ihr der wert 0 zugeordnet wird. der zweite "parameter" gibt an, für welche werte der Zählvariable die schleife ausgeführt wird, wird also $i größer als 50, wird die schleife nicht mehr ausgeführt. der letzte parameter gibt schließlich an, was mit der variablen in jedem durchlauf geschieht, hier eben wird $i um 1 erhöht, wenn die schleife ausgeführt wird. die funktion foreach() dient zurbearbeitung von arrays z.B. PHP: <? php$blablubb = array( "a" , "b" , "c" , "d" , "e" , "f" ); foreach( $blablubb as $moep ){ echo " $moep " ;} ?> Erklärung: die funktion durchläuft alle indizes des arrays und übergibt für die dauer eines schleifendurchgangs den entsprechenden wert an die variable nach dem wort "as". mit diesem wert kann man dann innerhalb der schleife arbeiten... so gesehen kann man mit foreach auch eine funktion schreiben, die aus einem array wieder einen string machen kann (gibts auch, heißt "implode()") PHP: <? php function scuds_implode ( $trennzeichen , $array ){ foreach( $array as $blubb ) { $string .= " $blubb$trennzeichen " ; }return $string ;} $moep = array( "sCuDs" , "bringt" , "hacker5" , "for()" , "und" , "foreach()" , "bei..." , ":)" ); $ergebnis = scuds_implode ( " " , $moep ); echo " $ergebnis " ; ?> [/TEACHER] dürfte alles klar sein, oder? wenn nicht ---> ICQ: 290-425-247 mfG. sCuDs
#23 9. Januar 2006 hey cool hab echt mal alles verstanden ^^ . mit den ganzen syntag gedingens von php.net kam ich nicht so richtig klar ^^ also ich versuche mal das bsp von dir zu deuten^^ for($i = 0; $i <= 50; $i++) da variable i noch 0 ist wird sie immer duruch $i++ um eins erhöht und die schleife wird so lange ausgeführt bis $i 50 ist bzw. größer ^^ juhuu hab es verstanden denke ich xD ^^ naja jeder hat hier seine wissens lücken ^^ aber haste echt cool erklärt thx