php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.05.2004, 17:18  
Gast
 
Beiträge: n/a
Standard [Erledigt] Werte eines Arrays aus Tabelle auslesen ?

Abend

ich habe da ein kleines Problem, welches folgendes darstellt:

Ich habe eine Abfrage gemacht und zu dieser Abfrage kann sich der User bestimmte auf ihn zutreffende Punkte auswählen. In diese Punkte lass ich dann in der Datenbank in ein Feld in er Tabelle diese Userids als Array eintragen:
In der Tabelle steht dann z.B. folgendes ,13,,26,,6,,9,
ich habe die ids mit

Zitat:
foreach ($user as $elem) {
$alle .=",$elem,";
}
$sessionid = session_id();
Connect();
$rs1 = mysql_query("UPDATE aus_aus SET IIDS='$alle' WHERE SES = '$sessionid'");
DisConnect();
eingetragen in die Tabelle IIDS wo sie nun wie oben drinstehen.
Nun will ich die Usernamen ausgeben lassen, aber habe keine Ahnung wie ich an die einzelnen IDs rankomme. Er gibt mir diese immer nur im Block aus ",13,,26,,6,,9,"
Ich komme da leider auf keinen grünen Zweig

Kann mir dabei eventuell jemand helfen ?

greetz
Pega
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 25.05.2004, 10:49  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Abgesehen, davon, dass das nicht ein sehr schlaues DB-Design ist (http://www.tinohempel.de/info/info/d...alisierung.htm), und die doppelten Kommas noch weniger Sinn machen, so gehts:
Code:
$array = explode(',', str_replace(',,', ',', $IIDS));
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 26.05.2004, 15:39  
Gast
 
Beiträge: n/a
Standard

ich hoffe, ich hab dich jetzt richtig verstanden. also damit du nicht immer sowas wie ,13,,26,,6,,9, bekommst, sondern etwas wie 13,26,6,9 , kannst du folgendes benutzen:
Code:
$array=array();
foreach($user as $elem){
  $array[]=$elem;
}
$array=implode(",",$array);
sollte ich dich falsch verstanden haben, bitte ich dich, das problem näher zu schildern. ich kapier das nämlich irgendwie nicht so richtig.
  Mit Zitat antworten
Alt 26.05.2004, 15:44  
Gast
 
Beiträge: n/a
Standard

ah! ich habe verstanden!

Code:
...
$r=mysql_fetch_object(mysql_query("SELECT * FROM aus_aus WHERE SES = '$sessionid' LIMIT 1;"));
$array=explode(",",$r->IIDS);
...
mich verwundern diese funktionen ein wenig. was hast du denn für ne php-version?
  Mit Zitat antworten
Alt 26.05.2004, 15:47  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von krabbenfilet
Code:
$array=array();
foreach($user as $elem){
  $array[]=$elem;
}
$array=implode(",",$array);
du kannst auch sofort
Code:
$string=implode(",",$user);
nehmen :wink:
[/code]
  Mit Zitat antworten
Alt 28.05.2004, 15:43  
Gast
 
Beiträge: n/a
Standard

also einfach noch mal zur genauen Erklärung
in der Tabelle steht halt
Code:
,13,,26,,6,,9,
nun will ich die ids dir dort drinstehen rausholen, so das ich alle ids die dort stehen einzeln zur verfügung habe.
Dann will ich ein erneutes Query starten und aus der Tabelle der User die Name der User rausholen, von den IDs die in der anderen Tabelle stehen.

Code:
$result=mysql_query("SELECT * FROM aus_user WHERE id='$arrayid'")
//$arrayid sollen hier die ids aus dem Tabellenfeld sein und zwar einzeln, aber alle nicht nur 1 id
or die("Query konnte nicht ausgeführt werden...");
while ($content = mysql_fetch_array($result)) {
$users=$content[uname]."
";
}
in einer Tabelle will ich dann
Code:
".$users."
hinsetzen und dann sollen die Usernamen ausgegeben werden.

Zitat:
User1
User2
User3
.....
Ich will also die IDs einzeln rausholen und nicht als einen Wert, wie oben angegeben haben.

Nur wie genau setz ich nun das implode oder explode an ?

sry für die noobige Frage, steig da nur voll ned durch
und will im moment auch ned alle tabellen umprogrammieren
  Mit Zitat antworten
Alt 28.05.2004, 16:31  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Hab ich dir ja geschrieben. Wenn du es so machst, hast du jedes Element in $array. Und wenn du die leeren Felder am Anfang und Ende des Arrays nicht haben willst, machst du stattdessen folgendes:
Code:
$array = explode(',', preg_replace(array('/^,/', '/,$/', '/,,/'), array('', '', ','), $IIDS));
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 07.06.2004, 15:28  
Gast
 
Beiträge: n/a
Standard

So die id's liest er jetzt aus und ich kann sie mir untereinander wiedergeben lassen, hatte dort wohl was falsch hingeschrieben un ned gemerkt

Jetzt kommt das eigentlich komplizierte und zwar stehen so z.B. 4 ID's in einem Tabellenfeld.

Code:
$array = explode(',', preg_replace(array('/^,/', '/,$/', '/,,/'), array('', '', ' ,'), $IIDS));
foreach($array as $elem)
echo $elem."
";
In dem Falle gibt er mir dann die ID's der User die als Array in der DB gespeichert sind aus:

Zitat:
13
13
16 8
3 6 7 8
7
12 13
13
12 13
19
jetzt wollte ich per Query die Usernamen der jeweilgen ID's auslesen aus der Usertabelle, so dass anstatt der ID's die Usernamen dortstehen.

Code:
$result3 = mysql_query("SELECT * FROM user where id='$elem'")
or die("Query konnte nicht ausgeführt werden...");
while ($content = mysql_fetch_array($result3)) {
$user=$content[uname];
echo $user."
";
}
Er gibt mir zwar so einen usernamen wieder, aber nur der der als letztes bei den ID's im Array steht, sprich wenn dort 2 ID's stehen wie "12 13" gibt er nur den hinteren Usernamen aus bei dem anderen bleibt die ID stehen. Wie kann ich das machen das er mir alle Usernamen untereinander ausgibt für die jeweiligen Felder ? Mit noch ner Schleife drum vielleicht ?

greetz
Pega

P.S.: Wie bekäme ich es sinnvoller hin das ich wenn mehrere ID's betroffen sind für jede ID nen Tabelleneintrag mache. Kann mir das so schwer vorstellen da dann ja jeder Eintrag obwohl es dabei um das selbe geht eine andere ID hätte oder ? würd mich aber dennoch sehr interessieren, denn inzwischen merke ich das es wie ich es mache ziemlich kompliziert zu sein scheint
  Mit Zitat antworten
Alt 07.06.2004, 15:58  
Gast
 
Beiträge: n/a
Standard

Vielleicht so?

Code:
$bedingung = "WHERE users = `bla`";
foreach($array as $elem){
   $bedingung .= " OR users = `$elem`";
}
$query = "SELECT * FROM users $bedingung";
$rs1 = mysql_query($query);
Eventuell halt noch die Bezeichnungen anpassen...

KMAssS
  Mit Zitat antworten
Alt 07.06.2004, 17:28  
Gast
 
Beiträge: n/a
Standard

hmmm

was ich daran nur nicht wüßte ist was ich als Abfrage einsetzen sollte, also für das `bla`
Würde ja hinschreiben WHERE id='$id'
das $id hier sind die id's aus dem Array welches ich in der DB abgelegt habe, sprich die mehreren pro Tabellenfeld.

Aber ich kann ja nicht etwas als Variable einsetzen, was ich nach der Abfrage erst errechne bzw erstelle oder ?
vllt denke ich da jetzt auch einfach falsch :wink:

könnt auch sein das ich mir durch diesen komplizierten Array Datenbankeintrag das alles ein wenig kompliziert mache

greetz
Pega
  Mit Zitat antworten
Antwort


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
Tabelle in Textfelder auslesen, ändern und wieder schreiben thron PHP Tipps 2008 10 22.02.2008 13:12
Mehrere Werte in einer Zelle auslesen GSJLink Datenbanken 8 10.01.2008 20:50
Auslesen Spalte + Andere Tabelle andrew22 PHP Tipps 2006 2 16.06.2006 10:51
[Erledigt] gelöst: Tabelle auslesen -> Gleiche Einträge nur 1 Mal Datenbanken 3 31.03.2006 01:44
[Erledigt] werte aus mehreren tabellen auslesen Datenbanken 5 18.09.2005 13:45
Werte für Dropdown aus Tabelle einlesen PHP Tipps 2005-2 0 05.08.2005 12:19
Werte für Dropdown aus Tabelle einlesen PHP Tipps 2005-2 0 05.08.2005 12:17
Werte eines Arrays verändern, nur mit array_walk/map? PHP Tipps 2005 3 17.04.2005 16:00
2 Arrays vergleichen und unterschiede auslesen PHP Tipps 2005 6 25.02.2005 09:34
Tabelle auslesen Datenbanken 6 06.01.2005 13:42
Auslesen mySQL tabelle und ausgabe als html Calli PHP Tipps 2004-2 3 21.12.2004 16:51
jede 2. Zeile aus MySQL Tabelle auslesen PHP Tipps 2004-2 4 09.11.2004 14:25
[Erledigt] Tabelle auf einer Seite auslesen und in meiner Seite wiederg PHP Tipps 2004 2 14.07.2004 08:46
Werte eines Arrays in eine MySQL schreiben PHP Tipps 2004 2 28.06.2004 13:32
HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php table2array, tabelle array einlesen php, array einzeln auslesen php, php tabelle auslesen foreach, php array einzeln auslesen, aus der user tabele in der datenbank was auslesen, werte aus tabelle in array einlesen, html tabelle auslesen in array, php \array aus tabelle\ auslesen datenbank, aus foreach einen bestimmten wert auslesen, daten aus tabelle einzeln auslesen php, php foreach array tabelle, php table 2 array, php tabelle in array einlesen andere seite, werte aus einer tabelle auslesen php, mehrere array tabellen php, http://www.php.de/php-fortgeschrittene/2266-erledigt-werte-eines-arrays-aus-tabelle-auslesen.html, array wert un spaltenname auslesen, werte von mysql in array tabelle aulesen, auslesen datenbank php foreach

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:34 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.