2013-09-10 8 views
2

J'ai un problème avec la migration d'un site web drupal 6 vers 7. Je suis un débutant en PHP et MySQL et je ne trouve pas de solution à mon problème.db fetch array drupal 7

Le code que je me bats avec est le suivant:

$sql = "select ID_Speler from TB_Spelers where uid = ".$id; 
$row = db_fetch_array(db_query($sql)); 
$speler = $row['ID_Speler']; 

je reçois toujours un "appel à db_fetch_array undefined function()"

Toute aide est très appréciée.

+0

https://drupal.org/node/1032750 – zod

Répondre

1

Essayez comme ça:

$sql = "select ID_Speler from TB_Spelers where uid = %d"; 
$query = db_query($sql, $id); 
while ($records = db_fetch_array($query)) { 
    $spelers[] = $records['ID_Speler']; 
} 
print_r($spelers); 
+1

Pas une bonne idée pour D7 – qasimzee

1

Il n'y a pas db_fetch_array() dans Drupal 7, le (presque) code équivalent serait

$sql = "select ID_Speler from TB_Spelers where uid = :uid"; 
$args = array(':uid' => $uid); 
$row = db_query($sql, $args)->fetchObject(); 
$speler = $row->ID_Speler; 

Voir la Database API docs pour plus d'informations.

2

Utilisez ce dans Drupal 7:

$query = db_select('field_data_field_order_no', 'fdfon'); 
$query->addField('fdfon', 'entity_id', 'nid'); 
$query->addField('fdfnt', 'field_notification_type_value', 'type'); 
$query->join('field_data_field_notification_type', 'fdfnt', 'fdfon.entity_id = fdfnt.entity_id AND (fdfon.bundle = :fdfon_bundle AND fdfnt.bundle = :fdfnt_bundle)', array(':fdfon_bundle' => "order_notification_type", ':fdfnt_bundle' => "order_notification_type")); 
$query->condition('fdfon.field_order_no_value', $order_id)->orderBy('fdfnt.entity_id', 'asc'); 

$result = $query->execute(); 

while ($records = $result->fetchAssoc()) { 
    ... 
}