Foros del Web » Programando para Internet » PHP »

ayuda con este script y los array

Estas en el tema de ayuda con este script y los array en el foro de PHP en Foros del Web. Amigos, Me pasaron este script pero no se como sacar datos desde la bd. Es decir tengo esto: Código PHP: function  usernameExists ( $input ) { ...
  #1 (permalink)  
Antiguo 09/10/2009, 09:57
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 11 meses
Puntos: 2
ayuda con este script y los array

Amigos,

Me pasaron este script pero no se como sacar datos desde la bd.

Es decir tengo esto:

Código PHP:
function usernameExists($input) {

  
$name_array =  array ('yo''tu''el''nosotros');
 
  if (
in_array($input$name_array)) {
    return 
true;
  }
  else {
    return 
false;
  }

y si escribo los datos dentro del array funciona pero como hago para sustituir esos datos por datos guardados en una tabla mysql.

Tengo esto pero no me funciona

Código PHP:
$conn mysql_connect("localhost""root""mipassword") or die(mysql_error());
mysql_select_db("mibd"$conn) or die(mysql_error());

$sql "SELECT nombre FROM usuarios";
$query mysql_query($sql);
while(
$ver mysql_fetch_array($query)
 
   if (
in_array($input$ver['nombre'])) {
    return 
true;
  }
  else {
    return 
false;
  }


La verdad es queme gustaria una ayudita, no se como hacerlo, parece que necesito buscar datos para sacar desde un array cop in_array pero no se como poner los resultados dentro del array


Gracias de antemano y Saludos
  #2 (permalink)  
Antiguo 09/10/2009, 10:50
Avatar de hieloverde  
Fecha de Ingreso: julio-2005
Ubicación: México, D.F
Mensajes: 467
Antigüedad: 19 años, 4 meses
Puntos: 5
Respuesta: ayuda con este script y los array

Que tal easy,

Parece que la idea fundamental es que quieres verificar la existencia de un determinado nombre dentro de tu BD ¿correcto?... Entonces por que no lo haces con tu misma consulta sql?

Ejemplo:



Código PHP:
functon buscar_nombre($nombre_buscado)
{
    
$resultado mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM usuarios WHERE nombre='".$nombre_buscado."'"));
    if(
$resultado['COUNT(*)'])
    {
        return 
true// El nombre existe
    
}
    else
    {
        return 
false;    // El nombre no existe
    
}

O algo por el estilo
__________________
<? echo("1 <script> dice + que 1000 palabras"); ?> EspacioMéxico
  #3 (permalink)  
Antiguo 09/10/2009, 10:53
 
Fecha de Ingreso: octubre-2008
Mensajes: 109
Antigüedad: 16 años
Puntos: 0
Respuesta: ayuda con este script y los array

Y en que momento mandas llamar a la función??
La tienes definida pero no la llamas.
O defines tu arreglo en la función y la arreglas para pasarle el valor que buscar o lo defines ahí mismo
Algo así

Código PHP:
$conn mysql_connect("localhost""root""mipassword") or die(mysql_error());
mysql_select_db("mibd"$conn) or die(mysql_error());

$misNombres =  array("Mac""NT""Irix""Linux")//defines los nombre que son válidos

$sql "SELECT nombre FROM usuarios";
$query mysql_query($sql);
while(
$ver mysql_fetch_array($query)
 
   if (
in_array($ver['nombre'],$misNombres)) {
    return 
true;
  }
  else {
    return 
false;
  }

No lo he probado pero se me hace lógica la estructura, suerte
Ve como funciona la función in_array por que la tenías al revés :http://us2.php.net/manual/en/function.in-array.php
  #4 (permalink)  
Antiguo 09/10/2009, 12:10
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: ayuda con este script y los array

No nada niguna de las dos me funciona :(

hice esto y me funciona el script pero no me lo valida

Código PHP:

$sql 
"SELECT nombre FROM usuarios";
$query mysql_query($sql);
while(
$ver mysql_fetch_array($query)) {

$user .= "', '".$ver['nombre'];

$user substr($user,1);

  
$name_array =  array ($user);

}
 
  if (
in_array($input$name_array)) {
    return 
true;
  }
  else {
    return 
false;
  }
  } 

Ya me estoy como desesperando con esto :( :(
  #5 (permalink)  
Antiguo 09/10/2009, 12:21
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años, 7 meses
Puntos: 16
Respuesta: ayuda con este script y los array

Cita:
Iniciado por easy Ver Mensaje
No nada niguna de las dos me funciona :(

hice esto y me funciona el script pero no me lo valida

Código PHP:

$sql 
"SELECT nombre FROM usuarios";
$query mysql_query($sql);
while(
$ver mysql_fetch_array($query)) {

$user .= "', '".$ver['nombre'];

$user substr($user,1);

  
$name_array =  array ($user);

}
 
  if (
in_array($input$name_array)) {
    return 
true;
  }
  else {
    return 
false;
  }
  } 

Ya me estoy como desesperando con esto :( :(
lo que pasa es que les tas mandando un string y no un array
estas concatenando los datos no creando array si haces un print_r a $name_array() te va a devolver
array(0=>usuario1,usuario2,usuario3) y no arrya(0=> usuario1, 1=> usuario2 ...

para eso trendrias que hacer lo siguiente

Código php:
Ver original
  1. $sql = "SELECT nombre FROM usuarios";
  2. $query = mysql_query($sql);
  3. while($ver = mysql_fetch_array($query)) {
  4.         $user[]=$ver['nombre'];
  5. }
  6.  
  7.  if (in_array($input, $user)) {
  8.     return true;
  9.   }
  10.   else {
  11.     return false;
  12.   }
  #6 (permalink)  
Antiguo 09/10/2009, 12:28
Avatar de hieloverde  
Fecha de Ingreso: julio-2005
Ubicación: México, D.F
Mensajes: 467
Antigüedad: 19 años, 4 meses
Puntos: 5
Respuesta: ayuda con este script y los array

Bueno tal vez el código de ejemplo que te puse no te funciono porque se me fue el dedo al definir la función, puse functon y debe ser function, así esta correcto:

Código PHP:
<?php

function buscar_nombre($nombre_buscado)
{
    
$resultado mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM usuarios WHERE nombre='".$nombre_buscado."'"));
    if(
$resultado['COUNT(*)'])
    {
        return 
true// El nombre existe
    
}
    else
    {
        return 
false;    // El nombre no existe
    
}
}
?>
Se usaría así:


Código PHP:
<?php
if(buscar_nombre("nombre"))
{
    echo 
"Existe";
}
else
{
    echo 
"No existe";
}

?>
En mi opinión es la solución mas sencilla que se puede hacer.
__________________
<? echo("1 <script> dice + que 1000 palabras"); ?> EspacioMéxico
  #7 (permalink)  
Antiguo 09/10/2009, 13:18
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: ayuda con este script y los array

Cita:
Iniciado por hieloverde Ver Mensaje
Bueno tal vez el código de ejemplo que te puse no te funciono porque se me fue el dedo al definir la función, puse

No fue eso ni siquiera copie la funcion osea que no creo que sea eso

Gracas samu lo intente y me da los mismos resultados, envio los codigos completos para que me ayuden porfa
  #8 (permalink)  
Antiguo 09/10/2009, 13:19
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: ayuda con este script y los array

tengo este primer scritp que es el formulario:

check_username.php
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
script type="text/javascript" src="php_ajax_framework.js"></script>
<script type="text/javascript">
function check_username_init() {
  var user_field = document.getElementById('user');
  return 'username_exists.php?username=' + user_field.value;
}
function check_username_ajax(results) {
  var results_div = document.getElementById('results_div');
  results_div.innerHTML = results;
}
function check_username() {
  var user_field = document.getElementById('user');
  if (user_field.value.length > 0) {
    //call our AJAX function in the PHP AJAX Framework
    ajaxHelper('check_username');
  }
  else {
    //clear results field 
    var results_div = document.getElementById('results_div');
    results_div.innerHTML = '';
  }
}
</script>
</head>
<body>
Username: 
<input name="user" id="user" size="20" onKeyUp="check_username();">
<div id="results_div"></div>
</body>
</html>

aqui lleva la funcion ajax que valida con el keyup 
  #9 (permalink)  
Antiguo 09/10/2009, 13:20
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: ayuda con este script y los array

luego tengo este que es la funcion javascript

llamado: php_ajax_framework.js

Código HTML:
// JavaScript Document
function ajaxHelper(functionName, additionalArgs) {
  var xmlHttp;
  // Firefox, Opera 8.0+, Safari, SeaMonkey
  try {
    xmlHttp=new XMLHttpRequest();
  }
  catch (e) {
    // Internet Explorer
    try {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
      try {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (e) {
        alert("Sorry, your browser does not support AJAX.");
        return false;
      }
    }
  }
 
  xmlHttp.onreadystatechange=function() {
    //The request is complete == state 4
    if (xmlHttp.readyState==4) {
      var response=xmlHttp.responseText;
      //Send reponse to _ajax hook of passed function name
      eval(functionName + "_ajax" + '(\'' + response + '\')');
    }
  }
 
  //Get request string from _setup hook of passed function name
  if (additionalArgs !== undefined && additionalArgs.length > 0) {
    var requestString = eval(functionName+"_init" + '(' + additionalArgs + ')');
  }
  else {
    var requestString = eval(functionName+"_init" + '()');
  } 
 
  if (requestString) {
    xmlHttp.open("GET", requestString, true);
    xmlHttp.send(null);
  }
}
  #10 (permalink)  
Antiguo 09/10/2009, 13:21
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: ayuda con este script y los array

despues y por ultimo tengo el archivo que saca datos y los valida

se llama:
username_exists.php

Código PHP:
$username $_GET['username'];
 
if (
usernameExists($username)) {
  echo 
'<span style="color:red";>Username Taken</span>';
}
else {
  echo 
'<span style="color:green;">Username Available</span>';
}
 
function 
usernameExists($input) {
$conn mysql_connect("localhost""root""mi password") or die(mysql_error());
mysql_select_db("mibd"$conn) or die(mysql_error());

$sql "SELECT nombre FROM usuarios";
$query mysql_query($sql);
while(
$ver mysql_fetch_array($query)) {

$user[]=$ver['nombre'];

  
$name_array =  array ($user);

}
 
  if (
in_array($input$name_array)) {
    return 
true;
  }
  else {
    return 
false;
  }
  } 
  #11 (permalink)  
Antiguo 09/10/2009, 13:23
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: ayuda con este script y los array

ahi tienen los tres archivos que conforman la saga jeje

espero me ayuden

Saludos
  #12 (permalink)  
Antiguo 09/10/2009, 15:01
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: ayuda con este script y los array

alguien sabe porque no esta funcionando??

paso el archivo original en la que no se hace consulta a ninguna bd

Código PHP:
$username trim($_GET['username']);
 
if (
usernameExists($username)) {
  echo 
'<span style="color:red";>Username Taken</span>';
}
else {
  echo 
'<span style="color:green;">Username Available</span>';
}
 
function 
usernameExists($input) {
 
  
$name_array =  array ('yo, 'tu', 'el', 'nosotros);
 
  if (
in_array($input$name_array)) {
    return 
true;
  }
  else {
    return 
false;
  }


ruego me ayuden, estoy un poc desesperado con esto
  #13 (permalink)  
Antiguo 09/10/2009, 16:55
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años, 7 meses
Puntos: 16
Respuesta: ayuda con este script y los array

te esta llegando valor por get?, otra cosa mas porque guardas $name[], en otro array, no hace falta, te lo reescribo como deberia quedarte

Código php:
Ver original
  1. $username = $_GET['username'];
  2.  
  3. if (usernameExists($username)) {
  4.   echo '<span style="color:red";>Username Taken</span>';
  5. }
  6. else {
  7.   echo '<span style="color:green;">Username Available</span>';
  8. }
  9.  
  10. function usernameExists($input) {
  11. $conn = mysql_connect("localhost", "root", "mi password") or die(mysql_error());
  12. mysql_select_db("mibd", $conn) or die(mysql_error());
  13.  
  14. $sql = "SELECT nombre FROM usuarios";
  15. $query = mysql_query($sql);
  16. while($ver = mysql_fetch_assoc($query)) {
  17.  
  18. $user[]=$ver['nombre'];
  19.  
  20. }
  21.  
  22.   if (in_array($input, $user)) {
  23.     return true;
  24.   }
  25.   else {
  26.     return false;
  27.   }
  28.   }

si no te esta tomando con esto es porque $_GET['username'] esta llegando vacia
  #14 (permalink)  
Antiguo 09/10/2009, 20:42
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: ayuda con este script y los array

Agradezco tu apoyo, me funciono perfectamente, me faltaba } para cerrar function


Gracias muchas Gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:30.