php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.03.2007, 22:44  
Erfahrener Benutzer
 
Registriert seit: 09.02.2005
Beiträge: 256
Matthiasnet
Standard Arraywerte in DB Tabelle speichern

Hallo,

wie oben beschrieben möchte ich gerne Arraywerte in einer DB gespeichert haben, nur bin ich da leider mehr oder weniegr überfordert

Hier ein AUssschnitt aus meinem Code:
PHP-Code:
 //....  
function insert ($spalten,$dazugehoerige_werte) {
           
$sqlab "
        INSERT INTO $this->tabelle
        ($spalten)
        VALUES
        ('$dazugehoerige_werte')"
;
         if (
mysql_query($sqlab)) {
            echo 
"Datensatz wurde erfolgreich hinzugefügt.";
            } 
         else {
            echo 
"Datensatz konnte nicht hinzugefügt werden.";
            }
        }

//....

$mysql->insert(for ($i='1'$i <= count($spalte); $i++){$spalte[$i];},for ($i='1'$i <= count($spalte); $i++){$_POST[$spalte[$i]];});
// Ist wahrscheinlich komplett falsch, jedoch weiß ich nicht wie ich da ran gehen soll, damit die Werte angegeben werden 
Wäre Dankbar für Hilfe


Grüße

Matthiasnet
Matthiasnet ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 15.03.2007, 23:06  
Erfahrener Benutzer
 
Registriert seit: 16.02.2006
Beiträge: 303
tinchen
Standard

Kannst du mal ein Beispiel geben, die die Daten aussehen und wie sie später in
der Datenbank gespeichert werden sollen?
tinchen ist offline  
Alt 15.03.2007, 23:16  
Erfahrener Benutzer
 
Registriert seit: 09.02.2005
Beiträge: 256
Matthiasnet
Standard

Ja klar, z.B. steht im Array spalte folgendes drin:
spalte[1] = "name";
spalte[2] = "hobbys";
spalte[3] = "essen";
spalte[4] = "trinken";
Die oben geannten Daten gibt das hier aus:
for ($i='1'; $i <= count($spalte); $i++){echo $spalte[$i];}

Und for ($i='1'; $i <= count($spalte); $i++){$_POST[$spalte[$i]];} gibt dann aus:
$_POST[spalte[1]] = "fred";
$_POST[spalte[2]] = "proggen";
$_POST[spalte[3]] = "fleisch";
$_POST[spalte[4]] = "cola";

Also im Grunde sollten nur die oben Angegebenen Daten des Arrays in die DB eingetragen werden udn gelcihzeitig auch die Spalten auswählen.
So ist es evt. leichter das ganez nachzuvollziehen:

Code:
INSERT INTO tabellenname
		(alle_werte_von_$spalte)
		VALUES
		('alle_werte_von_$_POST[spalte]')
Matthiasnet ist offline  
Alt 15.03.2007, 23:19  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

puh was für spaghetti.

arrays kannst du gut mit zugehörigen funktionen verwenden:
-array_keys () liefert z.b. die schlüssel eines assoziativen arrays (das könnten bspw. die spaltenbezeichner sein)
-array_values () entprechend die werte
-implode () vereint array elemente zu einem durch ein gegebenes trennzeichen (z.b. ein komma) verbundenen string
-bleibt die aufgabe, die string werte für deine db mit hochkommata zu umschließen und evl. noch die spaltennamen mit backticks.

edit:
zu langsam...
for () echo kannst du nicht als parameter verwenden, entweder zu machst vorher oder in der funktion einen string aus den arrays.
nikosch ist gerade online  
Alt 15.03.2007, 23:27  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

weitere anmerkungen

-warum setzt du $_POST?
-$_POST bietet bereits alles was du brauchst: einen Schlüssel als Spaltenbezeichner, einen Wert als DB Feld Wert.
-du musst $_POST vorher noch mit einer Liste vorgegebener DB Feldbezeichner abgleichen. Sonst hast du andere Form Elemente auch in der Query (Buttons und dergleichen)
-Die Werte aus $_POST dürfen nicht unvalidiert bzw. nicht ohne Escapen in die Datenbank geschrieben werden. Thema SQL Injection.
nikosch ist gerade online  
Alt 16.03.2007, 18:40  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard Re: Arraywerte in DB Tabelle speichern

Zitat:
Zitat von Matthiasnet
PHP-Code:
 //....  
function insert ($spalten,$dazugehoerige_werte) {
           
$sqlab "
        INSERT INTO $this->tabelle
        ($spalten)
        VALUES
        ('$dazugehoerige_werte')"
;
        }

//....

$mysql->insert(for ($i='1'$i <= count($spalte); $i++){$spalte[$i];},for ($i='1'$i <= count($spalte); $i++){$_POST[$spalte[$i]];});
// Ist wahrscheinlich komplett falsch, jedoch weiß ich nicht wie ich da ran gehen soll, damit die Werte angegeben werden 
Wie Du schon richtig schreibst, ist das da unten natürlich kompletter Schrott. Das hat Dir sicher auch Dein PHP-Parser schon lange gesagt.
(Schließlich ist es selbstverständlich, vor dem Posten hier die Warnungen anzusehen, die mit error_reporting(E_ALL) ausgegeben werden ^^ )

Du solltest mal in den Grundlagen-Tutorials über Kontrollstrukturen nachlesen.
Eine for-Schleife kann natürlich nie ein Parameter sein.
Funktionen brauchen Werte als Parameter, keinen Code.

Welchen Wert soll for() denn haben, den Du übergeben könntest?

In der Schleife kannst Du höchstens die Parameter für die Funktion vorbereiten oder die Funktion mehrfach aufrufen.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 16.03.2007, 19:44  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Hallo,
schreib dir einfach eine Date_Manager-Klasse:
PHP-Code:
<?php
class Data_Manager_Mysql
{
    
//..
    
function save($sTable$aData)
    {
        
$sQuery sprintf("INSERT INTO %s (%s) VALUES (%s)",
                      
$this->quoteKey($sTable),
                      
implode(', '$this->quoteKeys(array_keys($aData))),
                      
implode(', '$this->quoteValues(array_values($aData))));
        
//..
    
}
  
    function 
quoteKeys($aKeys)
    {
        for(
$i 0$x count($aKeys); $i $x; ++$i) {
            
$aKeys[$i] = $this->quoteKey($aKeys[$i]);
        }
        return 
$aKeys;
    }
  
    function 
quoteKey($sKey)
    {
        return 
'`' str_replace('`'''$sKey) . '`';
    }

    function 
quoteValues($aValues)
    {
        
//..
    
}

    
//..
}
?>
Zergling-new 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
Ergebnisse einer Abfrage in Tabelle speichern PsychoEagle Datenbanken 0 21.09.2006 15:59
Variable in Tabelle speichern Unkaputtbar2 Datenbanken 5 21.07.2006 13:00
Daten über Formular eingeben und in Tabelle speichern. WIE? PHP Tipps 2006 20 10.02.2006 16:04
Problem mit Anzeige einer Tabelle mit dem Firefox? HTML, Usability und Barrierefreiheit 8 28.11.2005 15:08
[Erledigt] Tabelle aktualisieren Datenbanken 3 23.11.2005 09:54
werte einer tabelle in andere tabelle speichern high_scorer Datenbanken 3 30.09.2005 16:28
[Erledigt] Problem mit mySQL Datenbanken 7 27.09.2005 12:06
[Erledigt] mysql abfrage über 4 Tabelle - bis 3 geht, bei der 4. habert Datenbanken 2 08.09.2005 11:59
[Erledigt] Drop Down auswahl in tabelle speichern PHP Tipps 2005-2 6 10.08.2005 16:36
SQL Befehle in einer Tabelle speichern (=> Log/History) PHP Tipps 2005-2 14 29.06.2005 12:07
[Erledigt] speichern in Tabelle Datenbanken 4 10.06.2005 22:54
Werte in Tabelle änder und in DB speichern PHP Tipps 2004-2 5 17.12.2004 22:11
Formular in Mysql Datenbank speichern Anuschka Datenbanken 1 15.08.2004 02:55
[Erledigt] In MySQL Tabelle speichern Datenbanken 7 12.08.2004 16:28
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 arraywerte in mysql datenbank speichern, array werte in mysql datenbank speichern php, array in datensatz speichern, array werte insert, php, arraywerte einzeln in datenbank speichern, array als ein wert in tabelle speichern, array als tabelle speichern php, array als string in tabelle speichern, php arraywerte in datenbank speichern, html tabelle speichern, arraywerte in mysql speichern, php array in db speichern schlüssel spaltenname hinzufügen, assoziatives array in datenbank speichern, http://www.php.de/php-tipps-2007/43699-arraywerte-db-tabelle-speichern.html, arraywert in mysql query, php werte aus schleife in tabelle speichern, arraywerte in db abspeichern mit schleife

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