login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Query met string uit dataset

Offline HannaH - 02/09/2008 14:29
Avatar van HannaHMySQL interesse Hoi, Ik poste dit al eens, maar raak er nog steeds nie uit

ik heb een SPRY dataset en ik zou een parameter uit deze ds willen gebruiken om een php database te bevragen.
maar iets loopt fout
  1. $PROD= "{dsproj::id}";
  2. print $PROD;


tot zover alles goed!
maar ....als ik meteen query de DB bevraag ... nopes
  1. $RS1=mysql_query("SELECT id, omsch FROM producten WHERE id ='$PROD' ");
  2. $Rij = mysql_fetch_assoc($RS1);
  3.  
  4. echo $Rij['omsch'];


iemand?

thx,
HannaH

10 antwoorden

Gesponsorde links
Offline marten - 02/09/2008 15:28
Avatar van marten Beheerder echo je query eens dus

  1. echo "SELECT id, omsch FROM producten WHERE id ='$PROD' ";


en nog liever zo

  1. echo "SELECT id, omsch FROM producten WHERE id ='" .$PROD. "'";


Wat krijg je dan?
Offline HannaH - 02/09/2008 16:32 (laatste wijziging 02/09/2008 16:35)
Avatar van HannaH MySQL interesse 7(da's die echo $PROD)

en als resultaat van de query -> 7
SELECT id, omsch FROM producten WHERE id ='7'

dus die parameter( $PROD) wordt doorgegeven

maar ik wil die "omsch" uitlezen en deze wil dus niet
( echo $Rij['omsch']; )
Offline marten - 02/09/2008 16:57
Avatar van marten Beheerder En als je de mysql_error() functie gebruikt na je query?

Offline HannaH - 03/09/2008 06:03 (laatste wijziging 03/09/2008 06:09)
Avatar van HannaH MySQL interesse wel,
  1. <?
  2. echo $query_rsprod = "SELECT producten.id, producten.omsch FROM producten WHERE producten.id ='".$PROD."'";
  3.  
  4. echo $rsprod = mysql_query($query_rsprod, $CONN_WO) or die(mysql_error()); ?>


ik krijg een '10', '9' ..enz als resultaat voor de echo op mijn query
en steeds een '1' voor de echo op mijn error

...en noppes voor het uitlezen van mijn 'omsch'
Ik draai die query wel in een spry detail region
maar aangezien hij de $PROD wel uitleest zou dit toch geen probleem mogen zijn?
Offline marten - 03/09/2008 07:23
Avatar van marten Beheerder Dat je een 1 krijgt is niet verwonderlijk. mysql_query geeft TRUE of FALSE terug. Je hebt dus nu een true.

  1. <?php
  2. echo $query_rsprod = "SELECT producten.id, producten.omsch FROM producten WHERE producten.id =".$PROD;
  3.  
  4. $rsprod = mysql_query($query_rsprod, $CONN_WO) or die(mysql_error());
  5.  
  6. while($row = mysql_fetch_array($rsprod)) {
  7. echo $row['id'] . ' is het ID en ' . $row['omsch'] . ' is de omschrijving';
  8. }
  9. ?>


Als je dit uitvoert wat krijg je dan terug?
Offline HannaH - 03/09/2008 13:57 (laatste wijziging 03/09/2008 18:18)
Avatar van HannaH MySQL interesse wel, dit is de output...

SELECT producten.id, producten.omsch FROM producten WHERE producten.id =10You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '::id}' at line 1

en bij de query
  1. <? echo $query_rsprod = "SELECT producten.id, producten.omsch FROM producten WHERE producten.id ='" .$PROD. "'"; ?>
  2. enzoverder


geeft
SELECT producten.id, producten.omsch FROM producten WHERE producten.id ='10'

en voor de rest .... nix

HannaH


maar als ik in de query ipv $PROD getal 10 gebruik
werkt dit wel ttz dan zie ik de omschrijving wel...

iemand?
HannaH

Offline Thomas - 05/09/2008 00:25
Avatar van Thomas Moderator Wat is $PROD= "{dsproj::id}"; voor notatie?
Ik denk dat het mis gaat omdat je meerdere keren hier quotes om heen zet? Als dsproj::id of wat dan ook een getal bevat, hoef je hier in de query niet nog eens quotes omheen te zetten?

  1. $prod = "{dsproj::id}"; // whatever this means?
  2. if (!is_numeric($prod)) {
  3. echo 'prod is not a number!';
  4. } else {
  5. $query = 'SELECT id, omsch FROM producten WHERE id = '.$prod;
  6. echo 'my query: '.$query;
  7. $res = mysql_query($query) or die('query messed up');
  8.  
  9. if (mysql_num_rows($res) > 0) {
  10. while ($row = mysql_fetch_assoc($res)) {
  11. echo '<pre>'.print_r($row, 1).'</pre>';
  12. }
  13. } else {
  14. echo 'no results :(';
  15. }
  16. }


Kijk nu maar eens waar het schip strandt.
Offline HannaH - 05/09/2008 07:40 (laatste wijziging 05/09/2008 18:08)
Avatar van HannaH MySQL interesse die dsproj::id komt uit een SPRY dataset.

(alles speelt zich af in een spry detail region)
als ik de $prod bevraag echoot hij mooi de waarde van die id
bij de query echter, loopt het mis.

als ik je code laat lopen krijg ik, tot mijn verbazing, "not a number"
(in de database is dit een integer)
dus daar brandt het schip...

als ik de string integer maak
$prod = (int)"{dsproj::id}";
krijg ik nog steeds waarde "0" en uiteraard "no result"
hoe kan ik nu verder??


Thx
HannaH
Offline timmie_loots - 05/09/2008 18:52
Avatar van timmie_loots PHP gevorderde SPRY? Hebben we het hier over Spry, het AJAX-framework van Adobe? Wat verwacht je eigenlijk dat "{dsproj::id}" gaat doen? Weet je wat dsproj is? Is dsproj een klasse in PHP, of is het iets wat clientside (in de browser) aan de gang is?

De manier waarop jij $PROD definiëert, geef je gewoon aan dat het een string moet zijn met daarin "{dsproj::id}", gewoon die tekens dus! Niet dat waarnaar je wil verwijzen.
Offline HannaH - 05/09/2008 19:56 (laatste wijziging 05/09/2008 19:57)
Avatar van HannaH MySQL interesse ho ho ho... easy...

wel degelijk adobes spry,
Ik heb een dataset (vanuit externe xml file)
binnen een spry region zet hij hij "{dsproj::id}" om in zijn waarde bvb 10
waar dsproj de dataset is en proj de value.
de definitie van id is integer (in de sprydataset)

Ik zou willen die id value gebruiken om een php/mysql database te bevragen. maar dat blijkt niet te lukken. Ik kan hem vangen in een string maar ik kan hem blijkbaar niet gebruiken voor die query. Wat ik ook probeer...

Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.248s