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?
Aktualisierung der mysql datenbank
Einklappen
X
-
"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>";
...
PHP-Code:foreach ( $rowb as $key => $value ) {
echo $value . '<br />';
}
...
$sql = 'UPDATE ...';
foreach ( $rowb as $key => $value ) {
$sql .= $key . ' = "' . $value '" ';
}
Einen Kommentar schreiben:
-
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;
}
Einen Kommentar schreiben:
-
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=?
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.
Einen Kommentar schreiben:
-
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=?
Einen Kommentar schreiben:
-
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...
Einen Kommentar schreiben:
-
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| a | a | c |
101 | Mark | g | b | u |
102 | Heino| a | a | c |
Datenbanktabelle 2
id | name |xxx|yyy |zzz |
100 | Heinz| a | f | c |
101 | Mark | g | a | u |
102 | Heino| a | b | c |
Stichworte: -
Einen Kommentar schreiben: