php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.08.2008, 15:48  
Erfahrener Benutzer
 
Benutzerbild von Toby
 
Registriert seit: 26.09.2007
Beiträge: 117
PHP-Kenntnisse:
Anfänger
Toby befindet sich auf einem aufstrebenden Ast
Toby eine Nachricht über MSN schicken
Standard Daten aus Mysql Tabelle über Arrays in Variabeln schreiben

Hallo zusammen!

Wie der lange Titel schon sagt möchte ich Daten aus einer Mysql Tabelle erst in einen Array schreiben und danach diese über eine Variable einzeln einfach ausgeben.

Eigentlich klingt das ganz einfach... Doch irgendwie krieg ichs nicht ganz hin.

Hier mein Code:

PHP-Code:
/**
 * lang vars are variables which contains all mysql data that are needed in the language files
 */

$get_lang_vars        "SELECT setting, value FROM upload_settings ORDER BY setting ASC";
$query_lang_vars    mysql_query($get_lang_vars) or die(mysql_error());
//$res_lang_vars    = mysql_fetch_assoc($query_lang_vars); // Why doesn't that work??


$x 1;

while (
$row_lang_vars mysql_fetch_assoc($query_lang_vars)) {

    
//var_dump($row_lang_vars);
    //echo "<br />\n";
    
    
sort($row_lang_vars);
    
    
//$array_lang_vars[$x] = $row_lang_vars;    // Schreibe momentane Daten vom Array $row_lang_vars in den Array $array_lang_vars
    
$array_lang_vars[$row_lang_vars[1]] = $row_lang_vars[0];
    
$x++;                                    // Erhöhre $x um 1, damit auch die anderen Arrays in den Array $array_lang_vars geschrieben werden
}
    
//echo $array_lang_vars[1]["value"];    // Ohne Sort
//echo $array_lang_vars[1][1];    // Bei Sort -->  [1] steht für den Eintrag, [1] steht für den Value


echo "<pre>";
    
var_dump($array_lang_vars);
echo 
"</pre>";

// echo $array_lang_vars["lang"]; 
Einige Kommentare sind andere Tests, die ich noch versucht habe, die aber auch nicht so richtig funktioniert haben.

Nun schaffe ich mit diesem Code die folgende Ausgabe:

Code:
array(5) {
  ["false"]=>
  string(17) "best_pic_activate"
  ["best_pic_min_pic"]=>
  string(1) "4"
  ["lang"]=>
  string(2) "de"
  ["max_file_size"]=>
  string(6) "102400"
  ["max_name_length"]=>
  string(2) "40"
}
Komischerweise ist hierbei der erste Eintrag verkehrt herum drin, was in der DB nicht so ist!
Liegt das vielleicht am sort()? Wenn ich dieses jedoch weglase geht es nicht...

Kann mir jemand helfen das gut (korrekt) und einfach zu lösen...

Dankeschön
Gruss Toby
__________________
hofoa.ch
----------------------------
Toby ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 21.08.2008, 16:01  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.034
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Toby Beitrag anzeigen
Liegt das vielleicht am sort()?
Natürlich liegt es am sort(), wozu soll das denn gut sein, um setting und value zu vertauschen?
Zitat:
Zitat von Toby Beitrag anzeigen
Wenn ich dieses jedoch weglase geht es nicht...
Sehr präzise Fehlerbeschreibung

Vor allem aber, was willst du mit diesem Script überhaupt erreichen, das du aus der Datenbank zuerst vor der Ausgabe so einen Array füllen musst?
__________________
Gruss
L
lazydog ist offline  
Alt 21.08.2008, 16:09  
Erfahrener Benutzer
 
Registriert seit: 20.08.2008
Beiträge: 119
sharp befindet sich auf einem aufstrebenden Ast
Standard

Dein Pro ist schon ma das du mysql_fetch_assoc() verwendest was dir an assoziatives Array zurück gibt.
Daher existier bei dir keine Variable
$row_lang_vars[1]und $row_lang_vars[0]
sonder nur
$row_lang_vars['setting'] und $row_lang_vars['value']
$array_lang_vars[$row_lang_vars[1]] = $row_lang_vars[0]; ist schon richtig wenn du mysql_fetch_array() verwendest.

Und ich versteh das richtig das
["false"]=> string(17) "best_pic_activate" vertauscht ist? Ich verstehe auch nicht wozu du das sort() unbedingt benötigst da du die Daten ja in der Form erhälst:
Settings | Value
best_pic_activate | false
best_pic_min_pic | 4
...

*edit*
Mist war zu langsam

Geändert von sharp (21.08.2008 um 16:11 Uhr).
sharp ist offline  
Alt 21.08.2008, 18:55  
Erfahrener Benutzer
 
Benutzerbild von Toby
 
Registriert seit: 26.09.2007
Beiträge: 117
PHP-Kenntnisse:
Anfänger
Toby befindet sich auf einem aufstrebenden Ast
Toby eine Nachricht über MSN schicken
Standard

Danke.. irgendwie war mein Code einwenig durcheinander... ich verstehe auch den unterschied von mysql_fetch_assoc und mysql_fetch_array noch nicht ganz...

Jetzt siehts so aus:

PHP-Code:
$x 1;

while (
$row_lang_vars mysql_fetch_assoc($query_lang_vars)) {

    
$array_lang_vars[$row_lang_vars["setting"]] = $row_lang_vars["value"];
    
$x++;                                    // Erhöhre $x um 1, damit auch die anderen Arrays in den Array $array_lang_vars geschrieben werden

Und das funktioniert auch so.
Ist das jetzt richtig oder sollte ich da noch was ändern?

Möchte ja auch was dabei lernen und momentan versteh ichs noch nicht so ganz >.<

Danke
Gruss Toby
__________________
hofoa.ch
----------------------------
Toby ist offline  
Alt 21.08.2008, 21:31  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.256
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

$x ist wohl Geschichte...
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 21.08.2008, 22:19  
Erfahrener Benutzer
 
Registriert seit: 20.08.2008
Beiträge: 119
sharp befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Toby Beitrag anzeigen
Danke.. irgendwie war mein Code einwenig durcheinander... ich verstehe auch den unterschied von mysql_fetch_assoc und mysql_fetch_array noch nicht ganz...
Dan schau dir ma die Links in meinem Post an.
sharp ist offline  
Alt 22.08.2008, 08:40  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.034
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von sharp Beitrag anzeigen
$row_lang_vars[0] ist schon richtig wenn du mysql_fetch_array()verwendest.
mysql_fetch_array() ohne den Ergebnistyp-Parameter sollte man eigentlich überhaupt nicht verwenden, weil dann alle Resultate doppelt geliefert werden. Deshalb entweder mysql_fetch_assoc() (= mysql_fetch_array($res, MYSQL_ASSOC) ) für assozative Arrays oder mysql_fetch_row() (= mysql_fetch_array($res, MYSQL_NUM) ) für nummerische Arrays.
__________________
Gruss
L

Geändert von lazydog (22.08.2008 um 08:46 Uhr).
lazydog ist offline  
Alt 22.08.2008, 09:48  
Erfahrener Benutzer
 
Registriert seit: 20.08.2008
Beiträge: 119
sharp befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von lazydog Beitrag anzeigen
mysql_fetch_array() ohne den Ergebnistyp-Parameter sollte man eigentlich überhaupt nicht verwenden, weil dann alle Resultate doppelt geliefert werden. Deshalb entweder mysql_fetch_assoc() (= mysql_fetch_array($res, MYSQL_ASSOC) ) für assozative Arrays oder mysql_fetch_row() (= mysql_fetch_array($res, MYSQL_NUM) ) für nummerische Arrays.
Ich hab nie gesagt das die Funktion so zu benutzen sie ich habe sie nur erwähnt und verlinkt woraus das mit dem Ergebnistypen hervorgeht.

Zitat:
Zitat von php.net
Das optionale zweite Argument Ergebnistyp in mysql_fetch_array() ist eine Konstante und kann die folgenden Werte annehmen: MYSQL_ASSOC, MYSQL_NUM und MYSQL_BOTH. Diese Eigenschaft steht seit PHP 3.0.7 zur Verfügung. MYSQL_BOTH ist der Standard für diesen Paramater.

Verwenden Sie MYSQL_BOTH, erhalten Sie ein Array mit assoziativen und numerischen Indizes. Bei MYSQL_ASSOC erhalten Sie nur asoziative Indizes (genau wie bei mysql_fetch_assoc()). Verwenden Sie MYSQL_NUM erhalten Sie nur numerische Indizes (genau wie bei mysql_fetch_row()).
Und nicht zu vergessen die drei Beispiele.
sharp ist offline  
Alt 22.08.2008, 10:01  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.034
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von sharp Beitrag anzeigen
Ich hab nie gesagt das die Funktion so zu benutzen
Das habe ich auch nicht gesagt, und falls dieser Eindruck entstanden sein sollte, war das nicht beabsichtigt. Ich wollte nur wieder mal darauf hinweisen, weil man das hier immer noch sehr häufig sieht.
__________________
Gruss
L
lazydog 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
Berechnung über mehrere Abfragen aus mysql Slappi PHP Tipps 2008 2 18.12.2007 14:22
Mehrere Arrays unterschiedlicher Größe kombinieren querfisch PHP Tipps 2007 9 31.03.2007 21:34
Link in eine MySQL Tabelle über PHP einbinden joda100 PHP Tipps 2007 3 05.03.2007 16:54
Mysql daten wieder hochladen Matthiasnet Datenbanken 0 14.08.2006 15:25
Serverumzug - Problem mit MySQL Daten [GE]ReeN Datenbanken 6 28.03.2006 17:02
MySQL Daten in sichtbarer Tabelle ausgeben PHP Tipps 2006 6 14.03.2006 14:33
[Erledigt] MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
Daten über Formular eingeben und in Tabelle speichern. WIE? PHP Tipps 2006 20 10.02.2006 16:04
[Erledigt] Kein Zugriff über ODBC mit der IP-Adresse auf MySql DB Datenbanken 4 09.02.2006 11:04
[Erledigt] Problem mit dem Füllen einer Tabelle über Formular PHP Tipps 2006 18 10.01.2006 12:51
Problem mit mySQL Datenbanken 7 27.09.2005 12:06
mysql abfrage über 4 Tabelle - bis 3 geht, bei der 4. habert Datenbanken 2 08.09.2005 11:59
Grafik über mehrere Zellen einer Tabelle neodrei HTML, Usability und Barrierefreiheit 9 18.08.2005 19:26
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
[Erledigt] 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 tabelle in array, tabelle in array php, php tabelle als array, php tabelle array, tabelle in array schreiben php, php tabelle in array laden, daten aus mysql in variablen schreiben, mysql_fetch_assoc mysql_fetch_array unterschied, php tabelle in array schreiben, mysql daten in array speichern, php daten aus tabelle in array, mysql_fetch_array in array speichern daten, mysql array variable, mysql abfrage in array schreiben, php tabellen in array, mysql datensätze in array speicher, php table in array, tabellenfelder in array schreiben mit php, tabellen in arrays php, php array tabelle

Alle Zeitangaben in WEZ +1. Es ist jetzt 22:09 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