fout in mysqli query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

- SanThe -

- SanThe -

18/05/2014 18:10:25
Quote Anchor link
Die twee query's hebben beiden dezelfde inhoud dus dat kan je in één query doen met LIMIT 2.
 
PHP hulp

PHP hulp

23/04/2024 07:29:59
 
Louis Deconinck

Louis Deconinck

18/05/2014 18:21:03
Quote Anchor link
Als ik ze in 1 query stop, loop ik dan niet het risico dat ze beiden dezelfde persoon selecteren?

Ik heb achter elke mysqli query een or die(mysql_error()); geplaatst, doe ik dit bij resultaat 1 en 2 dan krijg ik opnieuw een blanco pagina. Dit zijn de queries die ik een paar posts terug heb aangepast, daar zit dus de fout.
Gewijzigd op 18/05/2014 18:21:54 door Louis Deconinck
 
- SanThe -

- SanThe -

18/05/2014 18:25:27
Quote Anchor link
Louis Deconinck op 18/05/2014 18:21:03:
Als ik ze in 1 query stop, loop ik dan niet het risico dat ze beiden dezelfde persoon selecteren?


Als die persoon er meerdere keren in bestaat wel, anders niet.
 
Louis Deconinck

Louis Deconinck

18/05/2014 18:27:23
Quote Anchor link
Wel ik bedoel, is het mogelijk dat hij tweemaal dzelfde rij neemt?

Nog steeds problemen met deze queries, kan er misschien een foutje zijn ingeslopen?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$result1
= mysqli_query($link, "SELECT * FROM main WHERE gender='$gender' ORDER BY RAND() LIMIT1");
$row1 = mysqli_fetch_assoc($result1);
$fbid1=$row1['fbid'];
$id1=$row1['id'];

$result2 = mysqli_query($link, "SELECT * FROM main WHERE id != '$id1' AND gender='$gender' ORDER BY RAND() LIMIT1");
$row2 = mysqli_fetch_assoc($result2);
$fbid2=$row2['fbid'];
?>
 
- Ariën  -
Beheerder

- Ariën -

18/05/2014 18:31:45
Quote Anchor link
Je vertelt wel steeds dat je problemen hebt, maar wat houdt je tegen dat je geen foutafhandeling toevoegt aan je queries? Zulke dingen maken het oplossen daarvan veel makkelijker......
 
Louis Deconinck

Louis Deconinck

18/05/2014 18:39:33
Quote Anchor link
Ik dacht dat or die(mysql_error()); foutenafhandeling was, wat kan ik nog meer doen?
 
- Ariën  -
Beheerder

- Ariën -

18/05/2014 18:40:32
 
Louis Deconinck

Louis Deconinck

18/05/2014 18:47:28
Quote Anchor link
Ik had al verteld dat ik niet echt snap wat die github is of doet ...

Het vorige probleem heb ik kunnen oplossen door enkele waardes te echoen, bleek dat er een fout zat bij de default waardes van de gender (dus als er nog geen POST was).

Als ik nu echter op een persoon klik en volgende code zou moeten uitgevoerd worden, krijg ik een wit scherm:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if(isset($_POST['winner'])){
$winner=$_POST["winner"];
$loser=$_POST["loser"];
$result3 = mysqli_query($link, "SELECT * FROM main WHERE fbid in ($winner)") or die(mysql_error());
$result4 = mysqli_query($link, "SELECT * FROM main WHERE fbid in ($loser)") or die(mysql_error());
$row3 = mysqli_fetch_assoc($result3);
$row4 = mysqli_fetch_assoc($result4);
$ratingwinner=$row3['rating'];
$ratingloser=$row4['rating'];
$points=($ratingwinner/$ratingloser)*20;
$newratingwinner=$ratingwinner+$points;
$newratingloser=$ratingloser-$points;
$result5 = mysqli_query($link, "UPDATE rating FROM main SET rating='$newratingwinner' WHERE fbid in ($winner)") or die(mysql_error());
$result6 = mysqli_query($link, "UPDATE rating FROM main SET rating='$newratingloser' WHERE fbid in ($loser)") or die(mysql_error());
}

?>
Gewijzigd op 18/05/2014 18:47:40 door Louis Deconinck
 
Ivo P

Ivo P

18/05/2014 19:01:03
Quote Anchor link
is ook logisch: zelfs als $_POST['winner'] bestaat, dan geeft dat geen enkel resultaat naar het scherm toe.
 
Louis Deconinck

Louis Deconinck

18/05/2014 19:06:17
Quote Anchor link
Ivo P, dat is een onderdeel van het script, onder het script staat ook nog html en die wordt ook niet weergegeven. Door de or die mysql error's we te halen en nog meer variablen te echoen, kan ik met vrij grote zekerheid zeggen dat de allerlaatste fout hierin zit

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$result5
= mysqli_query($link, "UPDATE rating FROM main SET rating='$newratingwinner' WHERE fbid in ($winner)");
$result6 = mysqli_query($link, "UPDATE rating FROM main SET rating='$newratingloser' WHERE fbid in ($loser)");
?>


Alles werkt, behalve het updaten van de ratings in de database, ik heb de ratings geechoed en ze kloppen.
 
- Ariën  -
Beheerder

- Ariën -

18/05/2014 19:13:58
Quote Anchor link
Louis Deconinck op 18/05/2014 18:47:28:
Ik had al verteld dat ik niet echt snap wat die github is of doet ...

Zie het als een voorbeeld-template die aangeeft hoe je je code het beste kunt opbouwen. De script zelfs zijn niet direct 1-op-1 bruikbaar, maar het gaat puur om de commentaren en de wat het script doet.

Lees eens door, en dan weet je hoe je een fatsoenlijk script kan opbouwen.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

18/05/2014 19:16:18
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
UPDATE rating FROM main SET rating='$newratingwinner' WHERE fbid in ($winner)

Ivo P op 18/05/2014 17:51:33:
Maar de syntax van een update query luidt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
UPDATE tabel
SET kolom = value,
    kolom1 = value
WHERE voorwaarde

in die volgorde
 
Louis Deconinck

Louis Deconinck

18/05/2014 19:19:27
Quote Anchor link
Ik alles is opgelost. Bedankt voor de goede hulp iedereen. Het laatste probleem was dus dat er geen FROM staat in een update query.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

18/05/2014 19:31:38
Quote Anchor link
Als $winner één waarde bevat - dat kan niet anders zou je query niet lukken - waarom gebruik je dan WHERE ... IN?

Waarom wil je twee tabellen tegelijker tijd updaten?, dat neigt naar een slecht database model
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.