Comunidad de diseño web y desarrollo en internet online

ayuda por favor

Citar            
MensajeEscrito el 23 Sep 2010 10:13 pm
amigos necesitoa ayuda tengo este error

Warning: dbase_get_record_with_names() [function.dbase-get-record-with-names]: Unable to find database for identifier




Código PHP :

<?php
  $db = dbase_open('tabla.dbf', 0);
      if ($db) {
      $número_registros = dbase_numrecords($db);
      for ($i = 1; $i <= $número_registros; $i++) {
      $fila = dbase_get_record_with_names($db, $i);
     
          echo "Data $i: " . trim($fila['MARCA']) . "\n";
         
                            $codigo=$fila['CODIGO'];
                       $marca=$fila['MARCA'];
                       
                       $con= mysql_connect("localhost","root","");
                       $db = mysql_select_db('migra2',$con);
                       $sql ="INSERT INTO tabla (
                            codigo,MARCA) VALUES (
                           ' $codigo ',
                           ' $marca'";
                        $result = mysql_query($sql); 
                                mysql_close($con);
                        
                            }
                         }
   ?>

Por swingbeach21

Claber

104 de clabLevel



 

msie7
Citar            
MensajeEscrito el 23 Sep 2010 10:20 pm
Es muy probable que la condición es < y no <=
aqui:

Código PHP :

for ($i = 1; $i <= $número_registros; $i++) 

cambiar por

Código PHP :

for ($i = 1; $i < $número_registros; $i++) 


saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 23 Sep 2010 11:31 pm
tine que ser <= sino tomara hasta un registro menos

si retiro esta parte
$codigo=$fila['CODIGO'];
$marca=$fila['MARCA'];

$con= mysql_connect("localhost","root","");
$db = mysql_select_db('migra2',$con);
$sql ="INSERT INTO tabla (
codigo,MARCA) VALUES (
' $codigo ',
' $marca'";
$result = mysql_query($sql);
mysql_close($con);

me imprime Data 1: jean Data 2: drill Data 3: lona

creo que el problema se trata de meter ese arreglo en my sql , alguien sabe como ?

Por swingbeach21

Claber

104 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Sep 2010 03:55 am
Tienes razon no he trabajado con dbase pero ahora que lei la documentación vi que los indices empiezan en 1 y el correcto ciclo es como lo hiciste.

Por otro lado, el codigo deberia ser asi:

Código PHP :

<?php 

// MySQL solo necesitas conectar una vez, no en cada iteracion
$con= mysql_connect("localhost","root","");
$db_selected = mysql_select_db('migra2',$con);
// DBASE
$dbase = dbase_open('tabla.dbf', 0);
if ($db && $db_selected) 
{
   $numero_registros = dbase_numrecords($db);
   for ($i = 1; $i <= $numero_registros; $i++)
   {
      $fila = dbase_get_record_with_names($db, $i);
      echo "Data $i: " . trim($fila['MARCA']) . "\n";
      $codigo=$fila['CODIGO'];
      $marca=$fila['MARCA'];
      $sql ="INSERT INTO tabla (
                            codigo,MARCA) VALUES ( 
                           ' $codigo ', 
                           ' $marca'"; 
      $result = mysql_query($sql);


   }
   // dentro del if pero fuera del for porque solo cerraras una vez
   mysql_close($con);
}
 ?>


Además NO uses acentos ni caracteres especiales del español (ñ, incluida) en nombre de variables... lo digo porque tienes $número_registros.

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.