SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 11.12.2003, 11:07:35
Benutzerbild von grisu
grisu grisu ist offline
Anfänger
 
Registriert seit: Jun 2003
Beiträge: 10
Tabellenspalten aus csv-Datei aktualisieren

Hallo Leute !

Also ich bin im Moment am Ende mit meinem Latein, vielleicht kann mir einer von euch helfen?

Ich möchte einzelne Felder einer Artikeltabelle in mysql aus einer csv-Datei aktualisieren.
Dabei steht nicht von vornherein fest, welche es sind. Mal die und mal die halt. Dafür hab ich auf der ersten php-Seite folgenden Code :

PHP-Code:
  if(isset($tabelle)){
    
$result mysql_query("SELECT * FROM $tabelle");
    
$menge  mysql_num_fields($result);

    print 
"<form action="dateiauswahl.php" method="GET">";

    for(
$y=0;$y<$menge;$y++){
        
$felds mysql_field_name($result,$y);

        print 
"
               <input type="
Checkbox" name="dbfeld[]" value="$y;$felds">$y - $felds</input><br>";

    }
    print 
"
          <input type="
Submit" name="wirklich" value="Felder aktualisieren">
          <input type="
Hidden" name="tabelle" value="$tabelle">
          </form>
          "
;
  } 

Soweit so gut, die Feldnamen bekomme ich wunderbar in den Array gelesen. Mein Problem hier ist,
dass ich ja auch den Feldindex brauche, also 1. Feld = 0 usw. und zwar nur für die Felder, die
ich auch wirklich im Formular auswähle. Füge ich ein hidden-Feld mit $y als Inhalt ein, gibt er
mir die gesamte Nummerierung. Ich hab also mal testweise $y mal mit in den value von $dbfeld
packt.
___________________________________________________________________

Auf der nächsten Seite wähle ich die csv-datei aus :
Code:
<form enctype="multipart/form-data" action="edit_ergebnis.php" method="POST">

<input type="hidden" name="MAX_FILE_SIZE" value="500000">
(...)
        <input type="file" class="Feld" name="userfile">
(...)
    <td colspan="2">
    <?php
        foreach($dbfeld as $wert){
         print "<input type="Hidden" name="dbfeld[]" value="$wert"> ";
        }
    ?>
        <input type="Hidden" name="tabelle" value="<?php print $tabelle;?>">
        <input type="Submit" class="Button" name="aendern" value="Daten aktualisieren">
(...)
Also hier läuft alles wunderbar... zum Glück
______________________________________________________________________

Und jetzt kommt das Sorgenkind :

Als erstes wollte ich den Array von $dbfeld auflösen um den Index vom Feldnamen zu
trennen :
Code:
   foreach($dbfeld as $wert){
      $neu = explode(";",$wert);
          foreach($neu as $feld){
             $nr    = $feld[0];
             $feldn = $feld[1];
             print "Nummer = $nr und Feldname = $feldn<br>";
          }
   }
und das ist das Ergebnis von print in meinem Browser :
Code:
Nummer = 0 und Feldname = 
Nummer = A und Feldname = r
Nummer = 1 und Feldname = 
Nummer = A und Feldname = n
Nummer = 2 und Feldname = 
Nummer = X und Feldname = K
Nummer = 3 und Feldname = 
Nummer = X und Feldname = K
Nummer = 4 und Feldname = 
Nummer = X und Feldname = K
Also völliger Unsinn und ich weiss nicht woher er kommt. Für den richtigen Query
brauch ich aber doch den Index um die korrekten Spalten in der csv-datei auszuwählen
oder ?

Vielleicht schüttelt ihr jetzt den Kopf und sagt das geht doch vieeeeeeeel
einfacher...

Vielen Dank schon im voraus für eure Hilfe, jeder Lösungsansatz ist mir willkommen...
__________________

grüsse grisu

Alles ist "Try and error"
Mit Zitat antworten
  #2  
Alt 11.12.2003, 11:52:10
Benutzerbild von Nev
Nev Nev ist offline
Member
 
Registriert seit: Feb 2002
Ort: Österreich / Wien
Alter: 44
Beiträge: 992
Hi grisu

ich weiß jetzt ned ob ich richtig liege, daher fasse ich das ganze mal zusammen, so wie ich das verstehe.

Also:
Du hast eine Table
den Inhalt dieser willst du in einem Formular ausgeben.
Durch die Auswahl von Feldern, legst du fest welche Daten-FELDER exportiert werden sollen.

Nach dem Abschicken des Formulars, soll eine CSV-Datei erstellt werden.


Frage handelt es sich um die gesamten Felder des Tables
oder wählst du nur die bestimmten Datensätze aus??

PS:
Ich habe deinen Beitrag geändert, damit es mit der Formatierung passt
__________________
Cu
Nev the XxX (Sven-Marcus Maderbacher)

Master of www.Burnworld.de
www.Nev-hilft.de die Seite für den Coder
Mit Zitat antworten
  #3  
Alt 11.12.2003, 12:28:56
Benutzerbild von grisu
grisu grisu ist offline
Anfänger
 
Registriert seit: Jun 2003
Beiträge: 10
Hallo Nev !

Danke für die schnelle Antwort und die Formatierung :-), ich weiss leider nicht wie das geht..

Also :

1. Ich habe ein mysql-Tabelle mit 24 Feldern
2. Ich will nicht den Inhalt dieser Felder ausgeben, sondern die Feldnamen, damit ich sie in einem Formular mittels Checkbox auswählen kann.
3. Ich will diese Felder nicht EXPORTIEREN, sondern die Daten mit den Daten aus einer BESTEHENDEN csv-Datei aktualisieren.

z.B. im Feld "Text_D" steht "Dies ist ein Text" und diesen Inhalt möchte ich durch den Inhalt von Spalte 1 der csv-Datei "Dies ist der neue Text" ersetzen. Das soll er auch nur machen, wenn die vorhandene ID, in meinem Fall die Artikelnummer gleich ist.

Es geht also nicht um komplette Datensätze, sondern nur um einzelne Felder der Tabelle. Der Rest soll unberührt bleiben!! Im Formular lege ich nur fest, welche Felder aktualisiert werden sollen
__________________

grüsse grisu

Alles ist "Try and error"
Mit Zitat antworten
  #4  
Alt 12.12.2003, 11:46:26
Benutzerbild von Nev
Nev Nev ist offline
Member
 
Registriert seit: Feb 2002
Ort: Österreich / Wien
Alter: 44
Beiträge: 992
Hi Grisu

ich schreib im laufe des Tages ein kleines Script das das kann.

Aber sollte ned so wild sein.
__________________
Cu
Nev the XxX (Sven-Marcus Maderbacher)

Master of www.Burnworld.de
www.Nev-hilft.de die Seite für den Coder
Mit Zitat antworten
  #5  
Alt 15.12.2003, 14:36:42
Benutzerbild von Nev
Nev Nev ist offline
Member
 
Registriert seit: Feb 2002
Ort: Österreich / Wien
Alter: 44
Beiträge: 992
Hi @gain

Ich hab ned auf dich vergessen.

ich hoffe ich kann es heute fertig machen
__________________
Cu
Nev the XxX (Sven-Marcus Maderbacher)

Master of www.Burnworld.de
www.Nev-hilft.de die Seite für den Coder
Mit Zitat antworten
  #6  
Alt 18.12.2003, 10:55:52
Benutzerbild von grisu
grisu grisu ist offline
Anfänger
 
Registriert seit: Jun 2003
Beiträge: 10
Hallo Nev !

Vielen lieben Dank an dich, es ist wirklich eine tricky Sache, wenn auch du daran knabberst :-)) Getreu meinem Wahlspruch habe ich es aber auch inzwischen selber lösen können *jubelundstolzseinaufmich* :-)). Der Knackpunkt lag darin, daß ich eine foreach-Schleife zuviel hatte, um den Array für den Index und Feldnamen auszulesen. Meine Ergebnisseite sieht jetzt so aus und funktioniert supergut ! :

PHP-Code:
<?php
   
include("header.php");

   
$aendern "";
   
$db      $userfile;         
   
$fp      fopen($db,"r");      // öffnen der Datei

      
while(!feof($fp)){
        
$zeile   fgetcsv($fp,500000,";");      //auslesen der ersten Zeile
        
$aendern ="";

        foreach(
$dbfeld as $wert){        // auslesen des Arrays für die Feldnamen
          
$neu explode(";",$wert);
             
$nr      $neu[0];        // Indexnummer des Feldes
             
$feldn   $neu[1];        // Feldname

             
$inhalt  $zeile[$nr];        // Zeile der csv-Datei
             
$artik   $zeile[0];            // erste Spalte enthält immer die Artikelnummer


        
             
if($aendern==""){                    // zusammensetzen des Querys
               
$aendern $feldn."='".$inhalt."'";
             }else{
               
$aendern $aendern.",".$feldn."='".$inhalt."'";
             }

         }
             
$sql     "UPDATE $tabelle SET $aendern WHERE Artikelnummer='$artik'";
             
$getan   mysql_query($sql);
             print 
"$sql<br>";
      }
   
fclose($fp);
   print 
"Die Daten wurden eingefügt";


   include(
"footer.php");
?>
Nochmal vielen Dank, daß du dir auch Gedanken gemacht hast.. ich wünsche noch geruhsame Tage und feiert schön Weihnachten.
__________________

grüsse grisu

Alles ist "Try and error"
Mit Zitat antworten
  #7  
Alt 18.12.2003, 13:51:04
Benutzerbild von Nev
Nev Nev ist offline
Member
 
Registriert seit: Feb 2002
Ort: Österreich / Wien
Alter: 44
Beiträge: 992
Hi grisu

Wenn ich mir dein Script so anschaue dann hab ich eh einen Fehler dirn gehabt.

Ich habe es so verstanden, das du die CSV-Datei updaten wolltest.

Ich hab fast alles fertig gehabt, ausser der Update einer bestehenden Datei

(Themenverfehlung: 5 danke setzen)

Ich hänge mal meine an, vielleicht kannst es ja brauchen
(damit feststeht, das ich was gemacht habe)
Angehängte Dateien
Dateityp: txt index.txt (10,0 KB, 265x aufgerufen)
__________________
Cu
Nev the XxX (Sven-Marcus Maderbacher)

Master of www.Burnworld.de
www.Nev-hilft.de die Seite für den Coder
Mit Zitat antworten
  #8  
Alt 19.12.2003, 00:32:09
Benutzerbild von grisu
grisu grisu ist offline
Anfänger
 
Registriert seit: Jun 2003
Beiträge: 10
Hallo Nev

ich hätte niiiiiiiiiiiiiie angenommen, dass du nur untätig herumsitzt :-))

Zitat:
(Themenverfehlung: 5 danke setzen)
Eine 5 ist zu hart ! Ich gebe dir auf jedenfall ein doppelsternchen für deine Mühe :-))
Deinen Code werde ich mir am WE mal in Ruhe ansehen, vorher bekomme ich leider keine Zeit dazu.

Auf jeden Fall noch mal danke und frohe Weihnachten
__________________

grüsse grisu

Alles ist "Try and error"
Mit Zitat antworten
  #9  
Alt 19.12.2003, 00:39:10
Benutzerbild von Nev
Nev Nev ist offline
Member
 
Registriert seit: Feb 2002
Ort: Österreich / Wien
Alter: 44
Beiträge: 992
Nee, hab ich auch ned angenommen.

wenn du fragen hast, melde dich einfach.

Wie gesagt, habe es falsch verstanden.
__________________
Cu
Nev the XxX (Sven-Marcus Maderbacher)

Master of www.Burnworld.de
www.Nev-hilft.de die Seite für den Coder
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Fehler in Script das Inhalt einer .txt Datei (HTML Sourcecode) in Datei schreiben sol RookieXL2 PHP für Fortgeschrittene und Experten 2 08.06.2007 23:58:33
PHP soll selber eine .txt oder .dat file kreiren Limbi PHP Grundlagen 5 14.06.2006 18:45:20
Inhalt einer Datei ab einem Fixpunkt einlesen rkersting PHP für Fortgeschrittene und Experten 11 21.03.2005 12:52:47
geparste datei schreiben ingo PHP Grundlagen 1 29.12.2003 18:45:56
Datei x in Frame y laden / 2 Frames aktualisieren MarkusZ01 PHP für Fortgeschrittene und Experten 6 28.04.2003 19:16:21


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:34:52 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt