Toon posts:

wie helpt deze n00b even met een php/mysql query?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Alvast mijn excuses voor het plaatsen van deze thread, maar ik maak volgens mij weer eens zo'n stomme n00b-fout.

Ik heb deze code:
PHP:
1
2
3
4
5
    $querytxt = "SELECT `username`, `userid` FROM `users` WHERE 1";
    $result = mysql_query($querytxt);
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        echo $row["username"];
    }

en ik zie de fout _niet_!

De query is okee, die heb ik gecontroleerd met phpMyAdmin. Er is idd een verbinding met MySQL en ik krijg _geen_ errors.

Wie helpt me uit de brand? Zelfs in de manual staat bijna dezelfde code bij mysql_fetch_array() als ik hier gebruik 8)7

  • momania
  • Registratie: Mei 2000
  • Laatst online: 22:44

momania

iPhone 30! Bam!

PHP:
1
2
3
4
5
    $querytxt = "SELECT username, userid FROM users";
    $result = mysql_query($querytxt);
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        echo $row["username"];
    }


Zonder quotes :?
En die 'WHERE 1' :?

Neem je whisky mee, is het te weinig... *zucht*


Verwijderd

Topicstarter
Verwijderd schreef op 05 september 2002 @ 17:22:
[..]
De query is okee, die heb ik gecontroleerd met phpMyAdmin. Er is idd een verbinding met MySQL en ik krijg _geen_ errors.
[..]
WHERE 1 = overal, en als ik het goed heb heeft het de voorkeur om veldnamen te quoten. :)

  • Grum
  • Registratie: Juni 2001
  • Niet online
Nee en nee. Simpel ? jah! :D

  • momania
  • Registratie: Mei 2000
  • Laatst online: 22:44

momania

iPhone 30! Bam!

zonder WHERE is het zelfde....

edit:
Ik keek puur ff naar de SQL, ben niet zo thuis in PHP..

Neem je whisky mee, is het te weinig... *zucht*


  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 20:57

Tux

en die MYSQL_ASSOC in die mysql_fetch_array() ? is die wel zinvol?

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
• Waarom backticks in je query?
• Je gebruik van fetch_array is opzich goed, maar wat is MYSQL_ASSOC precies? De verbinding?
• Kies je wel een database? (dus mysql_use_db( String s ) oid )
• dump je $row var eens (met print_r of var_dump) want volgens mij verneuken die backticks je named array :) Je kunt ook $row[0] proberen voor username

Verwijderd

Topicstarter
Uit de PHP manual:
Description
array mysql_fetch_array ( resource result [, int result_type])
[..]

The optional second argument result_type in mysql_fetch_array() is a constant and can take the following values: MYSQL_ASSOC, MYSQL_NUM, and MYSQL_BOTH. This feature was added in PHP 3.0.7. MYSQL_BOTH is the default for this argument.
[..]

Using MYSQL_ASSOC, you only get associative indices (as mysql_fetch_assoc() works), using MYSQL_NUM, you only get number indices (as mysql_fetch_row() works).
* Ja, ik kies de goede database uit :)
* WHERE 1 is idd niet nodig, maar die tick heb ik overgenomen van phpMyAdmin :)
* wat zijn backticks :?

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
backticks zijn ` tekens :)
dump die $row var eens
PHP:
1
print_r( $row );

  • Grum
  • Registratie: Juni 2001
  • Niet online
Backticks: ` (en dus niet de ')

Gebruik gewoon mysql_fetch_assoc .. simpler :)

Verwijderd

Topicstarter
woops.... heb ff iets verkeerd gezegd: ik krijg wel een error:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in blaat

print_r($row) kan ik dus niet opvragen.

Als ik het goed heb zou je zeggen dat die query betekent: er zit een fout in je query, right?

Verwijderd

Topicstarter
Die backticks heb ik ook gejat van phpMyAdmin, en hebben bij mij nog nooit voor problemen gezorgd, terwijl ik al flink wat scripts heb geschreven die queries uit een db vissen, dus dat zou ook geen probleem moeten zijn...

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$connected = mysql_connect("blah" , "blah", "blah");
if( !$connected ) {
      //Hey de boel gaat fout , geen db
      //Gooi een mooie tekst op het scherm voor de debug
      echo "OMG! No DB";
}

[...]

$result = mysql_query( query );
if( !$result) {
    //Query niet goed?
    //Debug info!
    die( mysql_error( ) );
}


Debug ff de boel ongeveer zo :)

edit:
Even ongeveer benadrukt voor de PHP puristen

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

vervang
$result = mysql_query($querytxt);
door
$result = mysql_query($querytxt) or die("Query Failed: $querytxt <BR>" . mysql_error());

Mocht de query fout gaan, zie je in elk geval de foutmelding

[edit]
te laat :P

Verwijderd

Topicstarter
Ik ben er nog steeds niet uitgekomen... ik heb nu een flink stuk van de code hertikt en het werkt nu, tevreden so far...

Allemaal bedankt voor jullie hulp in ieder geval!

Verwijderd

ehmm, is het niet zo dat je de database ook moet aangeven in de query?
dus: $result = mysql_query($querytxt, "database naam");

Ik zie op http://www.php.net/manual/en/function.mysql-query.php dat dat inderdaad niet per sé hoeft. Het is optioneel.

Probeer het zo eens, dan weet je of het aan de query ligt wellicht:
$result = mysql_query($querytxt) or die("Invalid query");

------
Heb je de connectie wel goed opgezet?

$link = mysql_connect("host", "user", "password") or die("Could not connect");
print ("Connected successfully");

Heb je de database geselecteerd?
$sdb = mysql_select_db("database",$link) or die ("Could not select");

succes
Pagina: 1