Toon posts:

[Mysql&PHP] Update Mysql Tabel Uitvoeren

Pagina: 1
Acties:
  • 52 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb een script gebouwd althans ik ben nog bezig en ik heb een raar/vaag probleem.

Ik wil namelijk dat als mensen iets verzenden dit in een database gezet wordt en later pas de Ordernummer ervan toe gevoegd wordt met Mysql Update functie.

Ik heb dan nu ook het volgende:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
mysql("$database","INSERT INTO koper VALUES ('$koperid','$bedrijfsnaam','$contactpersoon','$adres','$postcode','$plaats','$telefoonnummer','$faxnummer','$email','$Betalingskenmerk','$akkoord','$orderTotal','$Date','$OrderNumber','$UserID')");
$query2 = "SELECT * FROM koper WHERE UserID='$UID' AND Date='$Date'";
$result2 = mysql_query($query2) or die(mysql_error());
while ($row2 = mysql_fetch_array($result2))

mysql("$database","INSERT INTO Orders VALUES ('".$row2["koperid"]."','$UserID','$Date','$OrderTotal','')");

$query3 = "SELECT * FROM Orders WHERE UserID='$UID' AND Date='$Date'";
$result3 = mysql_query($query3) or die(mysql_error());
while($row3 = mysql_fetch_array($result3))
    
echo "<b>".$row3["koperid"]."</b><br><u><i>".$row3["OrderNumber"]."</i></u>";
                            
mysql("$database","UPDATE koper SET OrderNumber='".$row3["Ordernumber"]."' WHERE UserID='$UID'");

$query4 = "SELECT * FROM CartItems WHERE UserID='$UID'";
$result4 = mysql_query($query4) or die(mysql_error());
while ($row4 = mysql_fetch_array($result4))
{
$query5 = "SELECT * FROM Items WHERE ItemID=".$row4["ItemID"];
$result5 = mysql_query($query5) or die(mysql_error());
while ($row5 = mysql_fetch_array($result5))
{
$To[$i]=($row4["ItemQuantity"] * $row5["ItemCost"]);

mysql("$database","INSERT INTO Receipts VALUES ('".$row2["koperid"]."','$UserID','".$row3["OrderNumber"]."','$Date','".$row5["ItemID"]."','".$row5["ItemSKU"]."','".$row5["ItemName"]."','".$row5["ItemCost"]."','$ISC','".$row4["ItemQuantity"]."','$To[$i]')");
$i++;
}
}
mysql("$database","DELETE FROM CartItems WHERE UserID='$UserID'");
mysql("$database","DELETE FROM Users WHERE User='$UserID'");

$query9 = "SELECT * FROM koper WHERE koperid='BID'";
$result9 = mysql_query($query9) or die (mysql_error());
$row9 = mysql_fetch_array($result9);


Nu moet ik zeggen dat alles werkt behalve de echo ""; functie die ik neer heb gezet om te kijken of alles wel gelezen wordt. Nu is daar het vage van. De eerste 10x ofzo was daar alles netjes mee. En nu zien ik dus elke keer een blanco pagina. En de update werkt totaal niet. In beide gevallen niet. Ik heb wat andere got's artikele gezocht en ook op php gekeken maar ik zien niet echt wat ik fout doe. Heb het zelfs nog een keer herscheven voor te kijken of ik geen " ' { } enzo vergeten was. Maar probleem staat er nog steeds.

Btw de regel waar ik dus problemen mee heb is:

PHP:
1
mysql("$database","UPDATE koper SET OrderNumber='".$row3["Ordernumber"]."' WHERE UserID='$UID'");

  • AlexAuto
  • Registratie: Februari 2001
  • Laatst online: 23:06

AlexAuto

Parttime Tweaker

PHP:
1
mysql("$database","UPDATE koper SET OrderNumber='".$row3["Ordernumber"]."' WHERE UserID='$UID'");


$row3["OrderNumber"]

Vergelijk deze maar es.... (Hoofdletters!)

Verwijderd

Topicstarter
AlexAuto schreef op 25 juni 2003 @ 19:30:
PHP:
1
mysql("$database","UPDATE koper SET OrderNumber='".$row3["Ordernumber"]."' WHERE UserID='$UID'");


$row3["OrderNumber"]

Vergelijk deze maar es.... (Hoofdletters!)
Stom... Deze had ik dus idd over het hoofd gezien. maar goed toen ik het wel juist zetten en de rest er ook maar meteen op gecontroleerd had kwam ik tot de conclusie dat het nog steeds niet werkt.

De echo

PHP:
1
echo "<b>".$row3["koperid"]."</b><br><u><i>".$row3["OrderNumber"]."</i></u>";

geeft wel netjes aan dat alle 2de dingen opgevraagd wordt. En geeft dan ook netjes de waarde aan. Bijdehand of niet. Maar bij die update regel: Nu dus:

PHP:
1
mysql("$database","UPDATE koper SET OrderNumber='".$row3["OrderNumber"]."' WHERE UserID='$UID'");


Doet hij nog steeds niks... De tabel koper en dan de query OrderNumber blijft met waarde 0 terwijl de waarde bij de echo netjes 1 of 2 of 3 aan gegeven wordt

[ Voor 74% gewijzigd door Verwijderd op 25-06-2003 19:46 ]


  • AlexAuto
  • Registratie: Februari 2001
  • Laatst online: 23:06

AlexAuto

Parttime Tweaker

Regel 33 :
$query9 = "SELECT * FROM koper WHERE koperid='BID'";

Geen Dollarteken vergeten bij die BID??

Alle query's even echo'en helpt ook, even uittesten met bijvoorbeeld PHPMyAdmin of in de mysql-console. (Mijn methode om iets te controleren)

Verwijderd

Topicstarter
AlexAuto schreef op 25 June 2003 @ 19:43:
Regel 33 :
$query9 = "SELECT * FROM koper WHERE koperid='BID'";

Geen Dollarteken vergeten bij die BID??

Alle query's even echo'en helpt ook, even uittesten met bijvoorbeeld PHPMyAdmin of in de mysql-console. (Mijn methode om iets te controleren)
heb het al veranderd

$query8 = "SELECT * FROM Orders WHERE UserID='$UID'";
$result8 = mysql_query($query8) or die (mysql_error());
$row8 = mysql_fetch_array($result8);

$query9 = "SELECT * FROM koper WHERE koperid=".$row8["koperid"];
$result9 = mysql_query($query9) or die (mysql_error());
$row9 = mysql_fetch_array($result9);

[ Voor 31% gewijzigd door Verwijderd op 25-06-2003 20:07 ]


Verwijderd

Oesje, queries in een loop en die op zijn beurt in loops.

Ik ga je queries niet overlopen, 1 tip kan zijn: zoek eens op mysql.com naar de IN() functie: als je dan een heel hoop informatie over een heel hoop ID's (of wat dan ook) moet hebben, kan je makkelijker (en sneller, ja!) doen:
PHP:
1
SELECT * FROM Tabel WHERE id IN (1,2,5,6,7,15,48)
Volgens mij doe jij in het bovenste geval 7x een query (in jouw query5 sectie), en dat telkens voor 1 ID. Die '1,2,5,6,7,15,48' kan je bijvoorbeeld maken door je ID-array te doorlopen, en telkens de value + "," achter een string te plakken, behalve op het einde, dan doe je alleen de value.

Inserts moet je uiteraard 1 per 1 doen. Dus (snel bekeken) is je tweede loop (de binnenste while in jouw query5 sectie) niet te vermijden/correct.

[ Voor 20% gewijzigd door Verwijderd op 25-06-2003 22:05 ]


Verwijderd

Topicstarter
lol. Ik heb het allemaal al veranderd. EN het werkt nu perfect. Ik laat nu alles via m'n UID (UserID) lopen en die wordt maar 1 keer aan gemaakt en blijft ook continue staan dat je op de website bent.

Verwijderd

Topicstarter
Ik heb nu een andere vraag:..

Ik heb gezegt dat er 3 dingen in de tabel: Receipts moet komen. Althans dat heb ik doormiddels van m'n script gezegt.

Nu zeg ik dat hij tijdens het emailen alle gegevens uit Receipts moet hallen met UserID=$UID

Maar nu het probleem Hij haalt er maar 1 uit. Hoe ken dit? Owja. Voor uidelijkheid ik gebruik while. het gaat om dit stukje script:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$queryd = "SELECT * FROM Receipts WHERE UserID='$UID'";
$resultd = mysql_query($queryd) or die (mysql_error());
while ($rowd = mysql_fetch_array($resultd))
{ 
$arttotal = $rowd["ItemQuantity"] * $rowd["ItemCost"];
$arttotal1 = number_format($arttotal,"2",".","thousands_sep");
$part2 = "  <tr>
<td width='52'><font size=2 face=Arial>".$rowd["ItemSKU"]."</font></td>
<td width='50'><center><font size=2 face=Arial>".$rowd["ItemQuantity"]."</font></center></td>
<td width='54'><center><font size=2 face=Arial>".$rowd["ItemQuantity"]."</font></center></td>
<td width='34'><center><font size=2 face=Arial>stuk</font></center></td>
<td colspan='3' width='262'><font size=2 face=Arial>".$rowd["ItemName"]."</td>
<td width='31'><font size=2 face=Arial>€ ".$rowd["ItemCost"]."</font></td>
<td width='112'><font size=2 face=Arial>€ $arttotal1</font></td>
</tr>";
}

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Ja we blijven niet voor je debuggen, mag nog wel iets zelf doen. Zie P&W FAQ - Leer **** debuggen!!. Gewoon code neerplempen met aan ons het verzoek of we de fout willen zoeken doen we hier niet aan. :/

Professionele website nodig?

Pagina: 1

Dit topic is gesloten.