php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.07.2005, 09:17  
Erfahrener Benutzer
 
Registriert seit: 22.01.2005
Beiträge: 606
Connar befindet sich auf einem aufstrebenden Ast
Standard INSERT INTO funktioniert nicht

Hi,
in meinem Problem möchte ich Daten aus einer MySQL-Datenbank abrufen und wieder eintragen. Jedoch funktioniert das irgendwie nicht so ganz, da der INSERT INTO Befehl nur leere Felder hinterlässt.

PHP-Code:
<?php
  $updates_id 
= array();
  
$updates_version = array();
  
$updates_datum = array();
  
$updates_neu = array();
  
$updates_aenderung = array();
  
$index 0;
  
// den Index verwende ich, um sicher zu gehen, dass die Werte auch an der gleichen Stelle des Arrays liegen.
  
$sql "SELECT * FROM updates";
  
$result mysql_query($sql);
  while(
$row mysql_fetch_array($result))
  {
    
$updates_id[$index] = $row["ID"];
    
$updates_version[$index] = $row["Version"];
    
$updates_datum[$index] = $row["Datum"];
    
$updates_neu[$index] = $row["Neu"];
    
$updates_aenderung[$index] = $row["Aenderung"];
    
$index++;
  }
  
mysql_query("DROP TABLE updates");
  
$ct_updates "CREATE TABLE IF NOT EXISTS updates
    (id INT(3) AUTO_INCREMENT PRIMARY KEY,
    version VARCHAR(8 ),
    datum TIMESTAMP,
    neu TEXT,
    aenderung TEXT)"
;
  
mysql_query($ct_updates);

  for(
$i 0$i count($updates_id); $i++)
  {
    
// das schreiben in neue Variablen hab ich gemacht, weil ich gedacht hab, dass er den SQL-Befehl vielleicht nicht mit Arrays ausfüllen will .. daran liegt es aber nicht.
    
$id $updates_id[$i];
    
$version $updates_version[$i];
    
$datum $updates_datum[$i];
    
$neu $updates_neu[$i];
    
$aenderung $updates_aenderung[$i];
    
$sql "INSERT INTO updates (id, version, datum, neu, aenderung) VALUES ('$id', '$version', '$datum', '$neu', '$aenderung')";
    
mysql_query($sql);
    
// In den Tabellen stehen dann keine Werte
    // Ich hab den SQL-Befehl auch mal so ausgegeben und da stimmt er. Was mach ich falsch?
  
}
?>

Ich hoffe jemand sieht den Fehler.

Vielen Dank.


MFG Connar
Connar ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 02.07.2005, 10:44  
Gast
 
Beiträge: n/a
Standard

Füge in dem folgenden Teil
die mit /**/ markierten Zeilen ein:
Code:
  for($i = 0; $i < count($updates_id); $i++)
  {
    // das schreiben in neue Variablen hab ich gemacht, weil ich gedacht hab, dass er den SQL-Befehl vielleicht nicht mit Arrays ausfüllen will .. daran liegt es aber nicht.
    $id = $updates_id[$i];
    $version = $updates_version[$i];
    $datum = $updates_datum[$i];
    $neu = $updates_neu[$i];
    $aenderung = $updates_aenderung[$i];
    $sql = "INSERT INTO updates (id, version, datum, neu, aenderung) VALUES ('$id', '$version', '$datum', '$neu', '$aenderung')";
    mysql_query($sql);
    // In den Tabellen stehen dann keine Werte
    // Ich hab den SQL-Befehl auch mal so ausgegeben und da stimmt er. Was mach ich falsch?

    /**/ echo   "<HR>". mysql_error() ;
    /**/ echo   "
". $sql;
    /**/ printf("
 Datensätze eingefügt: ", mysql_affected_rows());
  }
mfG
~dilemma~
 
Alt 02.07.2005, 10:52  
Erfahrener Benutzer
 
Registriert seit: 22.01.2005
Beiträge: 606
Connar befindet sich auf einem aufstrebenden Ast
Standard

Ja, da zeigt er mir die richtigen SQL-Befehle an, aber in der MySQL-Datenbank sind die Felder immernoch leer.
Ein Fehler wird auch nicht angezeigt.


MFG Connar
Connar ist offline  
Alt 02.07.2005, 11:01  
Gast
 
Beiträge: n/a
Standard

1) Nachfrage:
Was erhälst du für /**/ printf("
Datensätze eingefügt: ", mysql_affected_rows()); ???

2) Vorschlag:
Lass die Zuweisung für die `ìd` doch mal weg!
Weil diese als 'auto...' definiert ist!
Also so:

$sql = "INSERT INTO updates (version, datum, neu, aenderung) VALUES ('$version', '$datum', '$neu', '$aenderung')";

~dilemma~
 
Alt 02.07.2005, 11:06  
Erfahrener Benutzer
 
Registriert seit: 22.01.2005
Beiträge: 606
Connar befindet sich auf einem aufstrebenden Ast
Standard

1. Datensätze eingefügt: Die Daten wurden erfolgreich in die Tabellen geschrieben.

2. Der trägt die Daten trotzdem nicht ein. Muss also an einem der anderen Werte liegen. Jedoch finde ich das seltsam, da die SQL-Befehle alle funktionieren, wenn ich sie ausgefüllt (kopieren und mysql_query(..)) ausführe.


MFG Connar
Connar ist offline  
Alt 02.07.2005, 11:23  
Gast
 
Beiträge: n/a
Standard

sorry, da war ein Fehler:

ändere diese Zeile:
/**/ printf("
Datensätze eingefügt: ", mysql_affected_rows());

so: /**/ echo "
Es wurden --> ". mysql_affected_rows() ." <--- Datensätze eingefügt
";

Und zeige dann doch bitte ALLE ECHOes !!!

~dilemma~
PS:
Ich will jetzt genau wissen, wie du jetzt alles geänderst hast,
und was ---> mysql_affected_rows() . <--- liefert!!!
 
Alt 02.07.2005, 12:02  
Erfahrener Benutzer
 
Registriert seit: 22.01.2005
Beiträge: 606
Connar befindet sich auf einem aufstrebenden Ast
Standard

Also der Script-Ausschnitt sieht mittlerweile so aus:

PHP-Code:
<?php
  
for($i 0$i count($updates_id); $i++)
  {
    
$id $updates_id[$i];
    
$version $updates_version[$i];
    
$datum $updates_datum[$i];
    
$neu $updates_neu[$i];
    
$aenderung $updates_aenderung[$i];
    
$sql "INSERT INTO updates (version, datum, neu, aenderung) VALUES ('$version', '$datum', '$neu', '$aenderung')";
    
mysql_query($sql);
    
/**/ echo   "<HR>"mysql_error() ; 
    
/**/ echo   "
"
$sql
    
/**/ echo "
 Es wurden --> "
mysql_affected_rows() ." <--- Datensätze eingefügt 
"

  }
?>

mysql_affected_rows() liefer
Code:
Es wurden --> 1 <--- Datensätze eingefügt
er wurde aber wieder nicht eingefügt, bzw. nur mit leeren Feldern.


MFG Connar
Connar ist offline  
Alt 02.07.2005, 12:06  
Gast
 
Beiträge: n/a
Standard

und die Zeile danach - die Ausgabe des sql-Statements - wie sieht die aus?
 
Alt 02.07.2005, 12:17  
Gast
 
Beiträge: n/a
Standard

Ich hatte dich um folgendes gebeten:

>>> Und zeige dann doch bitte ALLE ECHOes !!!

Du lieferst diese Antwort:

>>> mysql_affected_rows() liefer
>>> Code:
>>> Es wurden --> 1 <--- Datensätze eingefügt

>>> er wurde aber wieder nicht eingefügt, bzw. nur mit leeren Feldern.

Bitte poste doch auch das, was
-------------------------------------------------------------------> /**/ echo "
". $sql;
liefert!

~dilemma~
PS:
Und zeige auch einmal,
wie du anschließend die NEU_ERSTELLTE Tabelle abfragst!

PPS:
Gruß @ VolkerK

Ich habe heute Nachmittag leider keine Zeit mehr,
hier weiter zu helfen.
Vielleicht kannst du hier weitermachen?

Schönes Wochenende !
 
Alt 02.07.2005, 12:30  
Erfahrener Benutzer
 
Registriert seit: 22.01.2005
Beiträge: 606
Connar befindet sich auf einem aufstrebenden Ast
Standard

Ja, die $sql Zeile gibt unterschiedliches aus, aber immer den richtigen SQL-Befehl.

Bsp.:
Code:
INSERT INTO updates (version, datum, neu, aenderung) VALUES ('2,08.030', '2005-04-12 17:32:15', '- Kleine Verbesserungen.', '- Keine')

Die neu erstellte Tabelle frag ich mitm phpMyAdmin ab.
Da steht dann bei ID was .. is ja klar und beim Datum steht 0000-00-00 00:00:00.


MFG Connar
Connar 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
insert into funktioniert nicht mafra PHP Tipps 2008 10 08.03.2008 15:38
Self Join / Nested Join ? Ich hab ne Blockade... iangillan Datenbanken 11 06.01.2008 21:37
Pathfinding Algorithmus optimieren? (Algorith. von Dijkstra) Martin13 PHP Tipps 2007 19 04.09.2007 19:20
Verständnisprobleme bei Utf8 > Character Set > Collate erna Datenbanken 4 20.03.2007 14:08
Differenz zwischen 2 Zahlen duderino PHP Tipps 2006 19 10.08.2006 22:12
PRoblem mit Cookie bei PHPbb-Board PHP Tipps 2007 8 12.12.2005 20:56
INSERT INTO funktioniert nicht ganz PHP Tipps 2005-2 3 23.08.2005 17:05
mysql dump einspielen (ohne phpmyadmin) PHP Tipps 2005-2 6 18.06.2005 21:50
[Erledigt] fehler den ich noch nie gesehen habe Datenbanken 7 09.06.2005 14:29
dynamisches MENÜ aus db lesen.probleme mit SUBid !! PHP Tipps 2005 26 24.03.2005 18:53
[Erledigt] MySQL-DB gibt keine Daten zurück!!! Datenbanken 4 21.12.2004 21:00
dem verzweifeln nahe PHP Tipps 2004 26 24.10.2004 17:28
Zeile einfach überspringen bei Unique-Verletzung tapferesschneiderlein Datenbanken 6 03.09.2004 14:29
insert into funktioniert nicht PHP Tipps 2004 24 28.06.2004 09:04
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
sql insert into leere werte, sql feld bei insert überspringen, sql insert into select wertänderungen, insert into leere felder überspringen, sql insert into mit datenänderung, insert befehl mit leeren feldern, sql insert into id, insert into id, http://www.php.de/php-tipps-2005-2/25866-insert-into-funktioniert-nicht.html

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