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 ::

Der CSS-Problemlöser

Der CSS-Problemlöser 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 > SELFPHP > PHP für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #21  
Alt 13.09.2007, 13:18:24
Luke85 Luke85 ist offline
Anfänger
 
Registriert seit: Aug 2007
Beiträge: 47
AW: DropDown Probleme

Habe mal folgendes geschrieben:

PHP-Code:
<?php
// Verbindungsdaten zur DB einbinden
include("db.inc");

$link=mysql_pconnect($dbserver$dbuser$dbpasswd);
    if (
$link == FALSE)
    {
        echo 
"<p><b>Leider kann keine Verbindung zur Datenbank hergestellt werden. Bitte
        versuchen Sie es später noch einmal.\n"
;
        echo 
"</BODY></HTML>\n"// HTML Dokument abschliessen
        
exit (); // PHP-Script beenden
    
}

// Datenbank auswaehlen
    
$dblink=mysql_select_db($dbname);
    if (
$dblink == FALSE)
    {
        echo 
"<p><b>Leider kann die Datenbank nicht geöffnet werden. Bitte
        versuchen Sie es später noch einmal.\n"
;
        echo 
"</BODY></HTML>\n"// HTML Dokument abschliessen
        
exit (); // PHP-Script beenden
    
}


$neuer_inhalt $_POST['werte'];

$query "Update test SET werte='$neuer_inhalt' WHERE 'Produktnummer'";

$reslut=mysql_query($query);
mysql_close;

print 
"<p>Das Produkt mit der Produktnummer <b>$neuer_inhalt</b> wurde geändert.<p>";
?>
Er gibt zwar die Message aus, aber in PHPmyAdmin ist keine Veränderung vorhanden.

Geändert von Luke85 (13.09.2007 um 13:57:50 Uhr)
Mit Zitat antworten
  #22  
Alt 13.09.2007, 15:33:26
Raketenmann Raketenmann ist offline
Junior Member
 
Registriert seit: Jun 2004
Beiträge: 473
AW: DropDown Probleme

Deine Message hängt ja auch von nix ab, d.h. du könntest da auch hinschreiben, das die Klingonen morgen die Erde angreifen...
...ohne dass es dann auch passiert.


$query = "Update test SET werte='$neuer_inhalt' WHERE 'Produktnummer'";

Dies funktioniert so nicht, da hast du was falsch verstanden.

Es muß heißen:
Code:
"UPDATE SET spaltenname1='{$neuer_inhalt[1]}', spaltenname2='{$neuer_inhalt[2]}' ... WHERE Produktnummer='$neuer_inhalt[0]'"
Für "Spaltenname" trägst du die richtigen Namen der Spalten ein und vervollständigst das Statement da wo die Punkte sind um die restlichen Spalten.
Mit Zitat antworten
  #23  
Alt 13.09.2007, 15:45:29
Luke85 Luke85 ist offline
Anfänger
 
Registriert seit: Aug 2007
Beiträge: 47
AW: DropDown Probleme

Habs jetzt so umgesetzt, wie du meintest, doch eine Veränderung ist immer noch nicht sichtbar in phpmyadmin.

PHP-Code:
$neuer_inhalt $_POST['werte'];

$query "UPDATE SET     Typ='{$neuer_inhalt[2]}',
                        Teilung='{$neuer_inhalt[3]}',,
                        Frequenzbereich='{$neuer_inhalt[4]}',
                        Einfuegungsdaempfung='{$neuer_inhalt[5]}', 
                        Rueckflussdaempfung='{$neuer_inhalt[6]}',
                        Isolation='{$neuer_inhalt[7]}',
                        Impedanz='{$neuer_inhalt[8]}',
                        Widerstand='{$neuer_inhalt[9]}',
                        Schalterzeit='{$neuer_inhalt[10]}',
                        Schalttyp='{$neuer_inhalt[11]}',
                        WHERE Produktnummer='$neuer_inhalt[1]'"
;

$reslut=mysql_query($query);
mysql_close;

print 
"<p>Das Produkt mit der Produktnummer <b>$neuer_inhalt</b> wurde geändert.<p>";
?> 

Ich habe ja einen Printbefehl noch unten angegeben, damit die Veränderung angezeigt wird. Tut sie aber nicht, da dort ausgegeben wird im Browser "Das Produkt mit der Produktnummer Array wurde geändert." Die Werte jedoch werden nicht angezeigt.

Geändert von Luke85 (13.09.2007 um 15:53:11 Uhr)
Mit Zitat antworten
  #24  
Alt 13.09.2007, 22:24:24
Raketenmann Raketenmann ist offline
Junior Member
 
Registriert seit: Jun 2004
Beiträge: 473
AW: DropDown Probleme

Ich meine es wäre die Rede davon gewesen, dass sich die Produktnummer in Element Nr. 0 und nicht in Element Nr. 1 befindet...



Die print Zeile macht was sie soll. $neuer_inhalt ist ein Array, also steht da Array. Da mußt du dich schon auf ein Element beziehen.
Mit Zitat antworten
  #25  
Alt 14.09.2007, 08:22:35
Luke85 Luke85 ist offline
Anfänger
 
Registriert seit: Aug 2007
Beiträge: 47
AW: DropDown Probleme

Moin!
Also habe mal den Index korrigiert und mit der Ausgabe gespielt, doch es passiert nichts in phpmyadmin. Die Werte werden nicht verändert in der Tabelle und es kann nur Produktnummer aus dem Array gelesen werden. Dies habe ich festgestellt als ich die einzelnen Zeilen auslesen wollte mit $neuer_inhalt[x] (x=1,2,3,4,...).
Was ist da los? Wie bekomm ich das hin? Da fehlt doch noch der INSERT INTO Befehl oder irre ich mich? Das Skript wollte ich diese Woche endlich mal abschließen.

Geändert von Luke85 (14.09.2007 um 08:46:04 Uhr)
Mit Zitat antworten
  #26  
Alt 14.09.2007, 09:33:44
Raketenmann Raketenmann ist offline
Junior Member
 
Registriert seit: Jun 2004
Beiträge: 473
AW: DropDown Probleme

Zitat:
Zitat von Luke85 Beitrag anzeigen
Dies habe ich festgestellt als ich die einzelnen Zeilen auslesen wollte mit $neuer_inhalt[x] (x=1,2,3,4,...).
Wie hast du es ausgegeben? Sind die anderen Elemente leer?

Hast du schon genau geprüft, ob du alles richtig zusammengesetzt hast und nicht irgendwo Variablen verwendet werden, die es nicht gibt, ob die $_GET und $_POST Bezüge korrekt sind usw.?

Hast du mal mysql_error() nach dem UPDATE ausgegeben - Fehlermeldung? Sonst irgendwelche Fehlermeldungen? Prüfe mit print_r() an verschiedenden Stellen, ob der Inhalt des Array vorhanden ist, z.B. vor dem Absenden, um zu wissen, ob da nie Inhalte im Array waren oder ob irgendwelche Zuordnungen fehlen/falsch sind.

Zitat:
Zitat von Luke85 Beitrag anzeigen
Da fehlt doch noch der INSERT INTO Befehl oder irre ich mich?
INSERT und UPDATE sind verschiedene paar Schuhe. Mit INSERT werden neue Zeile in die Tabelle geschrieben und mit UPDATE verändert man vorhandene.


Zitat:
Zitat von Luke85 Beitrag anzeigen
Das Skript wollte ich diese Woche endlich mal abschließen.
Es steht dir jederzeit frei, zusätzlich einen Blick in die Handbücher zu werfen, um dir einen Teil deiner Fragen selber beantworten zu können
Mit Zitat antworten
  #27  
Alt 14.09.2007, 09:51:59
Luke85 Luke85 ist offline
Anfänger
 
Registriert seit: Aug 2007
Beiträge: 47
AW: DropDown Probleme

Die Variablen stimmen überein und werden auch mit dem Print-Befehl ausgegeben.
Es gibt ja mehrere Ausgabemöglichkeiten Arrays auszugeben. So habe ich zum Bsp. versucht die Inhalte vom Array einzeln auszugeben:
- $bezeichner = array("pn"=>Produktnummer, ...) und anschließend die ausgabe mit echo $bezeichner[0] für Produktnummer.
Das seltsame an dem ganzen war, das immer nur die Produktnummer ausgegeben wird und die anderen Zeilen nicht, obwohl laut print-befehl der Index richtig wäre.
Habe jetzt noch paar Makken rausgemerzt aus produkt_aender2.php

PHP-Code:
// Datenbank auswaehlen
    
$dblink=mysql_select_db("produkt");
    if (!
$dblink)
    {
        echo 
"<p><b>Leider kann die Datenbank nicht geöffnet werden. Bitte
        versuchen Sie es später noch einmal.\n"
;
        echo 
"</BODY></HTML>\n"// HTML Dokument abschliessen
        
exit (); // PHP-Script beenden
    
}

$neuer_inhalt $_POST['werte'];

$query "UPDATE test SET          Typ='{$neuer_inhalt[1]}',
                                Teilung='{$neuer_inhalt[2]}',
                                Frequenzbereich='{$neuer_inhalt[3]}',
                                Einfuegungsdaempfung='{$neuer_inhalt[4]}', 
                                Rueckflussdaempfung='{$neuer_inhalt[5]}',
                                Isolation='{$neuer_inhalt[6]}',
                                Impedanz='{$neuer_inhalt[7]}',
                                Widerstand='{$neuer_inhalt[8]}',
                                Schalterzeit='{$neuer_inhalt[9]}',
                                Schalttyp='{$neuer_inhalt[10]}',                                
                        WHERE     Produktnummer='{$neuer_inhalt[0]}'"
;

$reslut=mysql_query($query);
mysql_close($link); 
Jedoch kein Resultat.

Was ich mit INSERT INTO meinte war, dass man diesen Befehl doch in die erste Datei, sprich daten_ausgeben_ddm.php reinmüsste. Da ich doch da neue Befehle eingebe. Der Befehl UPDATE folgt dann in produkt_aender2.php damit die Inhalte aktualisiert wird. ist doch richtig oder nicht?

P.S.: Wenn man stundenlang an so einem Skript sitzt und zich verschiedene Varianten probiert hat und es langsam voran geht, will man ja endlich mal fertig werden ;). War jetzt kein Apelle an dich, dass du mir das Ding schreiben sollt, so war das nicht gemeint ;).

Geändert von Luke85 (14.09.2007 um 10:11:42 Uhr)
Mit Zitat antworten
  #28  
Alt 14.09.2007, 10:17:55
Raketenmann Raketenmann ist offline
Junior Member
 
Registriert seit: Jun 2004
Beiträge: 473
AW: DropDown Probleme

Zitat:
Zitat von Luke85 Beitrag anzeigen
- $bezeichner = array("pn"=>Produktnummer, ...)
Dies ist eine Wertzuweisung für ein assoziatives Array, ein solches mußt du über die assoziativen Schlüssel ansprechen oder eine foreach-Schleife verwenden

Zitat:
Zitat von Luke85 Beitrag anzeigen
und anschließend die ausgabe mit echo $bezeichner[0] für Produktnummer.
Dies gibt immer nur das erste Element des numerischen Arrays $bezeichner aus. Wenn du $bezeichner, wie oben, letztendlich assoziativ gebildet hast, wundert es mich, dass $bezeichner[0] überhaupt etwas ausgibt, das nicht lautet: "Undefined Index".

Zitat:
Zitat von Luke85 Beitrag anzeigen
Was ich mit INSERT INTO meinte war, dass man diesen Befehl doch in die erste Datei, sprich daten_ausgeben_ddm.php reinmüsste. Da ich doch da neue Befehle eingebe. Der Befehl UPDATE folgt dann in produkt_aender2.php damit die Inhalte aktualisiert wird. ist doch richtig oder nicht?
INSERT dient ausschließlich dem Einfügen von Zeilen in eine Tabelle einer Datenbank. Die Daten, die du in das Formular schreibst, sind doch schon in der DB. Du brauchst also ausschließlich SELECT für deine Ausgabe und UPDATE zum speichern der Änderungen.




Kommt denn nun eine Fehlermeldung, wenn du mysql_error() hinter folgender Zeile einsetzt.
PHP-Code:
$reslut=mysql_query($query);
echo 
mysql_error(); 
Heißt die Variable eigentlich absichtlich $reslut? ...aus Frust oder so? ;-)


Du benutzt meine Auswahl für die Produktnummern, richtig? Dann füge dies hinter der while-Schleife ein und schick mal das Ergebnis...
PHP-Code:
while($row=mysql_fetch_array($res)) 
    { 
        
$pr_nrn[]=$row['Produktnummer']; 
         
        if(isset(
$_GET['produkt']) && $_GET['produkt']==$row['Produktnummer']) 
            { 
                
$zeige_produkt=$row;             
            }     
    } 

// Dies hier einfügen
print_r($zeige_produkt); 
Mit Zitat antworten
  #29  
Alt 14.09.2007, 10:27:18
Luke85 Luke85 ist offline
Anfänger
 
Registriert seit: Aug 2007
Beiträge: 47
AW: DropDown Probleme

Wieder bisschen schlauer mit den Arrays.
LoL nee war Zufall mit der Slut. Die Errormessage bezieht sich jetzt aber plötzlich auf das hier:
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE Produktnummer='1'' at line 11". Wieder aber sehr seltsam, da dieser Befehl in Zeile 45 ist. Meint er den Index [11]?

Hier die Print-Ausgabe:
Array ( [0] => 1 [1] => DEV_121 [2] => xxx [3] => xxx [4] => xxx [5] => xxx [6] => xxx [7] => x [8] => xxxx [9] => xxx [10] => x )

Er findet und liest die Werte aus, das klappt. Nur er schreibt diese nicht in die Tabelle rein =/.

Geändert von Luke85 (14.09.2007 um 10:30:53 Uhr)
Mit Zitat antworten
  #30  
Alt 14.09.2007, 10:44:01
Raketenmann Raketenmann ist offline
Junior Member
 
Registriert seit: Jun 2004
Beiträge: 473
AW: DropDown Probleme

Tja - da ist MySQL etwas eigensinnig, immer wenn die Antwort des Servers mit "You have an error in your SQL syntax;" beginnt, wird nix weiter gemacht... ;-)


Code:
                                
Schalttyp='{$neuer_inhalt[10]}',                                 
WHERE Produktnummer='{$neuer_inhalt[0]}'";
Das Komma vor dem WHERE muß weg! Schalttyp ist das letzte Element des SETs, braucht also kein Komma am Ende.
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
Dropdown formular rolan PHP Entwicklung und Softwaredesign 5 10.04.2007 15:37:06
Probleme mit getImageSize() duesentrieb PHP für Fortgeschrittene und Experten 8 01.03.2006 18:55:55
Probleme beim includen speak234 PHP Grundlagen 7 12.11.2003 15:05:39
Wert aus DropDown Feld auslesen Jim Panse PHP für Fortgeschrittene und Experten 12 07.04.2003 07:37:55
PHP mail() funktion und server probleme flobee PHP für Fortgeschrittene und Experten 0 03.07.2002 01:18:27


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:03:46 Uhr.


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


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