Una Misma B.d Dos Tablas , Mismo Nombre De Campo
3 seguidores
ola tengo una base de datos .
con dos tablas
nombre------campo
usuarios-----nombre
urbanizaciones---nombre
como vereis tienen el mismo nombre los dos campos y a la hora de mostrar los dos campos en un fetch_array se monta un pifostio que noi te veas
Cita:
$result = mysql_query("SELECT * FROM usuarios ",$link);
while ($myrow = mysql_fetch_array($result)) {
echo $myrow["nombre"]." - ".$myrow["apellidos"]." - ".$myrow["mail"]."-".$myrow['nombre'];
como lo hago para que no ocurra u se muestre cada registro solo una vez?????
orange
Para empezar, no creo que sea buena idea dque dos campos "confundibles" se llamen igual
Dicho esto, el que dos campos se llamen igual en dos tablas distintas no te tiene porque dar problemas, ya que en lo que pones solamente consultas una tabla ... por lo que el resultado de la consulta sólo tendrá uno de los campos.
De todas formas, si por fuerza tienes que manejar a la vez las dos tablas, la solución es asignar los valores a dos variables distintas, ejemplo:
(siguiendo tu ejemplo, que no me mola tampoco darle a variables nombres tipo myrow o result ... yo pondria algo mas "aclaratorio")
$result = mysql_query("SELECT * FROM usuarios ",$link);
$result2 = mysql_query("SELECT * FROM urbanizaciones",$link);
$myrow = mysql_fetch_array($result);
$myrow2 = mysql_fetch_array($result2)
$myrow[nombre] y $myrow2[nombre] son dos variables distintas ... y puedes imprimir la que quieras sin que pase nada
meddle
¿para que estan las definiciones de tabla en las select? ej:
SELECT * FROM tabla1,tabla2 WHERE tabla1.campoambiguo = '2' AND tabla2.campoambiguo = '4'
digo yo que:
1. eso funciona
2. es totalmente claro
3. si vas a usar selects de dos tablas deberias leerte un post reciente sobre join's: https://www.domestika.org/foros/viewtopic.php?t=17914
orange
Es otra opción ... pero es que depende de qué es lo que quiera hacer ...
Kassel, por qué no explicas claramente lo que necesitas y asi podremos ayudarte mejor
:D
kassel
bien como dice orange os pongo todo el codigo para aclarar ,
<code><?php
if(!isset($_SESSION['login']))
{
require('sesion.php');
}
?>
<html>
<body>
<?php
include('conex.php');
mysql_select_db("seres_clientes",$link);
extract($_POST,EXTR_SKIP);
extract($_GET,EXTR_SKIP);
//Comprobamos si hemos recibido datos del formulario (enviar)
if ($enviar) {
// Si recibimos un id, modificamos, sino añadimos un registro
if ($id_cliente) {
$sql = "UPDATE usuarios SET nombre='$nombre', apellidos='$apellidos',
mail='$mail' WHERE id_cliente=$id_cliente";
echo "Registro Actualizado<p>";
//variable de get
} else {
$sql = "INSERT INTO usuarios (nombre, apellidos, mail) VALUES ".
"('$nombre', '$apellidos', '$mail')";
echo "Registro Añadido<p>";
}
// Enviamos la sentencia SQL al servidor DB
$result = mysql_query($sql);
} elseif ($delete) {
// Borramos un registro
$sql = "DELETE FROM usuarios WHERE id_cliente=$id_cliente";
$result = mysql_query($sql);
echo "Registro Borrado<p>";
} else {
// Esta parte se ejecuta si no hemos presionado el boton enviar,
// es decir no venimos de un formulario
if (!$id_cliente) {
// Mostramos todos los registros de nuestra BD
$result = mysql_query("SELECT nombre, apellidos, mail FROM usuarios, urbanizaciones WHERE urbanizaciones.id_urbanizacion = usuarios.id_usuario ",$link);
while ($myrow = mysql_fetch_array($result)) {
echo $myrow["nombre"]." - ".$myrow["apellidos"]." - ".$myrow["mail"]."-".$myrow['unombre'];
echo "<a href=\"$PHP_SELF?id_cliente=".$myrow["id_cliente"]."&delete=yes\"> Borrar - </a>"; echo "<a href=\"$PHP_SELF?id_cliente=".$myrow["id_cliente"]."\"> Modificar </a><br>";
}
}
?>
<P>
<P>
<form method="post" action="<?php echo $PHP_SELF?>">
<input type="Submit" name="an" value="Formulario: Nuevo Regisro">
<?php
if ($id_cliente ) {
// editamos el registro seleccionado
$sql = "SELECT * FROM usuarios WHERE id_cliente=$id_cliente";
$result = mysql_query($sql) or die(mysql_error());
$myrow = mysql_fetch_array($result);
$id_cliente = $myrow["id_cliente"];
$nombre = $myrow["nombre"];
$apellidos= $myrow["apellidos"];
$telefono = $myrow["telefono"];
$mail = $myrow["mail"];
// enviamos el id para poder editar el registro
echo "id : <input type=text size=10 name=\"id_cliente\" value=$id_cliente><br>";
?>
Nombre : <input type="Text" size="50" name="nombre" id="nombre" value="<?php echo $nombre ?>"><br>
Apellidos : <input type="Text" size="100" name="apellidos" value="<?php echo $apellidos ?>"><br>
Email : <input type="Text" size="150" name="mail" value="<?php echo $mail ?>"><br>
<input type="Submit" name="enviar" value="Enviar Información">
</form>
<form method="post" action="<?php echo $PHP_SELF?>">
<?php
}
if($an){
echo "<br><br><br><br>";
echo " Nombre : <input type=\"Text\" size=\"50\" name=\"nombre\" id=\"nombre\" value= $nombre ><br>";
echo "Apellidos : <input type=\"Text\" size=\"100\" name=\"apellidos\" value= $apellidos ><br>";
echo "Email : <input type=\"Text\" size=\"150\" name=\"mail\" value= $mail ><br>";
echo" Loggin :<input type=\"text\" size=\"8\" name=\"login\" value=$login>";
echo" Password :<input type=\"text\" size=\"8\" name=\"password\" value=$password>";
echo "<input type=Submit name=\"enviar\" value=\"Enviar Información\">";
echo "<input type=Submit value=\"quitar Formulario\"><br><br>";
}// End If if ($enviar)
}
?>
</form>
por ahi anda la linea e puesto un cambio con lo que tenia arriba pero este me da error , el siguiente error:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\appserv\www\migracion\finalisimo\ed1.php on line 55
quiero interactuar con la tabla urbanizaciones a la ora de introducir un nuevo registro o para acer una busqueda
espero que os aya aclaro algo más sino sigo
ola :D
</body>
</html></code>
kassel
ola e conseguido hacerlo ver mas o menos bien ,digo mas o menos porque he perdido la id de camino y sin ella pierdo todo el code:
os opongo aqui lo que e echo:
if (!$id_cliente) {
// Mostramos todos los registros de nuestra BD
<code> $result = mysql_query("SELECT usuarios.nombre as usnom, urbanizaciones.nombre as ubnom, apellidos, mail FROM usuarios RIGHT JOIN urbanizaciones ON usuarios.id_cliente = urbanizaciones.id_urbanizacion ",$link);
while ($myrow = mysql_fetch_array($result)) {
echo $myrow["ubnom"]." - ".$myrow["apellidos"]." - ".$myrow["mail"]."-".$myrow['usnom'];
echo "<a href=\"$PHP_SELF?id_cliente=".$myrow["id_cliente"]."&delete=yes\"> Borrar - </a>";
echo "<a href=\"$PHP_SELF?id_cliente=".$myrow["id_cliente"]."\"> Modificar </a><br>";
}
}</code>
y sin id no puedo modificar ni borrar ni ná de ná
ola :D
kassel
ya lo solucione pero de nuevo encuentro otro problema inserto todo el codigo y lo veis:
<code><?php
if(!isset($_SESSION['login']))
{
require('sesion.php');
}
?>
<html>
<body>
<?php
include('conex.php');
mysql_select_db("seres_clientes",$link);
extract($_POST,EXTR_SKIP);
extract($_GET,EXTR_SKIP);
//Comprobamos si hemos recibido datos del formulario (enviar)
if ($enviar) {
// Si recibimos un id, modificamos, sino añadimos un registro
if ($id_cliente) {
$sql = "UPDATE usuarios SET nombre='$nombre', apellidos='$apellidos',
mail='$mail' WHERE id_cliente=$id_cliente";
echo "Registro Actualizado<p>";
//variable de get
} else {
$sql = "INSERT INTO usuarios (nombre, apellidos, mail) VALUES ".
"('$nombre', '$apellidos', '$mail')and INSERT INTO urbanizaciones (nombre) VALUES ".
"('$urnom)";
echo "Registro Añadido<p>";
}
// Enviamos la sentencia SQL al servidor DB
$result = mysql_query($sql);
} elseif ($delete) {
// Borramos un registro
$sql = "DELETE FROM usuarios WHERE id_cliente=$id_cliente";
$result = mysql_query($sql);
echo "Registro Borrado<p>";
} else {
// Esta parte se ejecuta si no hemos presionado el boton enviar,
// es decir no venimos de un formulario
if (!$id_cliente) {
// Mostramos todos los registros de nuestra BD
$result = mysql_query("SELECT usuarios.nombre as usnom, urbanizaciones.nombre as ubnom, apellidos, mail,id_cliente FROM urbanizaciones INNER JOIN usuarios ON urbanizaciones.id_urbanizacion= usuarios.id_cliente",$link);
while ($myrow = mysql_fetch_array($result)) {
echo $myrow["usnom"]." - ".$myrow["apellidos"]." - ".$myrow["mail"]."-".$myrow['ubnom'];
echo "<a href=\"$PHP_SELF?id_cliente=".$myrow["id_cliente"]."&delete=yes\"> ------ Borrar - </a>";
echo "<a href=\"$PHP_SELF?id_cliente=".$myrow["id_cliente"]."\">ó Modificar </a><br>";
}
}
?>
<P>
<P>
<form method="post" action="<?php echo $PHP_SELF?>">
<input type="Submit" name="an" value="Formulario: Nuevo Regisro">
<?php
if ($id_cliente ) {
// editamos el registro seleccionado
$sql = "SELECT * FROM usuarios WHERE id_cliente=$id_cliente";
$result = mysql_query($sql) or die(mysql_error());
$myrow = mysql_fetch_array($result);
$id_cliente = $myrow["id_cliente"];
$nombre = $myrow["nombre"];
$apellidos= $myrow["apellidos"];
$telefono = $myrow["telefono"];
$mail = $myrow["mail"];
// enviamos el id para poder editar el registro
echo "id : <input type=text size=10 name=\"id_cliente\" value=$id_cliente><br>";
?>
Nombre : <input type="Text" size="50" name="nombre" id="nombre" value="<?php echo $nombre ?>"><br>
Apellidos : <input type="Text" size="100" name="apellidos" value="<?php echo $apellidos ?>"><br>
Email : <input type="Text" size="150" name="mail" value="<?php echo $mail ?>"><br>
<input type="Submit" name="enviar" value="Enviar Información">
</form>
<form method="post" action="<?php echo $PHP_SELF?>">
<?php
}
if($an){
echo "<br><br><br><br>";
echo " Nombre : <input type=\"Text\" size=\"50\" name=\"nombre\" id=\"nombre\" value= $nombre ><br>";
echo "Apellidos : <input type=\"Text\" size=\"100\" name=\"apellidos\" value= $apellidos ><br>";
echo "Email : <input type=\"Text\" size=\"150\" name=\"mail\" value= $mail ><br>";
echo" Loggin :<input type=\"text\" size=\"8\" name=\"login\" value=>";
echo" Password :<input type=\"text\" size=\"8\" name=\"password\" value=$password>";
echo" Urbanizacion :<input type=\"text\" size=\"150\" name=\"urnom\" value=$nombre>";
echo "<input type=Submit name=\"enviar\" value=\"Enviar Información\">";
echo "<input type=Submit value=\"quitar Formulario\"><br><br>";
}// End If if ($enviar)
}
?>
</form>
</body>
</html></code>
ahora cuando quiero insertar un nuevo registro tb quiero que inserte
id_urbanizacion e id_cliente y ambas iguales tambien quiero q inserte el nombre de la urbanizacion.
espero no estar atosigando pero necesito ayuda.
ola :D