abonnement Unibet Coolblue Bitvavo
pi_41433225
quote:
Op zaterdag 2 september 2006 20:05 schreef Piles het volgende:

[..]

Ik heb de moed inmiddels opgegeven. Allerlei querys geprobeerd (ook met timestamp), maar ik krijg niet de laatste foto. Ik heb nu gewoon geen GROUP BY erbij staan, maar mocht iemand nog een idee hebben
Je bedoelt dat je gewoon de laatst toegevoegde record wil pakken uit je database?

SELECT * FROM jouwtabel ORDER BY datum DESC LIMIT 1
pi_41433453
quote:
Op zaterdag 2 september 2006 20:57 schreef Tuvai.net het volgende:

[..]

Je bedoelt dat je gewoon de laatst toegevoegde record wil pakken uit je database?

SELECT * FROM jouwtabel ORDER BY datum DESC LIMIT 1
Nee, zie: [PHP/(My)SQL] voor dummies - Deel 31
pi_41433829
Heb je al eens ORDER BY id ASC, datum DESC geprobeerd?
pi_41433943
quote:
Op zaterdag 2 september 2006 21:15 schreef Tuvai.net het volgende:
Heb je al eens ORDER BY id ASC, datum DESC geprobeerd?
Er moet een GROUP BY oid in, want ik heb de volgende tabellen

item
- item_id (uniek)
- item_naam

foto
- foto_id (uniek)
- item_id (zie tabel item)
- link
- datum

Nu wil ik dus de 5 laatste items laten zien waar een foto is toegevoegd + die laatste foto.
Snap je?

[ Bericht 1% gewijzigd door Piles op 03-09-2006 12:42:00 ]
pi_41436636
Als ik deze query uitvoer:

1
2
3
<?php
$result
= mysql_query("SELECT COUNT(*) as aantal FROM orders GROUP BY datum ORDER BY datum DESC LIMIT 100");
?>


Dan krijg ik een resultaat terug met daarin 1 kolom en 100 rijen. Als ik dan dit doe:

1
2
3
4
5
6
<?php
while($row = mysql_fetch_assoc($result))
{
    echo(
$row["aantal"]. "<br />");
}
?>


Dan worden alle 100 resultaten keurig op het scherm getoond.

Maar als ik dit doe:

1
2
3
<?php
print_r
(mysql_fetch_assoc($result));
?>


Dan krijg ik alleen het resultaat in de eerste rij te zien, en niet alle 100. Wat ik wil bereiken is dat ik het resultaat van die query omzet in een array met alle 100 waarden.
pi_41436767
Ik heb het nu zo opgelost:

1
2
3
4
5
6
7
8
9
10
<?php
$result
= mysql_query("SELECT COUNT(*) as aantal FROM orders GROUP BY datum ORDER BY datum DESC LIMIT 100");

$data = array();

while(
$row = mysql_fetch_assoc($result))
{
    
array_push($data, $row["aantal"]);
}
?>


Maar hier moet toch ook wel een standaard-functie voor bestaan?
  zondag 3 september 2006 @ 11:38:01 #257
16625 robh
Lucas & Gea Review Crew ©
pi_41446967
quote:
Op zaterdag 2 september 2006 22:37 schreef HuHu het volgende:
Ik heb het nu zo opgelost:
[ code verwijderd ]

Maar hier moet toch ook wel een standaard-functie voor bestaan?
Volgens mij is daar geen standaard functie voor en daar zijn natuurlijk wel legio redenen voor te verzinnen.

Is het trouwens mogelijk om in PHP objecten te casten naar andere objecten? Ik zie wel dat het mogelijk is om (object) te casten, maar ik wil een "iets" casten naar een object van mijn keuze.
Martin Drent, onze profeet.
Vol gas met Burdy!
.
Pimpen met je FOK!-tag
  zondag 3 september 2006 @ 12:40:34 #258
151527 KaMo
Boem, zei de bas
pi_41448359
phpBB : Critical Error

Could not open DArk template config file

DEBUG MODE

Line : 503
File : functions.php

Nu wil ik dus met PHPmyAdmin alle "DArk" in "ndesign" veranderen

maar dan heb ik hem veranderd en dan zoek ik naar DArk
is het weer veranderd in DArk
Waar ligt dit aan?
pi_41449042
quote:
Op zondag 3 september 2006 11:38 schreef robh het volgende:

[..]

Volgens mij is daar geen standaard functie voor en daar zijn natuurlijk wel legio redenen voor te verzinnen.

Is het trouwens mogelijk om in PHP objecten te casten naar andere objecten? Ik zie wel dat het mogelijk is om (object) te casten, maar ik wil een "iets" casten naar een object van mijn keuze.
PHP4 of PHP5? Dat maakt zeker bij objecten wel uit. Ook de relatie tussen de objecten is handig. Maar ik denk niet dat je zomaar een object naar een ander type kunt casten.

Een hond is geen fiets, dus het zou niet logisch zijn als je objecten van class hond naar class fiets kunt casten.
  zondag 3 september 2006 @ 13:39:22 #260
16625 robh
Lucas & Gea Review Crew ©
pi_41449659
quote:
Op zondag 3 september 2006 13:13 schreef Light het volgende:

PHP4 of PHP5? Dat maakt zeker bij objecten wel uit. Ook de relatie tussen de objecten is handig. Maar ik denk niet dat je zomaar een object naar een ander type kunt casten.

Een hond is geen fiets, dus het zou niet logisch zijn als je objecten van class hond naar class fiets kunt casten.
PHP5.

Ik weet dat het niet logisch is om te doen, maar het zou mooi zijn als het kan. Ik denk dan bijvoorbeeld aan een rij tabeldata uit een db die je zou kunnen casten naar een object (met dezelfde attributen) en dat dan je getters en setters gewoon werken. Tuurlijk is daar wel een andere oplossing voor, maar als het met een cast kon zou het imo netter zijn.
Martin Drent, onze profeet.
Vol gas met Burdy!
.
Pimpen met je FOK!-tag
pi_41450146
quote:
Op zondag 3 september 2006 13:39 schreef robh het volgende:

[..]

PHP5.

Ik weet dat het niet logisch is om te doen, maar het zou mooi zijn als het kan. Ik denk dan bijvoorbeeld aan een rij tabeldata uit een db die je zou kunnen casten naar een object (met dezelfde attributen) en dat dan je getters en setters gewoon werken. Tuurlijk is daar wel een andere oplossing voor, maar als het met een cast kon zou het imo netter zijn.
Het ligt maar net aan je definitie voor 'netter' anyway, jij hebt een bepaalde conversie voor ogen waarbij je keys van een array cast naar een object met member variables van dezelfde naam. Hier is geen eenduidige cast voor te bedenken aangezien anderen wellicht een andere conversie hadden bedacht. Bovendien zou PHP nogal bloated worden als het dit soort casts zou gaan implementeren.

Maar het mooie aan PHP is dat er niets in je weg staat om een kleine functie te schrijven die dit werk voor je doet qua 'netheid' is er imho toch al niets aan te redden als je in PHP werkt, dan zul je een stuk verder komen in bijvoorbeeld Java

edit: een conversie van array -> object bestaat trouwens wel:
1
2
3
4
5
6
7
8
9
<?php

$test = array('blaat' => 2, 3 => 'onzin');

$obj = (object)$test;

print_r($obj);

?>

Maar het voorbeeld dat je aanhaalt is natuurlijk een beetje triviaal omdat er ook een functie is ala mysql_fetch_object()
pi_41451430
Hoe zou je in MySQL een veld waarde met 1 optellen?
Moet je eerst uitlezen wat er in dat veld staat met een select query, en daarna met een update query +1 bij de gevonden waarde doen?

En hoe zit dit dan als er 2 of meer gebruikters dit bijna gelijktijdig doen. Dan lezen ze beide tegelijkertijd bijvoorbeeld het getal 5. Dan schrijft er 1 weg en wordt het zes, en schrijft de ander ook weg, waardoor het 6 blijft, terwijl het 7 had moeten zijn...

Iemand een idee, of weet waar ik ergens moet zoeken?
pi_41451501
quote:
Op zondag 3 september 2006 14:55 schreef Skorpija het volgende:
Hoe zou je in MySQL een veld waarde met 1 optellen?
Moet je eerst uitlezen wat er in dat veld staat met een select query, en daarna met een update query +1 bij de gevonden waarde doen?

En hoe zit dit dan als er 2 of meer gebruikters dit bijna gelijktijdig doen. Dan lezen ze beide tegelijkertijd bijvoorbeeld het getal 5. Dan schrijft er 1 weg en wordt het zes, en schrijft de ander ook weg, waardoor het 6 blijft, terwijl het 7 had moeten zijn...

Iemand een idee, of weet waar ik ergens moet zoeken?
1UPDATE jouwtabel SET jouw_numerieke_veld=jouw_numerieke_veld+1
pi_41451568
quote:
Op zondag 3 september 2006 14:55 schreef Skorpija het volgende:
Hoe zou je in MySQL een veld waarde met 1 optellen?
Moet je eerst uitlezen wat er in dat veld staat met een select query, en daarna met een update query +1 bij de gevonden waarde doen?
1UPDATE tabel SET waarde = waarde + 1 WHERE (conditie);
quote:
En hoe zit dit dan als er 2 of meer gebruikters dit bijna gelijktijdig doen. Dan lezen ze beide tegelijkertijd bijvoorbeeld het getal 5. Dan schrijft er 1 weg en wordt het zes, en schrijft de ander ook weg, waardoor het 6 blijft, terwijl het 7 had moeten zijn...
Het grote concurrency probleem dus gelukkig stelt MySQL dat als je een enkele query uitvoert, deze atomic is. Dit betekent dat geen enkel ander proces/thread de tabellen kan wijzigen waar een huidige query op dat moment mee bezig is. Dus dit is atomic:

1UPDATE tabel SET waarde = waarde + 1;


En dit niet:

1
2
SELECT waarde FROM tabel WHERE naam = 'piet';
UPDATE tabel SET waarde = $waarde + 1;


Bij deze laatste code kun je een ander proces in de weg zitten dat op dat moment exact dezelfde queries uitvoert. Om dit op te lossen kun je zelf tabellen locken:

1
2
3
4
LOCK TABLES `tabel` WRITE;
SELECT waarde FROM tabel WHERE naam = 'piet';
UPDATE tabel SET waarde = $waarde + 1;
UNLOCK TABLES;


Et voila je opvolgende queries tussen LOCK en UNLOCK zijn atomic geworden.
pi_41451650
quote:
Op zondag 3 september 2006 14:58 schreef Tuvai.net het volgende:

[..]
[ code verwijderd ]
-edit- thanks Tuvai en JeRa
pi_41456273
Ik heb eindelijk eens oplossing voor mijn foto-probleem (met dank aan een ander forum )

1
2
3
4
5
SELECT i.item_naam, i.item_id, f.foto_id, f.foto_datum, f.foto_link 
FROM `item` AS i
INNER JOIN foto AS f ON i.item_id=f.item_id 
GROUP BY i.item_id 
ORDER BY f.foto_datum DESC
  zondag 3 september 2006 @ 18:12:55 #267
151527 KaMo
Boem, zei de bas
pi_41456441
quote:
Op zondag 3 september 2006 12:40 schreef KaMo het volgende:
phpBB : Critical Error

Could not open DArk template config file

DEBUG MODE

Line : 503
File : functions.php

Nu wil ik dus met PHPmyAdmin alle "DArk" in "ndesign" veranderen

maar dan heb ik hem veranderd en dan zoek ik naar DArk
is het weer veranderd in DArk
Waar ligt dit aan?
al opgelost
pi_41458478
quote:
Op zondag 3 september 2006 18:00 schreef Piles het volgende:
Ik heb eindelijk eens oplossing voor mijn foto-probleem (met dank aan een ander forum )
[ code verwijderd ]

Eigenlijk hoor je te groeperen op elk veld dat in de select voor komt. Als er meerdere foto's bij een item kunnen horen, dan weet je met jouw query niet welke foto je bij een item krijgt.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_41458717
quote:
Op zondag 3 september 2006 19:32 schreef SuperRembo het volgende:

[..]

Eigenlijk hoor je te groeperen op elk veld dat in de select voor komt. Als er meerdere foto's bij een item kunnen horen, dan weet je met jouw query niet welke foto je bij een item krijgt.
Alleen de velden uit de tabel `item` neem ik aan?
Ik heb het aangepast en het werkt nog steeds
pi_41461041
Nee, alle velden die in de select gebruikt worden, behalve velden in functies als sum() en max().
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_41468944
Ik probeer op mysql.com te vinden of het mogelijk is een select qeury in mysql toen waar ik 3 voorwaarde kan opgeven in me query.

Dus iets als $sql = "SELECT * FROM layout_rij WHERE user_id ='test' AND x='íets' AND y='nogwat'"

Weet iemand of zo iets mogelijk is en hoe je de query uitvoerd ik geen bruikbaare documentatie vinden of wil ik iets wat niet kan ?
  maandag 4 september 2006 @ 00:10:08 #272
1607 Ali Salami
Altijd actueel
pi_41469156
Als ik je eerste zin goed begrijp wil je een sql-query met meerdere voorwaarden, en dat zet je dan inderdaad ook in je SQL-statement. En die laatste is dan ook goed, er staat in de documentatie wel wat6 over AND/OR operators.

Maar heb je je query uberhaubt al eens uitgeprobeerd? Dat is eerst wel handig
Hatsjoe!
  maandag 4 september 2006 @ 00:17:33 #273
46383 Tiemie
sowieso wel!
pi_41469384
Het is niet alleen mogelijk om meerdere voorwaarden te gebruiken, Het is zelfs vrij standaard. .
pi_41469386
quote:
Op maandag 4 september 2006 00:01 schreef Wouta het volgende:
Ik probeer op mysql.com te vinden of het mogelijk is een select qeury in mysql toen waar ik 3 voorwaarde kan opgeven in me query.

Dus iets als $sql = "SELECT * FROM layout_rij WHERE user_id ='test' AND x='íets' AND y='nogwat'"

Weet iemand of zo iets mogelijk is en hoe je de query uitvoerd ik geen bruikbaare documentatie vinden of wil ik iets wat niet kan ?
Ja, zoiets is mogelijk. En het werkt nog op de manier die je hier beschrijft ook. Dus gewoon met AND. Of met OR, afhankelijk van wat je wilt. Als je AND en OR gaat combineren in een query dan is het aan te raden om altijd haakjes te gebruiken. Dan kun je het later makkelijker teruglezen, zonder je af te vragen hoe het bedoeld was.

Zie twee voorbeeldjes hieronder:
SELECT * FROM table WHERE a AND ( b OR c )
SELECT * FROM table WHERE ( a AND b ) OR c
pi_41488742
quote:
Op maandag 4 september 2006 00:10 schreef Ali Salami het volgende:
Maar heb je je query uberhaubt al eens uitgeprobeerd? Dat is eerst wel handig
Zeker heb ik de query geprobeerd! Ik denk alleen dat ik een andere fout in de query had. Hoewel ik dat niet eruitkon halen met mysql_error();
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')