login  Naam:   Wachtwoord: 
Registreer je!
 Forum

MySql (PHP) warning free result (Opgelost)

Offline DieHard - 16/03/2009 21:43 (laatste wijziging 16/03/2009 21:44)
Avatar van DieHardPHP interesse Deze code gebruik ik vanuit een php script. Maar ik krijg deze error. Ik heb zelf vrij weinig verstand van MySql, maar als ik het goed heb zou dit script automatisch tabellen en velden aan moeten maken in een database? Heeft iemand een idee wat er fout is? Bedankt alvast 

De database bevat dus nog geen tabellen.
-->
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /public_html/go.php on line 175
  1. <?php
  2. $link = @mysql_connect('servername', 'username', 'password');
  3. if (!$link)
  4. {
  5. echo "Could not connect: " . mysql_error();
  6. }
  7. else
  8. {
  9. mysql_select_db('my_database');
  10.  
  11. $query = "INSERT INTO order_queue
  12. ( Name , Email , OtherInfo , qtyA ,
  13. totalA , qtyB , totalB , qtyC , totalC , GrandTotal )";
  14. $query .= " VALUES
  15. ('$Name', '$Email', '$OtherInfo', '$qtyA',
  16. '$totalA', '$qtyB', '$totalB', '$qtyC', '$totalC', '$GrandTotal')";
  17. //echo $query . "<br>\n";
  18.  
  19. $result = mysql_query($query);
  20. mysql_close($link);
  21. }
  22. ?>

10 antwoorden

Gesponsorde links
Offline Koen - 16/03/2009 21:51
Avatar van Koen PHP expert regel 19:
  1. $result = mysql_query($query)or die(mysql_error());


En plaats hier de error die je krijgt 
Offline DieHard - 16/03/2009 21:55 (laatste wijziging 16/03/2009 21:58)
Avatar van DieHard PHP interesse Table 'my_database.order_queue' doesn't exist

Nou dat zegt genoeg  
Ik denk dat ik een tabel aan moet maken?
Ik dacht zelf dat het script dit zelf zou doen...

Een tabel kan je toch niet zomaar aanmaken, dan moet ik het aantal velden weten en wat voor soort velden het moeten zijn. Daar heb ik dus weinig verstand van.
Offline Rik - 17/03/2009 09:22
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Hoe kom je aan dit script? Staat er niet ergens een bestandje met installatie uitleg of zelfs een installatie script bij?

Ander is het het beste om ergens een code te zoeken waar gegevens geinsert worden zodat je ongeveer ziet wat voor types de velden moeten hebben. Dan valt er wel een passende tabel bij te ontwerpen.

Offline DieHard - 17/03/2009 13:13 (laatste wijziging 17/03/2009 13:57)
Avatar van DieHard PHP interesse Op internet gevonden en er zit totaal geen uitleg bij helaas en ook geen installatie script. Een jaar geleden heb ik ook een klein beetje met MySql gewerkt. Ik kan zelf wel een (installatie )code maken zoals hieronder. Maar ik heb geen idee welk type varchar het moet zijn, zoals qtyA t/m qtyC en totalA t/m totalC dat zijn getallen is dit dan een juiste installatie code, zoals ik hem zelf heb gemaakt?
  1. CREATE TABLE `order_queue` (
  2. `pid` INT(10) AUTO_INCREMENT,
  3. `Name` varchar(100) NOT NULL,
  4. `Email` varchar(255) NOT NULL,
  5. `OtherInfo` varchar(255) NOT NULL,
  6. `qtyA` varchar(100) NOT NULL,
  7. `totalA` varchar(100) NOT NULL,
  8. `qtyB` varchar(100) NOT NULL,
  9. `totalB` varchar(100) NOT NULL,
  10. `qtyC` varchar(100) NOT NULL,
  11. `totalC` varchar(100) NOT NULL,
  12. `GrandTotal` varchar(100) NOT NULL,
  13. PRIMARY KEY (`pid`)
  14. );

Ik heb het ook al getest en hij slaat al wel wat op in de database, maar ik krijg nog steeds een error na het php script.
Offline Rik - 17/03/2009 13:24
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Als hij wel wat op slaat zal de tabel toch wel al bestaan zou je zeggen.

Kun je de link naar het script posten? Misschien dat iemand hier wat wijs kan worden uit de code.
Offline DieHard - 17/03/2009 13:25 (laatste wijziging 17/03/2009 14:36)
Avatar van DieHard PHP interesse De tabel bestaat ook en hij slaat alles juist op, ik krijg dus alleen deze error nog steeds.

--> Maar nog steeds krijg ik de fout... "Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource" 

  1. // Wat zou er gebeuren als ik dit stukje uit het php script weghaal?
Offline Rik - 17/03/2009 15:16
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Je kunt nog steeds kijken wat mysql_error voor fouten geeft.

Nummers zet je meestal in een (tiny/small/medium/big)int veld. Varchar alleen als er ook andere tekens dan getallen in staan.
Het kan ook zijn dat de velden te klein zijn voor de data en dat mysql een out-of-range-error geeft.

Dat weghalen zal geen zin hebben, de fout is al tijdens het uitvoeren van je query opgetreden.
Offline DieHard - 17/03/2009 15:40 (laatste wijziging 17/03/2009 15:42)
Avatar van DieHard PHP interesse Ik heb geprobeer om alles naar varchar(255) te veranderen, maar dat geeft nog steeds dezelfde fout. Dus aan de grote ligt het niet aan.

Dan zou het aan de getallen moeten liggen, dan moet het zoiets worden?
  1. `GrandTotal` INT(100) NOT NULL,
Offline Rik - 17/03/2009 15:47
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Maar wat voor fout geeft mysql_error() dan terug? Anders blijft het gissen.  
Offline DieHard - 17/03/2009 15:51 (laatste wijziging 17/03/2009 17:12)
Avatar van DieHard PHP interesse Hoe kan ik dat vinden?
  1. $result = mysql_query($query)OR die(mysql_error());
  2. mysql_free_result($result);
  3. mysql_close($link);


Ik heb gewoon mysql_free_result() er nu uitgehaald, dan heeft hij geen fouten maar blijft hangen op het php script en met
("Refresh: 1; URL=url); gaat hij gewoon naar de volgende pagina en werkt naar behoren.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.239s