abonnement Unibet Coolblue Bitvavo
pi_33003897
Wie gebruikt er eik weleens bij sql "replace" ?
pi_33003979
quote:
Op maandag 12 december 2005 00:05 schreef Ro�a� het volgende:
Wie gebruikt er eik weleens bij sql "replace" ?
Ik. En eigenlijk moeten die herschreven worden, ze kunnen best zwaar worden voor de server (die het toch al niet makkelijk heeft). En nee, die queries gooi ik hier niet neer
pi_33004157
quote:
Op maandag 12 december 2005 00:05 schreef Ro�a� het volgende:
Wie gebruikt er eik weleens bij sql "replace" ?
Ik niet. Maar even gelezen in de documentation, dan worden alle dubbele rijen gedelete en opnieuw geinsert met een nieuwe primary key. Dat moet je niet te vaak doen op een grote tabel
pi_33004505
quote:
Op maandag 12 december 2005 00:15 schreef JeRa het volgende:

[..]

Ik niet. Maar even gelezen in de documentation, dan worden alle dubbele rijen gedelete en opnieuw geinsert met een nieuwe primary key. Dat moet je niet te vaak doen op een grote tabel
replace into mytable (id, name) values (1, "test")
Dat levert een 1 affected row op als je nog geen rij hebt met id=1, en anders 2. Ik ga er dan dus wel even vanuit dat id de PK is.
pi_33012020
af en toe laat ik het een en ander uit een database echoen in een tabel. komt ook best vaak voor dat ik die tabel maar 3 td's breed wil, en de volgende 3 in een rij daaronder komen, de drie daarna weer daaronder etc.

dit vang ik momenteel op door php te laten tellen. per while doet hij $nr + 1;, waardoor er bij de 3e een waarde van 3 komt en de rij wordt afgebroken door een ander te laten echoen en een nieuwe wordt begonnen. daarna wordt $nr weer teruggezet op 0 zodat de riedel weer van voor af aan begint.

is dit niet wat makkelijker en netter af te vangen?
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_33012286
Zijn de cellen allemaal even hoog?
pi_33012364
mja zijn wel even hoog.

ik zit net te denken aan een float.. als ik ze allemaal een float left meegeef, en ze per stuk in een div zet ofzo met aangegeven waardes, heb ik waarschijnlijk de hele tabel niet nodig. misschien een omringende tabel of div om de totale breedte aan te geven. eensch?
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_33012388
Jups, daar zat ik ook aan te denken idd.
pi_33016261
Vraagje:

ik heb een site waarop mensen dingen kunnen kopen (soort webwinkel) en mensen kunnen betalen via CreditCard of eenmalige incasso. De betalingen worden geregeld via een Payment Service Provider, dus daar heb ik geen zorgen om.

Maar ik moet de gegevens van de bestelling naar de PSP toe sturen. Als voorbeeld geven zij een HTML pagina met daarin een FORM waarin bedrag, ordernummer, enzovoorts staan. Alles wordt vervolgens gepostnaar een HTTPS geval.

Ik wil nu vanuit een PHP bestand ook die POST kunnen uitvoeren. Dus dat ik de headers naar mijn PSP stuur. Ik had zelf het volgende gemaakt gejat:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$url
= "https://[psp]/[psp].php";
$host = substr($url, 0, strpos($url, "/"));
$uri = strstr($url, "/");
$reqbody = "";
      foreach(
$data as $key=&gt;$val) {
          if (!empty(
$reqbody)) $reqbody.= "&";
      
$reqbody.= $key."=".urlencode($val);
      }
$contentlength = strlen($reqbody);
$reqheader =  "Location: $url\r\n".
    
"POST $uri HTTPS/1.1\r\n".
    
"Host: ssl://$host\n". "User-Agent: PostIt\r\n".
    
"Content-Type: application/x-www-form-urlencoded\r\n".
    
"Content-Length: $contentlength\r\n\r\n".
    
"$reqbody\r\n";
header($reqheader);
?>


Maar dit werkt niet helemaal goed, want de data is niet SSL versleuteld enzo. Dus m'n PSP accepteerd het niet. Nu las ik ergens dat je ook gebruik kon maken van cURL, maar ik heb geen flauw idee hoe ik dat kan doen. Kan iemand daarmee helpen?

[ Bericht 11% gewijzigd door HuHu op 12-12-2005 15:54:23 ]
  FOK!-Schrikkelbaas maandag 12 december 2005 @ 18:46:37 #250
1972 Swetsenegger
Egocentrische Narcist
pi_33021760
Heeft je PSP geen kant en klaar php script dan?
pi_33022129
quote:
Op maandag 12 december 2005 18:46 schreef Swetsenegger het volgende:
Heeft je PSP geen kant en klaar php script dan?
Helaas niet en de support afdeling was vandaag niet aanwezig. Maar ik ga zeker contact met ze opnemen om dit te overleggen. Het enige kant-en-klare 'script' wat ze aanboden was een HTML pagina. En dat is niet echt zo netjes, als je gebruikers eerst op een lege pagina komen alwaar ze een knop moeten indrukken. Ik wil ze gewoon direct doorverwijzen naar de PSP. Het is dan ook niet mogelijk voor de wat slimmere mensen om bijvoorbeeld het bedrag aan te passen.
  FOK!-Schrikkelbaas maandag 12 december 2005 @ 19:02:12 #252
1972 Swetsenegger
Egocentrische Narcist
pi_33022327
Maar je hebt die HTML page toch? Wat staat daar in dan?
  FOK!-Schrikkelbaas maandag 12 december 2005 @ 19:10:59 #253
1972 Swetsenegger
Egocentrische Narcist
pi_33022654
quote:
Op zondag 11 december 2005 23:30 schreef Light het volgende:
MySQL (phpmyadmin) geeft bij mij gewoon een melding dat er 0 rijen zijn aangepast. Geen foutmeldingen ofzo.

Als je checked op effected_rows==1 krijg je een melding terug...

Mijn fout.
pi_33022781
In die HTML page staan alle benodigde variabelen (ordernummer, bedrag, enzovoorts) als hidden FORM fields. En die worden, zodra je op de knop drukt, gepost naar een https server waar vervolgens de betaling wordt afgehandeld en de gebruiker z'n creditcard gegevens invuld.

Het gaat nu dus zo:
Gebruiker kiest product en vult ons bestelformulier in.
Mijn PHP script met database handelingen en bevestigingmailtjes
Scherm met: druk op de knop om te betalen
Betalen bij de PSP

Maar ik wil dat nutteloze tussenscherm eruit hebben door de variabelen die daarin staan direct vanuit mijn PHP script naar de server van de PSP te posten. Maar dat moet via SSL, en ik weet niet hoe dat moet.
  FOK!-Schrikkelbaas maandag 12 december 2005 @ 19:28:12 #255
1972 Swetsenegger
Egocentrische Narcist
pi_33023332
quote:
Op maandag 12 december 2005 19:14 schreef HuHu het volgende:
In die HTML page staan alle benodigde variabelen (ordernummer, bedrag, enzovoorts) als hidden FORM fields. En die worden, zodra je op de knop drukt, gepost naar een https server waar vervolgens de betaling wordt afgehandeld en de gebruiker z'n creditcard gegevens invuld.

Het gaat nu dus zo:
Gebruiker kiest product en vult ons bestelformulier in.
Mijn PHP script met database handelingen en bevestigingmailtjes
Scherm met: druk op de knop om te betalen
Betalen bij de PSP

Maar ik wil dat nutteloze tussenscherm eruit hebben door de variabelen die daarin staan direct vanuit mijn PHP script naar de server van de PSP te posten. Maar dat moet via SSL, en ik weet niet hoe dat moet.
Nu post dat HTML scherm toch naar de PSP? Dan moet er in die HTML file toch aan de submit knop een CGI of ander soortig script hangen welke die verbinding opzet.
Je kan in je PHP form toch gewoon dezelfde action gebruiken als nu in dat HTML form?
pi_33023656
quote:
Op maandag 12 december 2005 19:28 schreef Swetsenegger het volgende:

[..]

Nu post dat HTML scherm toch naar de PSP? Dan moet er in die HTML file toch aan de submit knop een CGI of ander soortig script hangen welke die verbinding opzet.
Je kan in je PHP form toch gewoon dezelfde action gebruiken als nu in dat HTML form?
Dit is de FORM actie:

1<form method="post" action="https://multipay.net/transaction/mpmain.php">


Hij post dus naar een beveiligde server. Nu wil ik met PHP naar die beveiligde server posten. Maar hoe versleutel ik mijn variabelen en dergelijke, zodat de server ze accepteerd.
  FOK!-Schrikkelbaas maandag 12 december 2005 @ 20:08:49 #257
1972 Swetsenegger
Egocentrische Narcist
pi_33024607
quote:
Op maandag 12 december 2005 19:38 schreef HuHu het volgende:

[..]

Dit is de FORM actie:
[ code verwijderd ]

Hij post dus naar een beveiligde server. Nu wil ik met PHP naar die beveiligde server posten. Maar hoe versleutel ik mijn variabelen en dergelijke, zodat de server ze accepteerd.
Hoe versleutelt die HTML ze?
Ik bedoel er veranderd toch niets? Die html POST toch dezelfde data als wanneer je php script het POST?
pi_33024740
Op php.net staat een voorbeeld van een post request naar een https server met behulp van een socket.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_33027037
quote:
Op maandag 12 december 2005 19:38 schreef HuHu het volgende:

[..]

Dit is de FORM actie:
[ code verwijderd ]

Hij post dus naar een beveiligde server. Nu wil ik met PHP naar die beveiligde server posten. Maar hoe versleutel ik mijn variabelen en dergelijke, zodat de server ze accepteerd.
Wil je het per se via php doen dan? Dus niet via een html form aan de client zijde waarin je die variabele echo't?
  dinsdag 13 december 2005 @ 19:37:22 #260
65471 SkaterSam
Lurking Galore
pi_33050994
Hmmm, wat is de beste manier om meerdere DELETES uit te voeren op de DB, ik heb nu het volgende:
1
2
3
4
5
6
7
<?php
foreach($_POST['cat'] as $a) {
        
$db-&gt;query("DELETE FROM nieuws_categorie WHERE nieuws_categorie_id='$a'");
        }
        
        
$db-&gt;closedb();
?>

De rijen die moeten worden verwijderd worden geselecteerd met een checkbox, die er zo uit ziet:
1<input type="checkbox" name="cat[]" value="<?php echo $table['nieuws_categorie_id'] ?>" />

Maar volgens mij is mijn code niet erg efficient, aangezien die 3 queries zal uitvoeren, is er een makkelijkere manier?
Let's make life easy
Typo's are the demon spawn from hell !
pi_33051292
Je kan meerdere records tegelijk verwijderen in 1 sql statement met:

1DELETE FROM myTable WHERE id IN (1, 2, 3)

Hoe je die string samenstelt mag je zelf uitzoeken
Vergeet niet om de invoer van de gebruiker te controleren.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_33052623
idd zo doe ik het ook altijd, trouwens het combineren van een array kan dmv implode (heb ik van roonaan geleerd ofzo )
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  dinsdag 13 december 2005 @ 20:32:25 #263
65471 SkaterSam
Lurking Galore
pi_33052828
Ik zal eens kijken naar implode(), ondertussen heb ik weer van alles verzonnen , zoals het volgende, alleen werkt dat natuurlijk niet

1
2
3
4
5
6
7
8
9
10
11
<?php
$remove
= $_POST['cat'];
    
$db_query = "DELETE FROM nieuws_categorie WHERE nieuws_categorie_id IN (";
    
for(
$i = 0; $i &lt; count($remove); $i++) {
    
$db_query .=  substr("'" . $remove[$i] . "',", 0, -1) . ")";
}
        
$db-&gt;query($db_query);
?>
Let's make life easy
Typo's are the demon spawn from hell !
  dinsdag 13 december 2005 @ 20:41:26 #264
32768 DionysuZ
Respect my authority!
pi_33053139
werkt IN (bla,bla,ba) ook bij MySQL dan? heb er veel problemen mee gehad.
□ Reality is merely an illusion,albeit a very persistent one-A.Einstein
■ Of ik ben gek of de rest van de wereld.Ik denk zelf de rest van de wereld-Rudeonline
□ The war is not meant to be won.It is meant to be continuous-G.Orwell
pi_33053476
quote:
Op dinsdag 13 december 2005 20:41 schreef DionysuZ het volgende:
werkt IN (bla,bla,ba) ook bij MySQL dan? heb er veel problemen mee gehad.
Heb die constructie al een behoorlijke tijd gebruikt zonder enige problemen lijkt me van wel dus. Weet iemand of die operatie atomic is?
  dinsdag 13 december 2005 @ 20:50:45 #266
65471 SkaterSam
Lurking Galore
pi_33053501
Dit werkt voor mij nu

1
2
3
4
5
6
<?php
$remove
= $_POST['cat'];
$remove = implode(',',$remove);
        
$db-&gt;query("DELETE FROM nieuws_categorie WHERE nieuws_categorie_id IN (" . $remove . ")");
?>

Dank voor de hints
Let's make life easy
Typo's are the demon spawn from hell !
pi_33053717
quote:
Op dinsdag 13 december 2005 19:47 schreef SuperRembo het volgende:
Vergeet niet om de invoer van de gebruiker te controleren.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  dinsdag 13 december 2005 @ 21:16:04 #268
65471 SkaterSam
Lurking Galore
pi_33054419
quote:
Op dinsdag 13 december 2005 19:47 schreef SuperRembo het volgende:
Vergeet niet om de invoer van de gebruiker te controleren.
Ik zal het niet vergeten

Er wordt al gekeken of de waarden in de array nummers zijn via is_numeric(), en straks nog even een mysql_real_escape_string() er over heen.

Zo goed ?
Let's make life easy
Typo's are the demon spawn from hell !
pi_33054682
quote:
Op dinsdag 13 december 2005 21:16 schreef SkaterSam het volgende:

[..]

Ik zal het niet vergeten

Er wordt al gekeken of de waarden in de array nummers zijn via is_numeric(), en straks nog even een mysql_real_escape_string() er over heen.

Zo goed ?
Een mysql_real_escape_string() heb je nodig als je een waarde in een string gaat zetten in de query. Nu werk je met integers, en is het minste wat je moet doen checken of het daadwerkelijk een getal is (en dat eventueel zo maken met intval() of strval()) en of het in de gewenste range ligt.
  dinsdag 13 december 2005 @ 21:37:03 #270
65471 SkaterSam
Lurking Galore
pi_33055163
quote:
Op dinsdag 13 december 2005 21:22 schreef JeRa het volgende:

[..]

Een mysql_real_escape_string() heb je nodig als je een waarde in een string gaat zetten in de query. Nu werk je met integers, en is het minste wat je moet doen checken of het daadwerkelijk een getal is (en dat eventueel zo maken met intval() of strval()) en of het in de gewenste range ligt.
Haha, weer wat geleerd in ieder geval, dan heb ik dus nu met mijn

1
2
3
4
5
6
7
<?php
if (is_numeric(array_sum($_POST['cat']))) {
// voer code uit
} else {
// stout!!!
}
?>


genoeg gecontroleerd? En wat is dan een range? Het zijn gewoon allemaal ID's die ik bij elkaar optel. Ik Google wel even wat een "range" inhoudt.
Let's make life easy
Typo's are the demon spawn from hell !
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')