Registreer FAQ Berichten van vandaag


Ga terug   Scholieren.com forum / Technologie / Software & Hardware
Reageren
 
Topictools Zoek in deze topic
Oud 26-01-2005, 21:16
Jordi
Avatar van Jordi
Jordi is offline
Ik probeer voor mijn forum een functie te schrijven waardoor subfora omhoog/omlaag kunnen worden bewogen om zo in een andere volgorde op het scherm te komen.

Een voorbeeld van de code die ik daarvoor gebruik is dit:
PHP-code:
$sql ="UPDATE forumtabel SET forum_order = '-1' WHERE forum_order = '2';"
        
"UPDATE forumtabel SET forum_order = '2' WHERE forum_order = '3';"
        
"UPDATE forumtabel SET forum_order = '3' WHERE forum_order = '-1';";
    
$result mysql_query($sql);
?> 
of dit: (het is het zelfde, het werkt allebei niet)
PHP-code:
    $sql1 "UPDATE forumtabel  SET forum_order='-1'             WHERE forum_order='2'";
    
$result1 mysql_query($sql1);
    
$sql2 "UPDATE forumtabel  SET forum_order='2'             WHEREforum_order='3'";
    
$result2 mysql_query($sql2);
    
$sql3 "UPDATE forumtabel  SET forum_order='3'         WHERE forum_order='-1'";
    
$result3 mysql_query($sql3);
?> 
Als ik dit zo uitvoer gebeurt er niets. Als ik echter eerst de tweede en derde regel weghaal, dan wordt de eerste regel wel uitgevoerd. Als ik vervolgens de eerste en derde regel weghaal en de tweede terug zet en ik herlaad de pagina, wordt de tweede regel uitgevoerd. En zo ook met de derde regel.
Oftewel: mijn queries werken wel als tussen elke afzonderlijke opdracht een reload zit, maar anders niet.

Weet iemand misschien hoe dit kan komen en wat ik er aan kan doen?
__________________
Mommy, that salesman's on TV!
Met citaat reageren
Advertentie
Oud 26-01-2005, 21:57
Bloemkoolsaus
Avatar van Bloemkoolsaus
Bloemkoolsaus is offline
Er zijn 2 verschillende soorten queries.
1. Een die resultaten dingen opvraagt. Zoals bijv. SELECT
2. Een die wijzigingen in de db uitvoert, zoals INSERT of UPDATE

Een SELECT query kun je in een result zetten, aangezien die ook result terug geeft.
Een UPDATE, geeft (zover ik weet) nix terug maar voert alleen een opdracht uit in de db.

Probeer het eens op deze manier.
PHP-code:
$sql1 "UPDATE forumtabel  SET forum_order='-1' WHERE forum_order='2'"
mysql_query($sql1); 
Suc6
__________________
http://www.bloemkoolsaus.com
Met citaat reageren
Oud 26-01-2005, 22:04
Jordi
Avatar van Jordi
Jordi is offline
Bedankt voor je reply.

Je hebt op zich wel gelijk, want bij UPDATE krijg je inderdaad geen result terug. Het is echter blijkbaar niet erg als je toch $result=mysql_query{$sql); schrijft, want er komt geen foutmelding en dit heb ik eigenlijk overal (fout dus).

Maar goed, ik heb geprobeerd wat jij zei en het maakt eigenlijk niets uit.

Het gekke vind ik nog steeds dat de queries het afzonderlijk op zich wel doen als ze maar niet samen...
__________________
Mommy, that salesman's on TV!
Met citaat reageren
Oud 26-01-2005, 22:20
Bloemkoolsaus
Avatar van Bloemkoolsaus
Bloemkoolsaus is offline
Dat is idd een beetje vreemd.

Probeer dit eens, en kijk of tie wat zegt.
PHP-code:
$result mysql_query($sql) or die (mysql_error()); 
Misschien kan hij de query niet goed uitvoeren.
Als dat het geval is moet hij dat zo weergeven.

Ander zou ik het zo snel ook ff niet weten
__________________
http://www.bloemkoolsaus.com
Met citaat reageren
Oud 26-01-2005, 22:47
Verwijderd
Je hebt ook nog gemengde queries

INSERT INTO * VALUES (SELECT * FROM *)
Met citaat reageren
Oud 27-01-2005, 17:39
McMotion
Avatar van McMotion
McMotion is offline
Citaat:
Bloemkoolsaus schreef op 26-01-2005 @ 23:20 :
Dat is idd een beetje vreemd.

Probeer dit eens, en kijk of tie wat zegt.
PHP-code:
$result mysql_query($sql) or die (mysql_error()); 
Misschien kan hij de query niet goed uitvoeren.
Als dat het geval is moet hij dat zo weergeven.

Ander zou ik het zo snel ook ff niet weten
eerst zeg je dat je de return value van mysql_query() niet moet gebruiken omdat update geen recordset teruggeeft, en nu raad je zelf aan om em te gebruiken in een expressie.. je hebt er duidelijk verstand van

zowieso vind ik het gaat dat iedereen die 'or die' constructie gebruikt (het wordt zelfs aangeraden vanaf de site, maar daar zal je het vast van gekopieerd hebben)... echt een stereotiep voorbeeld van slechte code
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
Met citaat reageren
Oud 27-01-2005, 21:53
Bloemkoolsaus
Avatar van Bloemkoolsaus
Bloemkoolsaus is offline
Citaat:
McMotion schreef op 27-01-2005 @ 18:39 :
eerst zeg je dat je de return value van mysql_query() niet moet gebruiken omdat update geen recordset teruggeeft, en nu raad je zelf aan om em te gebruiken in een expressie.. je hebt er duidelijk verstand van
Het ging mij ff om het stukje "or die".
Gezien hij zelf heeft aangegeven dat "$result" geen verschil maakt, heb ik er niet opgelet.
__________________
http://www.bloemkoolsaus.com
Met citaat reageren
Oud 06-02-2005, 21:47
Jordi
Avatar van Jordi
Jordi is offline
Bedankt voor jullie hulp.

Dit is hoe ik het nu heb 'opgelost':
Ik heb het volgende helemaal aan het einde van de functie toegevoegd:
PHP-code:
echo "<script language=\"JavaScript\">function previous() {
    document.location.href='"
.$_SERVER['HTTP_REFERER']."';
    }
    
    setTimeout('previous()', 0);</script>"

Verder is de functie in essentie hetzelfde gebleven. Hij werkt dus nog steeds op ongeveer dezelfde manier, alleen de pagina wordt meteen geredirect naar de vorige pagina. Het gekken is echter dat dit dan weer niet werkt:
PHP-code:
echo "<script language=\"JavaScript\">function previous() {
    document.location.href='"
.$_SERVER['HTTP_REFERER']."';
    }
    
    setTimeout('previous()', 1000);</script>"

(het verschil is dat er eerst 1 seconde wordt gewacht voordat je wordt geredirect)

Dus als ik meteen redirect, worden de veranderingen wel in de database opgeslagen, maar als ik iets te lang wacht, worden ze op de één of andere manier toch weer teruggezet naar de oorspronkelijke waarden.

Heeft iemand hier een verklaring voor?
__________________
Mommy, that salesman's on TV!
Met citaat reageren
Oud 08-02-2005, 20:00
Bloemkoolsaus
Avatar van Bloemkoolsaus
Bloemkoolsaus is offline
__________________
http://www.bloemkoolsaus.com
Met citaat reageren
Advertentie
Reageren


Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar

Soortgelijke topics
Forum Topic Reacties Laatste bericht
Software & Hardware [mysql+phpmyadmin]PMA of PHP ziet MySql niet..
D@mien
7 13-02-2007 22:45
Software & Hardware [PHP/MySQL] EK Poule
Jordi
10 04-06-2004 12:25
Software & Hardware [MySQL] Dubbele query
dafelix
3 16-04-2004 19:30
Software & Hardware [php/mysql/javascript] Automatisch sluiten en vernieuwe
micra
18 16-08-2003 18:05
Software & Hardware [PHP]sessie probleem!!!
mvos100
8 02-11-2002 08:01
Software & Hardware [php] gegevens komen niet in tabel
Slaughterer
9 29-08-2002 12:58


Alle tijden zijn GMT +1. Het is nu 18:41.