php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.12.2008, 15:51  
Neuer Benutzer
 
Registriert seit: 21.12.2008
Beiträge: 29
mygov befindet sich auf einem aufstrebenden Ast
Standard Array auslesen, vergleichen

Hallo,

hier erstmal meine Idee, damit man es besser nachvollziehen kann was ich möchte

Die Mysql-Tabelle besteht aus: ... queue | accepted | declined ...
Und zwar soll es mal eine Art Eventplaner werden, d.h. die User können sich zu einem Event eintragen und diese User sollen in die MySQL Tabelle "queue" kommen (Getrennt mit komma d.h. usernick1,usernick2,usernick3 usw...) dann kann ein admin z.b. user usernick1 und usernick3 bestätigen, dann kommen diese in die Tabelle "accepted" (das soll in der datendank dann wieder so aussehen usernick1,usernick3 (also mit komma getrennt quasi).


Ich habe nun mal probiert ein Script zu schreiben was mit EINEM User kompatibel ist. D.h. er schaut in der mysql datenbank nach ob der $username im queue oder accepted oder im declined sich befindet und gibt dann einen fehler aus... ansonsten trägt er ihn halt in die queue tabelle ein, ein admin kann ihn dann in die accepted tabelle moven...

PHP-Code:
$id $_GET["id"];
$sq mysql_query ("SELECT id, queue, accepted, declined FROM work_articlearea WHERE id='$id' LIMIT 1"); 
$array mysql_fetch_array($sq);
if ((
$array['queue'] == $username) OR ($array['accepted'] == $username) OR ($array['declined'] == $username)) {
    echo 
"error";
}
else {
$eitr =  mysql_query ("UPDATE work_articlearea SET queue='$username' WHERE id='$id' LIMIT 1");
    echo 
"eingetragen.";

Ich möchte jetzt wie gesagt aber nicht nur einen User dort auslesen sondern die user mit komma auslesen --> nickname1,nickname2




Das script soll überprüfen das keiner von den eingetragenen nicknames(nickname1,nickname2,nickname3) in der tabelle dem $username entspricht.


Wie kann ich das am besten umsetzen? Kann mir da jemand ein Lösungsvorschlag geben?
Brauche nur eine kleine Unterstützung für diese eine Frage den rest krieg ich selbst irgendwie gebastelt


Vielen Dank schonmal im vorraus!
Ich hoffe ich konnte mich richtig ausdrücken
mygov ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 22.12.2008, 10:14  
Erfahrener Benutzer
 
Registriert seit: 19.05.2008
Beiträge: 612
PHP-Kenntnisse:
Fortgeschritten
Young Jedi befindet sich auf einem aufstrebenden Ast
Standard

Du könntest mit explode den gesamten Arrayinhalt als neues Array erzeugen, dann Key und Value vertauschen und gucken, ob der key mit dem Username bereits existiert (wenn ich dich richtig verstanden habe). Also ungefähr so:

PHP-Code:
<?php

$users 
$array['queue'].$array['accepted'].$array['declined'];

$user_array explode(","$users);
$user_arrayarray_flip($user_array);

if (isset(
$user_array[$username]))
    
//....

?>
Allerdings würdest du insgesamt besser kommen, wenn du generell eine 2. Tabelle erstellt, die ca. so aussieht:

id, eventId, status

Status könnte dann z.B. -1,0,1 sein (abgelehnt, neutral, angenommen)
__________________
http://tippsgegenlangeweile.de

Young Jedi ist offline  
Alt 22.12.2008, 10:17  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.847
HPR1974 wird schon bald berühmt werden
Standard

also ich würde lieber mal meine DB etwas normalisieren dann haste es einfacher
HPR1974 ist offline  
Alt 22.12.2008, 14:27  
Neuer Benutzer
 
Registriert seit: 21.12.2008
Beiträge: 29
mygov befindet sich auf einem aufstrebenden Ast
Standard

danke Young Jedi, genau sowas habe ich gesucht. Vielen Dank!

Nun hab ich da noch ne kleine Frage im Anschluss und zwar kann ich wie folgt EINEN User in die spalte queue eintragen, wie kann ich nun aber mehrere User (mit komma) eintragen?
Also so das die vorhandenen user in der spalte drin bleiben und einfach der neue user zu dem anderen hinzugefügt werden (nickname1,nickname2,nickname3 usw...)

PHP-Code:
$eitr =  mysql_query ("UPDATE work_articlearea SET queue='$username' WHERE id='$id' LIMIT 1"); 
mygov ist offline  
Alt 22.12.2008, 14:31  
Erfahrener Benutzer
 
Registriert seit: 19.05.2008
Beiträge: 612
PHP-Kenntnisse:
Fortgeschritten
Young Jedi befindet sich auf einem aufstrebenden Ast
Standard

.... SET queue = queue + '$username,' ....
oder
.... SET queue += '$username,' ....

müsste funktionieren. Aber die bessere Lösung ist immer noch zusätzliche Tabelle
__________________
http://tippsgegenlangeweile.de

Young Jedi ist offline  
Alt 22.12.2008, 17:15  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Was HPR1974 dir in #3 nahebringen wollte, und was ich gerne unterschreibe: Dein Datenmodell ist Schrott. Gleichartige Daten speichert man in Tabellenzeilen und klemmt sie nicht in ein einziges Feld.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline  
Alt 22.12.2008, 23:37  
Neuer Benutzer
 
Registriert seit: 21.12.2008
Beiträge: 29
mygov befindet sich auf einem aufstrebenden Ast
Standard

ja habs nun in tabellenform gebracht
Nun hab ich nichtmehr das selbe Problem, aber ein anderes:


hier noch mal mein ansatz:

Tabelle:
work_articlestatus
-> eventid
-> username
-> status

In der Tabelle steht jetzt Testweise folgendes:
eventid username status
1 mygov wait
2 mygov wait
1 test wait
2 test wait

PHP-Code:
            $stop "0";
            while(
$stop==0) {
            
$sq mysql_query ("SELECT eventid,username,status FROM work_articlestatus WHERE eventid='$id'"); 
            
$array mysql_fetch_array($sq);
                if (
$array['eventid'] == $id) {
                    if ((
$array['username'] == $username) && isset($array['status'])) {
                        echo 
"status bereits gesetzt";
                        
$stop="1";
                        }
                    if (
$array['username'] != $username) {
                        
mysql_query("INSERT INTO work_articlestatus (eventid, username, status) VALUES ('$id', '$username', 'wait')");
                        echo 
"wir haben dich eingetragen";
                        
$stop="1";
                        }
                }
                if (
$array['eventid'] != $id) {
                    
mysql_query("INSERT INTO work_articlestatus (eventid, username, status) VALUES ('$id', '$username', 'wait')");
                    echo 
"wir haben dich eingetragen2 weil keine eventid vorhanden";
                    
$stop="1";
                } 
Hier hab ich nun das Problem das er trotzdem die schleife ...if ($array['username'] != $username) { ... ausführt, obwohl aber der username schon in der Tabelle ist auch die 'eventid' gleich der $id ist...

Jemand ne idee?

Vielen Dank nochmals für die Bemühungen!
mygov ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
erstellungsdatum auslesen und sortiren SteiniKeule PHP Tipps 2008 10 30.11.2008 13:57
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
Dynamisch Array aus MySQL mit PHP auslesen. Muuip PHP Tipps 2008 2 26.08.2007 21:19
Zweidimensionales Array auslesen u wieder in Array schreiben Lobo PHP Tipps 2006 7 20.04.2006 11:37
[Erledigt] array im array auslesen PHP Tipps 2006 3 15.03.2006 21:33
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
Array Formatierung PHP Tipps 2006 3 17.01.2006 19:12
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
Problem beim vergleichen von 2 Arrays PHP Tipps 2005-2 1 06.10.2005 14:25
Array in Session speichern und wieder auslesen Riot PHP Tipps 2005-2 3 08.07.2005 11:43
Assoziatives Array auslesen phpwiki PHP Tipps 2005 4 21.04.2005 13:27
Array wie auslesen? PHP Tipps 2005 7 07.03.2005 11:43
[Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31
Abfrage mit id aus anderer Tabelle suter PHP Tipps 2004-2 15 16.12.2004 14:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php array auslesen, array auslesen, select array auslesen, mysql_query array, http://www.php.de/php-tipps-2008/49994-array-auslesen-vergleichen.html, array auslesen und vergleichen, array id auslesen, array anhand der id auslesen, php mysql id einlesen in array, php script array auslesen, datensätze in array auslesen mit php, insert into aus array auslesen und an mysql, php mysql daten auslesen und vergleichen, where id array, php array queue, php select array auslesen, array auslesen und in tabelle eintragen php, php arrays mit datenbank id vergleichen, php zeile auslesen und vergleichen, array auslesen vergleichen

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:40 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum