![]() |
Namen von Liste zu Liste verschieben
Hallo
ich möchte 2 Listen in php Datenbank erstellen Liste 1:
Delphi-Quellcode:
Liste 2:
NINA
Gehard Angela Helmut ... Leer Nun wird das Formular von Kunden an eine php-datei geschickt Der php Code soll zuerst überprüfen ob der Name in der Liste 1 überhaupt existiert Wenn ja, dann soll der name von Liste 1 zu Liste 2 verschoben Wer kann mit dabei mit einem Code helfen :? |
Re: Namen von Liste zu Liste verschieben
|
Re: Namen von Liste zu Liste verschieben
wie liegen die Listen vor? sind das 2 tabellen einer (mysql-)Datenbank?
abfragen geht mit SELECT dann prüfst du per mysql_num_rows ob etwas zurückgegeben wurde, wenn ja holst du dir das result und schreibst es in die neue (per INSERT). HTH Frank |
Re: Namen von Liste zu Liste verschieben
Zitat:
Das ist prinzipiell kein Problem, wie alle haben einmal angefangen. Aber bitte schaue der Realität ins Auge und befasse Dich vorerst mit Seiten, die Dir die Grundlagen vermitteln (zum Beispiel ![]() Vorher macht das Fortführen dieser Frage auch keinen Sinn. |
Re: Namen von Liste zu Liste verschieben
Gut gebrüllt, Cheffe :mrgreen:
|
Re: Namen von Liste zu Liste verschieben
Zitat:
Die Tabellen sind identisch hier ist mein php-Code, wie ich die Daten in die Tabelle2 (Liste2) speichere
Delphi-Quellcode:
Ich möchte vor dem Speichern der Daten in Tabelle2 (Liste2) zuerst überprüfen
<?php
$server = "localhost"; $user = "xxxxxx"; $passwort = "xxxxxx"; $datenbank = "xxxxxxxxx"; mysql_connect($server, $user, $passwort) or die(" keine Verbindung etabliert!"); mysql_select_db($datenbank) or die("Datenbank gefunden!"); $clientdatum = $_POST['name']; $clientnachricht = $_POST['vorname']; $clientnummer = $_POST['telefon']; $clientprodukt = $_POST['adresse']; $sql = "INSERT INTO Liste2 (name, vorname, telefon, adresse) VALUES('$name','$vorname','$telefon','adresse')"; mysql_query($sql) or die("Anfrage fehlgeschlagen: " . mysql_error()); //$sql="DELETE from Liste1 order by clientdatum LIMIT 1"; $result = mysql_query($sql); ... ?> ob der Name schon in der Tabelle 1 da ist ist da, dann den Namen von Liste1 löschen und dann die Daten in Liste2 speichern |
Re: Namen von Liste zu Liste verschieben
ich würde dir empfehlen eine Index-Spalte (primary key) anzulegen, um die Einträge eindeutig zu identifizieren.
ansonsten hab ich mal so aus dem kopf mal was zusammengebastelt...natürlich ungetested :D Es soll ja nur die Vorgehensweise veranschaulichen...
Code:
HTH Frank
<?php
$server = "localhost"; $user = "xxxxxx"; $passwort = "xxxxxx"; $datenbank = "xxxxxxxxx"; mysql_connect($server, $user, $passwort) or die(" keine Verbindung etabliert!"); mysql_select_db($datenbank) or die("Datenbank gefunden!"); //Fehler "Datenbank gefunden", wenn verbindung fehlschlägt? //wozu diese 4 variablen mit den unpassenden Namen? $clientdatum = $_POST['name']; $clientnachricht = $_POST['vorname']; $clientnummer = $_POST['telefon']; $clientprodukt = $_POST['adresse']; $q="SELECT * FROM Liste1 WHERE ..." //den Datensatz suchen $result = mysql_query($sql); if (mysql_num_rows($query)>0)//wurde gefunden? { $line=mysql_fetch_rows($query); $sql="DELETE FROM Liste1 WHERE `ID`=='".$line["ID"]."' LIMIT 1";//Datensatz anhand der ID löschen $result = mysql_query($sql); //jetzt in Liste 2 einfügen $sql = "INSERT INTO Liste2 (name, vorname, telefon, adresse) VALUES($line['name'],$line['vorname'],$line['telefon'],$line['adresse'])"; $result = mysql_query($sql); } ?> |
Re: Namen von Liste zu Liste verschieben
Jemand heißt z.B. NINA schickt das Formular an diese php Datei
Der PHP Script sucht den Namen "Nina" in Liste1 in Spalte "Name" und findet den Namen NINA Der Name wird von Liste 1 gelöscht und in Liste 2 hinzugefügt nun habe ich bis hier verstanden :
Delphi-Quellcode:
...
mysql_connect($server, $user, $passwort) or die(" keine Verbindung etabliert!"); mysql_select_db($datenbank) or die("Datenbank gefunden!"); $q="SELECT * FROM Liste1 where id=".$Name); //den Datensatz suchen $result = mysql_query($sql);// wie wurde Nina gefunden ! if (mysql_num_rows($query)>0)// $query->delete("delete from Liste1 where id=".$Name); //??? Es soll die Zeile, wo der Name Nina steht, gelöscht |
Re: Namen von Liste zu Liste verschieben
steht der name in der spalte "Id"?
wo liegt genau das Problem?
Code:
die letzte zeile hat auch eine eigenartige syntax...musst das schon machen wie oben...also
...
mysql_connect($server, $user, $passwort) or die(" keine Verbindung etabliert!"); mysql_select_db($datenbank) or die("Datenbank gefunden!"); $sql="SELECT * FROM Liste1 where id=".$Name); //den Datensatz suchen => in $sql geändert $result = mysql_query($sql);// wie wurde Nina gefunden ! => versteh den Kommentar nicht...evtl. wegen $q<>$sql if (mysql_num_rows($query)>0)// => anzahl der zeilen, die zurückgegeben werden $query->delete("delete from Liste1 where id=".$Name); //??? Es soll die Zeile, wo der Name Nina steht, gelöscht
Code:
sag mal, was genau nicht geht bzw. welche fehlermeldungen kommen.
$sql="";
$result =mysql_query($sql); Gruß Frank |
Re: Namen von Liste zu Liste verschieben
Beim Auslesen, zeigt mit der Code die 1.Zeile in der Tabelle
Delphi-Quellcode:
wie kann ich die untere (letzte Zeile) auslesen?
...
$result = mysql_query("SELECT * FROM $Liste1 ORDER BY name DESC"); Die letzte Zeile ist natürlich die neue gespeicherte Daten |
Re: Namen von Liste zu Liste verschieben
Zitat:
angegeben. Grüße Klaus |
Re: Namen von Liste zu Liste verschieben
Wie kann ich die Tabelle sortieren ?
Ich habe eine neue Spalte hinzugefügt. Die Spalte heißt DatumZeit Inhalt :
Delphi-Quellcode:
nun soll die Tabelle nach Datum und Zeit in bei der Spalte DatumZeit sortiert
$zeit = date("d.m.Y H:i:s");// aktuelles Datum und Zeit werden gespeichert
Wie mache ich das ? |
Re: Namen von Liste zu Liste verschieben
Hallo,
verstehst Du die Codes die Du kopierst? In Deinem Beitrag #10 wird nach dem Feld name sortiert in absteigender (descending) Reihenfolge. Wenn Du jetzt nach dem Feld DatumZeit sortieren willst, welches Feld muss dann wohl eingetragen werden? Grüße Klaus |
Re: Namen von Liste zu Liste verschieben
Zitat:
|
Re: Namen von Liste zu Liste verschieben
ich bekomme ein Fehler in diese Zeile :
Delphi-Quellcode:
Error :
$q="SELECT * FROM Liste1 WHERE Name = ".$name"; //Fehler
$result = mysql_query($sql); if (mysql_num_rows($query)>0) Parse error: syntax error, unexpected '"' in /www/ ... test.php on line 26 |
Re: Namen von Liste zu Liste verschieben
Das letzte Anführungszeichen ist zu viel und genau das sagt doch exakt die Meldung. :wall:
|
Re: Namen von Liste zu Liste verschieben
Zitat:
er findet ein ", was da nicht hingehört...in php muss zwischen den einzelnen Stringabschnitten immer ein Punkt (concatenation-operator) sein, wie + bei Delphi (gut, es gibt bei D die Ausnahme mit chars [#xx]). Wenn du da mal schaust, wirst du feststellen, dass du hinten versuchst, ohne Punkt einen neuen string zu öffnen und dieser nichtmal geschlossen wird. HTH Frank |
Re: Namen von Liste zu Liste verschieben
Delphi-Quellcode:
soll nicht so eingegeben:
// in diese Zeile verstehe ich nicht !
$sql="DELETE FROM Liste1 WHERE `ID`=='".$line["ID"]."' LIMIT 1";//Datensatz anhand der ID löschen
Delphi-Quellcode:
$sql="DELETE FROM Liste1 WHERE Name = .$name LIMIT 1";
|
Re: Namen von Liste zu Liste verschieben
Zitat:
Mit " machst Du einen String auf (und dann wieder zu). Mit . hängst Du verschiedene Strings aneinander. Also wird aus
Delphi-Quellcode:
$sql="DELETE FROM Liste1 WHERE `ID`=='".$line["ID"]."' LIMIT 1";
Delphi-Quellcode:
Wenn Du anhand des Namens löschen willst.
$sql="DELETE FROM Liste1 WHERE `Name`=='" . $name . "' LIMIT 1";
WAS zum Teufel ist denn daran so schwer? Edit Nachtrag: Wenn übrigens jemand so heisst: Zitat:
Du solltest lieber SQL Parameter nutzen anstelle das SQL-Statement selber zusammenzubauen... |
Re: Namen von Liste zu Liste verschieben
Zitat:
|
Re: Namen von Liste zu Liste verschieben
nun bekomme ich diesen Fehler :
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in
Delphi-Quellcode:
//jetzt in Liste 2 einfügen
$sql = "INSERT INTO Liste2 (name, telefon, email, adresse) VALUES($line['name'],$line['telefon'],$line['email'],$line['adresse'])"; $result = mysql_query($sql); |
Re: Namen von Liste zu Liste verschieben
eigentlich hab ich den Fehler abschtlich reingebaut damit du nicht einfach nur kopierst :D
aber mal eine kleine hilfe (war vielleicht doch bisschen fies)...wenn du auf array-eigenschaften zugreifen willst und die in einen string einbauen willst, kannst du diese nicht direkt einbauen, sondern musst sie concatenaten...also so:
Code:
HTH Frank
$sql = "INSERT INTO Liste2 (name, vorname, telefon, adresse) VALUES('".$line['name']."','".$line['vorname']...
|
Re: Namen von Liste zu Liste verschieben
ich bekomme jetzt einen Fehler außerhalb des php codes :
//formular anfang echo '<form action="#" method="post" name="formular"> <table border="0" align="center"> <tr> <td></td> </tr> Parse error: syntax error, unexpected T_STRING in /www/... test.php on line 50 |
Re: Namen von Liste zu Liste verschieben
Wie liest Du die Datei ein?
|
Re: Namen von Liste zu Liste verschieben
wo machst du den echo-string wieder zu? (sehe kein schließendes ')
welche zeile ist zeile 50? die mit echo? was steht 1 Zeile vor dem kommentar (evtl. ; vergessen)? Gruß Frank |
Re: Namen von Liste zu Liste verschieben
Zitat:
Delphi-Quellcode:
früher füge ich Daten in Tabellen in diesem Prinzip ein :
$q="SELECT * FROM Liste1 WHERE Name = .$Name";
Delphi-Quellcode:
Ich wollte nur vor dem Einfügen in Liste2, eine Zeile in Liste1 löschen, wo Name gefunden wird. Mehr nicht :cry:
<?
$q = "INSERT INTO Liste2 (name, email, telefon) VALUES ('$name', '$email', '$telefon')"; // und funktioniert ?> |
Re: Namen von Liste zu Liste verschieben
Zitat:
<table border="0" align="center"> |
Re: Namen von Liste zu Liste verschieben
Zitat:
Delphi-Quellcode:
$q="SELECT * FROM Liste1 WHERE Name = $Name";
|
Re: Namen von Liste zu Liste verschieben
Delphi-Quellcode:
$q="SELECT * FROM Liste1 WHERE Name = $Name"; // hat es nichts geändert
// Fehler bleibt immer der selbe ! |
Re: Namen von Liste zu Liste verschieben
poste mal bitte di komplette Datei, sonst wird das nur gerätsel...
in dem Abschnitt kann ich jetzt keinen fehler erkennen (außer das fehlende ' am ende,was du aber evtl. nur nicht mit kopiert hast) Gruß Frank |
Re: Namen von Liste zu Liste verschieben
Delphi-Quellcode:
<?php
$server = "xxxx"; $user = "xxxx"; $passwort = "xxxxx"; $datenbank = "xxxxx"; mysql_connect($server, $user, $passwort) or die("keine Verbindung etabliert!"); mysql_select_db($datenbank) or die("Datenbank nicht gefunden!"); $name = $_POST['name']; $email = $_POST['email']; $telefon = $_POST['telefon']; $adresse = $_POST['adresse']; $q="SELECT * FROM liste1 WHERE name = $name"; //den Datensatz suchen $result = mysql_query($sql); if (mysql_num_rows($query)>0) { $line=mysql_fetch_rows($query); $sql="DELETE FROM liste1 WHERE `name`=='" $name . "' LIMIT 1";//Datensatz anhand der ID löschen $result = mysql_query($sql); //jetzt in Liste 2 einfügen $sql = "INSERT INTO liste2 (name, email, telefon, adresse) VALUES('".$line['name']."','".$line['email']."','".$line['telefon']."','".$line['adresse']."'); $result = mysql_query($sql)"; // korrigiert } //formular anfang echo '<form action="#" method="post" name="formular"> <table border="0" align="center"> <tr> <td></td> </tr> <tr> <td><input type="text" name="name" value="xxxx"></td> </tr> <tr> <td><input type="text" name="email" value="xxx@xxx.de"></td> </tr> <tr> <td><input type="text" name="telefon" value="xxxxxx"></td> </tr> <tr> <td><input type="text" name="adresse" value="xxxxxx"></td> </tr> <tr> <td align="center"><input type="submit" name="submit" value="senden"></td> </tr> </table> </p> </form>'; //formular ende ?> |
Re: Namen von Liste zu Liste verschieben
wie ich vermutet habe ist der fehler weiter oben ein fehlendes ". genauer gesagt am ende von Zeile 30 (vor der schließenden Klammer).
mit einem Syntax-hightlighting-fähigen Editor sieht man sowas ziemlich schnell...siehe scite in meiner signatur ;) HTH Frank |
Re: Namen von Liste zu Liste verschieben
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /www/...test.php on line 21
also in:
Delphi-Quellcode:
if (mysql_num_rows($query)>0)
|
Re: Namen von Liste zu Liste verschieben
sagmal...willst programmieren, oder sollen wir dir alles vorkauen? :twisted:
du sollst verstehen, was der Code macht, dann siehst du auch, wo der fehler ist. ich hab das nur aus dem Kopf geschrieben...aber du musst die Rückgabe des letzten querys übergeben. :wall: Gruß Frank |
Re: Namen von Liste zu Liste verschieben
Ich habe wieder meinen alten Code verwendet
Ich bekomme zwar keine Fehlermeldung Es wird aber keine Daten gespeichert !
Delphi-Quellcode:
$q="SELECT * FROM liste1 WHERE name = $name"; //den Datensatz suchen
$result = mysql_query($sql); if( mysql_num_rows( mysql_query( "select * from liste1 where name='$name'" ) ) > 0 ) { mysql_query( "insert into liste2(name,email,telefon,adresse) values('$name','$email','$telefon','$adresse')" ); $sql="DELETE FROM liste1 WHERE name = $name";//Datensatz anhand der ID löschen $result = mysql_query($sql); } //jetzt in Liste 2 einfügen ... |
Re: Namen von Liste zu Liste verschieben
Wie ignorant kann man eigentlich sein? *kopfschüttelnd ins Bett geht*
|
Re: Namen von Liste zu Liste verschieben
Nein ... ich werde nicht ... *zurückhalt* ... :wall:
|
Re: Namen von Liste zu Liste verschieben
Zitat:
Dennoch hat das jetzt so keinen Sinn mehr. @Delphi-Turbo: Du versuchst Dich hier an etwas, was für Deine derzeitigen Kenntnisse eine Nummer zu groß ist. Ich weiß nun, dass es manchmal leichter gesagt als getan ist, zu sagen: "Lies' Dir das Zeug durch" - aber eine andere Alternative kann ich Dir derzeit mangels besserer Ideen nicht ans Herz legen. Im Moment ist die Situation etwas verfahren. Du kommst fachlich keinen Schritt weiter und die Diskussion driftet in eine Richtung, in der sie Dir immer weniger hilft. Ich rate Dir, einen Schritt langsamer zu machen und eigenen Code zu entwickeln. Auf spielerische Weise kommst Du so schnell zu Fortschritten und diese Vorgehensweise müsste Dir eigentlich ganz gut liegen. Ich mache hier mal zu. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz