php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 01-10-2007, 14:10
Gamingo
 Newbie
Links : Onlinestatus : Gamingo ist offline
Registriert seit: Sep 2007
Beiträge: 10
Gamingo ist zur Zeit noch ein unbeschriebenes Blatt
Standard Aktualisierung der mysql datenbank

Ich hoffe das mir mit meiner Beschreibung geholfen werden kann.

Folgendes

In Datenbanktabelle 1 habe ich Daten diese Daten sollen wenn WHERE zutrifft mit Datenbanktabelle 2 verglichen werden und danach die ausgewählten daten aus Datenbank 2 in Datenbank 1 übernommen und zuletzt Der Datensatz aus Datentabelle 2 gelöscht werden der übernommen wurde.

Das schaut ungefähr so aus:
PHP-Code:
Datenbanktabelle 1
id  
name |xxx|yyy |zzz |
100 Heinz|  |  |
101 Mark |  |  |
102 Heino|  |  |

Datenbanktabelle 2
id  
name |xxx|yyy |zzz |
100 Heinz|  |  |
101 Mark |  |  |
102 Heino|  |  
Wie kann ich hier richtig ansetzen?
Mit Zitat antworten
  #2 (permalink)  
Alt 01-10-2007, 15:34
arkos
 PHP Senior
Links : Onlinestatus : arkos ist offline
Registriert seit: Feb 2003
Ort: hamburg
Beiträge: 1.015
arkos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

was heißt, wenn where zutrifft??

mal ein wenig genauer. denn davon hängt es ggf ab, ob du eine, zwei oder noch mehrere querys brauchst...
__________________
**********
arkos
**********
Mit Zitat antworten
  #3 (permalink)  
Alt 01-10-2007, 17:58
gourmet
 Registrierter Benutzer
Links : Onlinestatus : gourmet ist offline
Registriert seit: Feb 2007
Beiträge: 154
Blog-Einträge: 1
gourmet ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich würde in beiden tabellen noch eine userid anlegen und dann

select x,y,z from tab2 where userid=?
update tab1 set(x=tab2x, y=tab2y ,z=tab2z where userid=?
wenn update i.o.
dann
delete * from tab2 where userid=?
Mit Zitat antworten
  #4 (permalink)  
Alt 01-10-2007, 19:11
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von gourmet
ich würde in beiden tabellen noch eine userid anlegen und dann

select x,y,z from tab2 where userid=?
update tab1 set(x=tab2x, y=tab2y ,z=tab2z where userid=?
wenn update i.o.
dann
delete * from tab2 where userid=?
z.B.
weitere Variante wäre ein UPDATE mit WHERE und 2 Tabellen und zu empfehlen ist in diesem Fall noch innodb mit Transaktionen, falls es nötig ist.
Mit Zitat antworten
  #5 (permalink)  
Alt 01-10-2007, 21:20
Gamingo
 Newbie
Links : Onlinestatus : Gamingo ist offline
Registriert seit: Sep 2007
Beiträge: 10
Gamingo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hab ein wenig rumprobiert und die Ausgabe mal mit echo anzeigen lassen, soweit so gut.

Aber es klappt nicht das die Daten in die Datenbank übernommen werden.
Habe ich das Update in die falsche Zeile eingefügt oder fehlt noch eine Abfrage?

PHP-Code:
$sql_count "SELECT count(*) FROM Tabelle 1 WHERE verlaengert='1'  "
$sql "SELECT * FROM Tabelle 1 WHERE verlaengert='1'  ";

$rsl mysql_query $sql_count );
if (
$rsl)
{
$hash mysql_fetch_array($rsl);
$total = (int)$hash[0];
}
else
{
$total 0;
}
$result mysql_query $sql );    
$zaehler='0';
if (
$result)
{    
while (
$row=mysql_fetch_array($result))
{
echo 
"WERBE-ID: ".$zaehler." = ".$row[id]."<br>"// pl
$webs_count++;
$zaehler++;
                        
$sqlb_count "SELECT count(*) FROM Tabelle 2 WHERE werbe_id='".$row[id]."' ";
$sqlb "SELECT * FROM Tabelle 2 WHERE werbe_id='".$row[id]."'";
$rslb mysql_query $sqlb_count );
if (
$rslb)
{
$hashb mysql_fetch_array($rslb);
$totalb = (int)$hashb[0];
}
else
{
$totalb 0;
}
 
$resultb mysql_query $sqlb );    
if (
$resultb)
{        
while (
$rowb=mysql_fetch_array($resultb))
{
// echo zur veranschaulichung der zu ändernden daten
echo $rowb[user_id]."<br>";
echo 
$rowb[starts]."<br>";
echo 
$rowb[ends]."<br>";
echo 
$rowb[duration_id]."<br>";
echo 
$rowb[duration]."<br>";
echo 
$rowb[banner_uploaded]."<br>";
echo 
$rowb[banner_url]."<br>";
echo 
$rowb[bagrs]."<br>";
echo 
$rowb[bannerort0]."<br>";
echo 
$rowb[bannerort1]."<br>";
echo 
$rowb[bannerort2]."<br>";
echo 
$rowb[bannerort3]."<br>";
echo 
$rowb[bannerort4]."<br>";
echo 
$rowb[bannerort5]."<br>";
echo 
$rowb[bannerort6]."<br>";
echo 
$rowb[bannerort7]."<br>";
echo 
$rowb[bannerort8]."<br>";
echo 
$rowb[bannerort9]."<br>";
echo 
$rowb[fett]."<br>";
echo 
$rowb[marker]."<br>";
echo 
$rowb[topkat]."<br>";
echo 
$rowb[galry]."<br>";
echo 
$rowb[wohers4]."<br>";
echo 
$rowb[wohers5]."<br>";
echo 
$rowb[wohers6]."<br>";
echo 
$rowb[wohers7]."<br>";
echo 
$rowb[wohers8]."<br>";
echo 
$rowb[wohers9]."<br>";
                    
echo 
$rowb[s1h0]."<br>";
echo 
$rowb[s1h1]."<br>";
echo 
$rowb[s1h2]."<br>";
echo 
$rowb[s1h3]."<br>";
echo 
$rowb[s1h4]."<br>";
echo 
$rowb[s1h5]."<br>";
echo 
$rowb[s1h6]."<br>";
echo 
$rowb[s1h7]."<br>";
echo 
$rowb[s1h8]."<br>";
echo 
$rowb[s1h9]."<br>";
echo 
$rowb[s2h0]."<br>";
echo 
$rowb[s2h1]."<br>";
echo 
$rowb[s2h2]."<br>";
echo 
$rowb[s2h3]."<br>";
echo 
$rowb[s2h4]."<br>";
echo 
$rowb[s2h5]."<br>";
echo 
$rowb[s2h6]."<br>";
echo 
$rowb[s2h7]."<br>";
echo 
$rowb[s2h8]."<br>";
echo 
$rowb[s2h9]."<br>";
                        
                        
if (
$row[verlaengert]=='1') { // Abfrage ob Wert (1) in Tabelle 1 gesetzt wurde
$verlanz=$row[count_verl]+1;
$update_sql 
"UPDATE Tabelle1 SET starts= '".$rowb[starts]."', ends= '".$rowb[ends]."', 
duration_id= '"
.$rowb[duration_id]."', duration= '".$rowb[duration]."', 
banner_uploaded= '"
.$rowb[banner_uploaded]."', banner_url= '".$rowb[banner_url]."', 
bagrs= '"
.$rowb[bagrs]."', bannerort0= '".$rowb[bannerort0]."', 
bannerort1= '"
.$rowb[bannerort1]."', 
bannerort2= '"
.$rowb[bannerort2]."', 
bannerort3= '"
.$rowb[bannerort3]."', 
bannerort4= '"
.$rowb[bannerort4]."', 
bannerort5= '"
.$rowb[bannerort5]."', 
bannerort6= '"
.$rowb[bannerort6]."', 
bannerort7= '"
.$rowb[bannerort7]."', 
bannerort8= '"
.$rowb[bannerort8]."', 
bannerort9= '"
.$rowb[bannerort9]."', 
fett= '"
.$rowb[fett]."', 
marker= '"
.$rowb[marker]."', 
topkat= '"
.$rowb[topkat]."', 
galry= '"
.$rowb[galry]."', 
wohers4= '"
.$rowb[wohers4]."', 
wohers5= '"
.$rowb[wohers5]."', 
wohers6= '"
.$rowb[wohers6]."', 
wohers7= '"
.$rowb[wohers7]."', 
wohers8= '"
.$rowb[wohers8]."', 
wohers9= '"
.$rowb[wohers9]."', 
s1h0= '"
.$rowb[s1h0]."', 
s1h1= '"
.$rowb[s1h1]."', 
s1h2= '"
.$rowb[s1h2]."', 
s1h3= '"
.$rowb[s1h3]."', 
s1h4= '"
.$rowb[s1h4]."', 
s1h5= '"
.$rowb[s1h5]."', 
s1h6= '"
.$rowb[s1h6]."', 
s1h7= '"
.$rowb[s1h7]."', 
s1h8= '"
.$rowb[s1h8]."', 
s1h9= '"
.$rowb[s1h9]."', 
s2h0= '"
.$rowb[s2h0]."', 
s2h1= '"
.$rowb[s2h1]."', 
s2h2= '"
.$rowb[s2h2]."', 
s2h3= '"
.$rowb[s2h3]."', 
s2h4= '"
.$rowb[s2h4]."', 
s2h5= '"
.$rowb[s2h5]."', 
s2h6= '"
.$rowb[s2h6]."', 
s2h7= '"
.$rowb[s2h7]."', 
s2h8= '"
.$rowb[s2h8]."', 
s2h9= '"
.$rowb[s2h9]."', 
verlaengert='0', 
count_verl= '"
.$verlanz."' 
WHERE id='"
.$row[id]."' AND user='".$row[user_id]."' "
                
$resultbb mysql_query($update_sql); 
if(!
$resultbb)
{
echo 
"<BR>Update fehlgeschlagen<BR>";

}
$webs_countb++;
}
else
{
$webs_countb 0;
}
}        
}
else
{
$webs_count 0;

Mit Zitat antworten
  #6 (permalink)  
Alt 01-10-2007, 22:21
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

"Aber es klappt nicht ..." heißt? Fehlermeldungen (error_reporting ( E_ALL ))? Insgesamt solltest du dein ganzes Skript nochmal überdenken, bzw. erklären was du eigentlich machen willst - das sieht nicht sinnvoll aus.
PHP-Code:
echo $rowb[user_id]."<br>";
echo 
$rowb[starts]."<br>";
echo 
$rowb[ends]."<br>";
... 
Für so etwas gibt es foreach!
PHP-Code:
foreach ( $rowb as $key => $value ) {
echo 
$value '<br />';
}
...
$sql 'UPDATE ...';
foreach ( 
$rowb as $key => $value ) {
$sql .= $key ' = "' $value '" ';

(siehe dazu auch Strings / Arrays)
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #7 (permalink)  
Alt 02-10-2007, 00:20
Gamingo
 Newbie
Links : Onlinestatus : Gamingo ist offline
Registriert seit: Sep 2007
Beiträge: 10
Gamingo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

rowb steht für den datensatz

Bsp.:
row[]
0[]

1[id]; zeigt 37555
1[user]; zeigt ingo
wenn neuer Datensatz
2[id]; zeigt 37554
2[user]; zeigt heinz

warum sollte ich es jetzt umschreiben wenn ich es so vorerst besser verstehe, kann den quelltext später optimieren. Hab php nicht studiert. wenn ja könnte ich behaupten das es kein problem für mich wäre.

also nochmal;

als erstes frage ich in der datenbanktabelle 1 ab ob einträge vorhanden sind die verlängert wurden sind; wenn ja dann soll er sie mir anzeigen(aber nur die ID).

zweitens soll eine abfrage in tabelle 2 gemachtwerden mit WHERE ID, welche ich aus der ersten abfrage erhalten habe.
Mir werden als ergebnis die Eintrage angezeigt die geändert werden sollen bzw. schon sind aber noch nicht überträgen.

die zwei sachen funktionieren gut.

was nicht funktioniert ist das er kein datenbankupdate macht, auch keine fehlermeldung ausgibt.

Ich kann mir gut vorstellen das beim update noch etwas fehlt oder liege ich ganz und gar falsch?
Mit Zitat antworten
Antwort

Lesezeichen


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

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:44 Uhr.