Verificar todos los Datos de un Array al Mismo Tiempo

  • Autor Autor Picorete
  • Fecha de inicio Fecha de inicio
Picorete

Picorete

Eta
Verificación en dos pasos activada
Verificado por Binance
Bueno, es algo sencilla, pero ahora ya tengo el cerebro vuelto un caos :ambivalence: , por eso pregunto para que me ayuden con esta duda.

Básicamente posee el siquiente array:

PHP:
$result = mysql_query("SELECT accesstoken FROM usuarios_t"); // Consulta MySql
$i = 1; // Valor Inicial $i
$hayresultado = 1; // Mientras alla datos, ejecutar el While
while ($hayresultado == 1){ // While, mientras existan datos
	$fila[$i] = mysql_fetch_array($result); // Guardar en Array[$i]['valor de la fila de mi base de datos']
	$fila[$i]['accesstoken']; // Esto creo que no hace falta xd
	echo $fila[$i]['accesstoken']; // Mostrar para saber que esta funcionando
if ($fila[$i]['accesstoken'] === NULL){ // En caso de que el valor obtenido sea null (osea, no existan mas filas en la base de datos) salir del bucle
$hayresultado = 0;
}
$i++; // suma para ir almacenando los datos en diferentes posiciones del array
}

Bueno, lo explico de la manera larga, pero en conclusion tengo este array:

PHP:
$fila[$i]['accesstoken'];

Donde $i es un valor dependiendo de cuantos 'accesstoken' tenga en la base de datos. hasta aquí todo bien 😛7:

Ahora, poseo una variable
PHP:
$accessToken
yo necesito verificar esta variable, con todos los datos del array de arriba

Si no se repite que ninguno, pues lo añado a la base de datos, y si se repite, salirse.

El problema que tengo es el siguiente: quiero que verifique todos los datos, para luego devolverme el resultado, por que en mi cabeza lo pienso de esta forma: si el valor no es el mismo, entonces agregarlo, pero eso seria con cada campo, entonces si el primer campo no es el mismo, lo agregara, pero si dicho valor, ya esta en el segundo, ya se habra agregado :ambivalence: , no se si me explico, espero a ver mientras busco otras alternativas, alguien me oriente un poco! :encouragement:
 
No se si te he entendido bien pero creo que lo que haces es pasar todos los tokens de tu db a un array y quieres comprobar si el contenido de la variable $accessToken se encuentra dentro de ese array. Para esto puedes utilizar la función in_array. En este link puedes ver como funciona la función..

Ahora bien, te comento que si esto es lo que quieres hacer... opino que lo estas haciendo mal ya que no es necesario pasar todos los datos de la db a un array para comprobar si el contenido de la variable $accessToken esta en la db. Es mejor comprobarlo mediante una consulta sql.

Un saludo 🙂
 
No se si te he entendido bien pero creo que lo que haces es pasar todos los tokens de tu db a un array y quieres comprobar si el contenido de la variable $accessToken se encuentra dentro de ese array. Para esto puedes utilizar la función in_array. En este link puedes ver como funciona la función..

Ahora bien, te comento que si esto es lo que quieres hacer... opino que lo estas haciendo mal ya que no es necesario pasar todos los datos de la db a un array para comprobar si el contenido de la variable $accessToken esta en la db. Es mejor comprobarlo mediante una consulta sql.

Un saludo 🙂

Si es lo que quiero, ya mismo veo el link. En cuanto a lo otro, pues yo hago la consulta y obtengo los datos con: mysql_fetch_array , pero solo me da una fila, y yo necesito todas las filas, entonces lo que hago es que ejecuto el mysql_fetch_array tantas veces sea necesario para poder obtener todas las filas, pues la funcion funciona de esa forma, cada vez que se le ejecute, ira saltando dato por dato, quizas alla otra manera de hacerlo, pero bueno, yo apenas estoy aprendiendo y asi me salio hacerlo xd, Gracias por la respuesta, un Saludo 😛7:
 
Si es lo que quiero, ya mismo veo el link. En cuanto a lo otro, pues yo hago la consulta y obtengo los datos con: mysql_fetch_array , pero solo me da una fila, y yo necesito todas las filas, entonces lo que hago es que ejecuto el mysql_fetch_array tantas veces sea necesario para poder obtener todas las filas, pues la funcion funciona de esa forma, cada vez que se le ejecute, ira saltando dato por dato, quizas alla otra manera de hacerlo, pero bueno, yo apenas estoy aprendiendo y asi me salio hacerlo xd, Gracias por la respuesta, un Saludo 😛7:

Utilizas un bucle while para recorrer todo lo que te da el mysql_fetch_array verdad? Por cierto es mejor que utilices mysqli y no mysql.
 
Utilizas un bucle while para recorrer todo lo que te da el mysql_fetch_array verdad? Por cierto es mejor que utilices mysqli y no mysql.

Si exactamente! una duda, coloque el codigo asi:

PHP:
if (in_array($accessToken, $fila)){

}else{
	$_GRABAR_SQL = "INSERT INTO usuarios_t (usuario,accesstoken,secrettoken) VALUES ('$usuario','$accessToken','$secretToken')";   
	mysql_query($_GRABAR_SQL);
}

pero no me funciona 🙁, bueno mejor dicho, me guarda los datos, aunque estén repetidos, creo que hay un problema con el array
 
Si exactamente! una duda, coloque el codigo asi:

PHP:
if (in_array($accessToken, $fila)){

}else{
	$_GRABAR_SQL = "INSERT INTO usuarios_t (usuario,accesstoken,secrettoken) VALUES ('$usuario','$accessToken','$secretToken')";   
	mysql_query($_GRABAR_SQL);
}

pero no me funciona 🙁, bueno mejor dicho, me guarda los datos, aunque estén repetidos, creo que hay un problema con el array

estas liando mucho para comprobar algo.. puedes mostrarnos todo el codigo?
 
estas liando mucho para comprobar algo.. puedes mostrarnos todo el codigo?

PHP:
<?php 
/**
 * users gets redirected here from twitter (if user allowed you app)
 * you can specify this url in https://dev.twitter.com/ and in the previous script
 */ 
session_start();
$usuario = $_SESSION['usuario'];
//LOADING LIBRARY
require "twitteroauth-master/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;

//TWITTER APP KEYS
$consumer_key = 'consumer_key';
$consumer_secret = 'consumer_secret';

//GETTING ALL THE TOKEN NEEDED
$oauth_verifier = $_GET['oauth_verifier'];
$token_secret = $_COOKIE['token_secret'];
$oauth_token = $_COOKIE['oauth_token'];

//EXCHANGING THE TOKENS FOR OAUTH TOKEN AND TOKEN SECRET
$connection = new TwitterOAuth($consumer_key, $consumer_secret, $oauth_token, $token_secret);
$access_token = $connection->oauth("oauth/access_token", array("oauth_verifier" => $oauth_verifier));

$accessToken=$access_token['oauth_token'];
$secretToken=$access_token['oauth_token_secret'];

mysql_connect('localhost','root','clave') or die("Error al conectar " . mysql_error());
mysql_select_db('htskzlgb_albanow') or die ("Error al seleccionar la Base de datos: " . mysql_error());
$result = mysql_query("SELECT accesstoken FROM usuarios_t");
$i = 1;
$hayresultado = 1;
while ($hayresultado == 1){
	$fila[$i] = mysql_fetch_array($result);
	$fila[$i]['accesstoken'];
	echo $fila[$i]['accesstoken'];
if ($fila[$i]['accesstoken'] === NULL){
$hayresultado = 0;
}
$i++;
}
if (in_array($accessToken, $fila)){

}else{
	$_GRABAR_SQL = "INSERT INTO usuarios_t (usuario,accesstoken,secrettoken) VALUES ('$usuario','$accessToken','$secretToken')";   
	mysql_query($_GRABAR_SQL);
}

 ?>

Solo quiero verificar, si en esa consulta que le mando a pedir, existe el valor de $accessToken, en caso de que no, lo añada, en caso de que si, no haga nada hasta el while me funciona y todos los valores se guardan en el array fila el cual es un array doble, y no se si eso tendra que ver
 
[MENTION=136467]Picorete[/MENTION] yo la comprobación la haría así...

PHP:
<?php

$host = "localhost";
$userdb = "root";
$passdb = "password";
$db = "htskzlgb_albanow";

$con = mysqli_connect($host,$userdb,$passdb,$db) or die ("No he podido conectar con la base de datos..");
$tabla = mysqli_query($con, "SELECT accesstoken FROM usuarios_t WHERE accesstoken = '$accessToken'") or die ("Error en la query..");

if(mysqli_num_rows($tabla) == 0)
{
	mysqli_query($con, "INSERT INTO usuarios_t (usuario,accesstoken,secrettoken) VALUES ('$usuario','$accessToken','$secretToken')") or die ("Error al escribir en db");
	echo "Se ha escrito en la db";
} else{ echo "Ya se encuentra en la db"; }

?>

Con esto no necesitas ni guardar todos los registros en un array ya que los comprueba directamente en la db
 
Última edición:
[MENTION=136467]Picorete[/MENTION] yo la comprobación la haría así...

PHP:
<?php

$host = "localhost";
$userdb = "root";
$passdb = "password";
$db = "htskzlgb_albanow";

$con = mysqli_connect($host,$userdb,$passdb,$db) or die ("No he podido conectar con la base de datos..");
$tabla = mysqli_query($con, "SELECT accesstoken FROM usuarios_t WHERE accesstoken = '$accessToken'") or die ("Error en la query..");

if(mysqli_num_rows($tabla) == 0)
{
	mysqli_query($con, "INSERT INTO usuarios_t (usuario,accesstoken,secrettoken) VALUES ('$usuario','$accessToken','$secretToken')") or die ("Error al escribir en db");
	echo "Se ha escrito en la db";
} else{ echo "Ya se encuentra en la db"; }

?>

Con esto no necesitas ni guardar todos los registros en un array ya que los comprueba directamente en la db

Men, 14864840468481641868146323513845321564 Gracias! 😛7: , me funciona bien, y no solo eso, me hace saber que necesito mejorar mi parte lógica 🙄 , por lo menos ya con este ejemplo, me facilitara varias cosas que tenia en mente, de nuevo 1000 gracias mas! 😛7:
 
Atrás
Arriba