2008-10-31 8 views
0

Je suis nouveau à PHP et essayer d'obtenir le code suivant au travail:

<?php 
include 'config.php'; 
include 'opendb.php'; 

$query = "SELECT name, subject, message FROM contact"; 
$result = mysql_query($query); 

while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
{ 
    echo "Name :{$row['name']} <br>" . 
     "Subject : {$row['subject']} <br>" . 
     "Message : {$row['message']} <br><br>"; 
"ARTICLE_NO :{$row['ARTICLE_NO']} <br>" . 
"ARTICLE_NAME :{$row['ARTICLE_NAME']} <br>" . 
"SUBTITLE :{$row['SUBTITLE']} <br>" . 
"CURRENT_BID :{$row['CURRENT_BID']} <br>" . 
"START_PRICE :{$row['START_PRICE']} <br>" . 
"BID_COUNT :{$row['BID_COUNT']} <br>" . 
"QUANT_TOTAL :{$row['QUANT_TOTAL']} <br>" . 
"QUANT_SOLD :{$row['QUANT_SOLD']} <br>" . 
"STARTS :{$row['STARTS']} <br>" . 
"ENDS :{$row['ENDS']} <br>" . 
"ORIGIN_END :{$row['ORIGIN_END']} <br>" . 
"SELLER_ID :{$row['SELLER_ID']} <br>" . 
"BEST_BIDDER_ID :{$row['BEST_BIDDER_ID']} <br>" . 
"FINISHED :{$row['FINISHED']} <br>" . 
"WATCH :{$row['WATCH']} <br>" . 
"BUYITNOW_PRICE :{$row['BUYITNOW_PRICE']} <br>" . 
"PIC_URL :{$row['PIC_URL']} <br>" . 
"PRIVATE_AUCTION :{$row['PRIVATE_AUCTION']} <br>" . 
"AUCTION_TYPE :{$row['AUCTION_TYPE']} <br>" . 
"INSERT_DATE :{$row['INSERT_DATE']} <br>" . 
"UPDATE_DATE :{$row['UPDATE_DATE']} <br>" . 
"CAT_1_ID :{$row['CAT_1_ID']} <br>" . 
"CAT_2_ID :{$row['CAT_2_ID']} <br>" . 
"ARTICLE_DESC :{$row['ARTICLE_DESC']} <br>" . 
"DESC_TEXTONLY :{$row['DESC_TEXTONLY']} <br>" . 
"COUNTRYCODE :{$row['COUNTRYCODE']} <br>" . 
"LOCATION :{$row['LOCATION']} <br>" . 
"CONDITIONS :{$row['CONDITIONS']} <br>" . 
"REVISED :{$row['REVISED']} <br>" . 
"PAYPAL_ACCEPT :{$row['PAYPAL_ACCEPT']} <br>" . 
"PRE_TERMINATED :{$row['PRE_TERMINATED']} <br>" . 
"SHIPPING_TO :{$row['SHIPPING_TO']} <br>" . 
"FEE_INSERTION :{$row['FEE_INSERTION']} <br>" . 
"FEE_FINAL :{$row['FEE_FINAL']} <br>" . 
"FEE_LISTING :{$row['FEE_LISTING']} <br>" . 
"PIC_XXL :{$row['PIC_XXL']} <br>" . 
"PIC_DIASHOW :{$row['PIC_DIASHOW']} <br>" . 
"PIC_COUNT :{$row['PIC_COUNT']} <br>" . 
"ITEM_SITE_ID :{$row['ITEM_SITE_ID']}; 
} 

include 'closedb.php'; 

?> 

Cependant, je reçois cette erreur:

Parse error: syntax error, unexpected $end in C:\Programme\EasyPHP 2.0b1\www\test.php on line 56 

Je voudrais aussi savoir s'il existe peut-être un moyen plus facile d'obtenir des enregistrements mysql au lieu de taper à la main?

modifier:

Je résolu le problème du point-virgule et devis, et maintenant obtenir:

Parse error: syntax error, unexpected T_STRING in C:\Programme\EasyPHP 2.0b1\www\test.php on line 51 

Je suis désolé, je ne sais pas comment faire des couleurs dans le code.

+0

Vous pouvez formater votre code en mettant 4 espaces au début de chaque ligne de code. –

Répondre

7

Modifier

Vous dites que vous obtenez toujours une erreur. Avez-vous pensé à ajouter un . lorsque vous avez supprimé ce point-virgule supplémentaire?


Vous avez un point-virgule au milieu de votre chaîne, deux lignes après l'écho.

En outre, la fin de la citation à double chaîne est un manque.


En ce qui concerne un moyen de sortie toutes les valeurs propres va, vous pouvez boucler sur le tableau de résultat comme celui-ci:

while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
{ 
    foreach($row as $field=>$value) 
    { 
    echo "$field: {$value} <br />"; 
    } 
} 
+0

En outre, les trous d'injection HTML entraînant des vulnérabilités de script entre sites. Toujours envelopper la sortie de texte dans htmlspecialchars(). – bobince

+0

Un bon point. Bien que je pense que cela complique trop cet exemple puisque nous n'avons aucune idée d'où viennent les valeurs de la base de données. –

+0

Je sais que cela ouvre une énorme boîte de Pandore, mais je pense que c'est cette même mentalité qui engendre des milliers de recrues PHP qui ne connaissent absolument rien à la sécurité. Enseigner la sécurité d'abord. S'ils décident que leur situation ne l'exige pas, ils peuvent le retirer. –

2

Pour la deuxième partie de votre question, vous pouvez le faire si les noms de champs sont tous logiques:

while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
{ 
    foreach($row as $key => $value) 
    { 
    echo "$key: $value\n"; 
    } 
} 
0

Editer: Votre requête SQL ne renvoie que 3 champs. Mais vous essayez d'accéder à beaucoup plus que cela. Essayez "SELECT *" si vous voulez retourner tous les champs d'une table. Sinon, assurez-vous de sélectionner les champs que vous essayez de lire (probablement pas pourquoi vous obtenez une erreur, juste une observation).

La coloration syntaxique de

include 'closedb.php'; 

?> 

indique que la chaîne ne dispose pas d'une citation de clôture. La ligne

"ITEM_SITE_ID :{$row['ITEM_SITE_ID']}; 

confirme que.

également la ligne

"Message : {$row['message']} <br><br>"; 

met fin à la concaténation de chaîne. Le point-virgule devrait probablement être une période.