visitor (0 QPoints)
  • FR
  • EN
  • NL
  • DE
  • ES
315 experts, 1193 registered users, 1659 questions already answered
European Experts Exchange, the very best site for high-quality IT solutions

New Improved Search!

 


05/10/2011 1h30 : Steve Jobs is dead, the father of Apple ][ is gone, we are all orphaned.

Languages :: PHP :: Listing MySql Database Entries


By: PHP newbee U.S.A.  Date: 01/04/2003 00:00:00  English  Points: 70 Status: Answered
Quality : Excellent
I have a PHP script that contains the following code. It's purpose is to select and show records from a database table named 'streets_articles' all those records whose 'article_id' is zero. Running this code gives the output:

0011

This is because there are two articles with the id 0 and two with the id 1. What I want to be produced is:

0011
00

Because the 'if' statement says if the id is 0, print the id again. What seems to happen is the first print statement works fine, but for some reason when the 'if' clause is reached, the article_id field doesn't have a zero in it.

Any ideas on how to make this work?

The second thing I want to do is only to display the first four records in the table that have an index of 0. Is this difficult?

Thanks

HERE IS THE CODE:

$str_requete = "SELECT page_id,article_id,article_type,page_type,page_text,page_img,article_title,article_date,articleimage FROM streets_articles ORDER BY article_date DESC";

$result_articles = mysql_query ($str_requete,$ezine_db) or ezine_mysql_die();

while ($articleDb =mysql_fetch_object($result_articles))
{

print($articleDb->article_id);

if($articleDb->article_id = 0) {

print($articleDb->article_id);

}
}

By: VGR Date: 01/04/2003 22:11:00 English  Type : Answer
of course. Classical Pascal/BASIC guys error :D

you wrote an assignation, not a test

test operator for equality is == not =

so :

$str_requete = "SELECT page_id,article_id,article_type,page_type,page_text,page_img,article_title,article_date,articleimage FROM streets_articles ORDER BY article_date DESC";

$result_articles = mysql_query ($str_requete,$ezine_db) or ezine_mysql_die();

while ($articleDb =mysql_fetch_object($result_articles))
{

print($articleDb->article_id);

if($articleDb->article_id == 0) { // please note that this block {} is useless for one line only in the "then"

print($articleDb->article_id);

}
}
By: sumotimor Date: 01/04/2003 23:29:00 English  Type : Comment
i would like suggest you to use, this form of writing in php and c++ too:

if(0 == $articleDb->article_id)
{
print($articleDb->article_id);
}

it's better to find this mistakes and it's safer too
By: VGR Date: 01/04/2003 23:35:00 English  Type : Comment
yes but no, this a "pis-aller".
if the language was using "natural" syntax and operators, it would be better...

like

if $articleDb->article_id=0 then {
$articleDb->article_id := 1; // change to 1
} else {
}

silly parentheses (LISP influence ? :D ), == and = just make things more complexe than they should be. Moreover, ||, &&, & are totally confusing. Thanks God, the PHP people have left "normal" operators AND, OR and NOT ;-)


By: PHP newbee Date: 02/04/2003 00:19:00 English  Type : Comment
Thanks a lot - my stupidity earns you some easy points!! I should have remembered from my dabbles with Java. You're right about the Basic bit - I mainly use VB, so I was reading through the code again and again and just not seeing the mistake.

Anyway, the program works fine. Cheers.

Do register to be able to answer

EContact
browser fav
page generated in 297.780990 milliseconds

Why Google AdSense ads ?

compteur
 Ranking-Hits PageRank for this page